{"id":26720919,"url":"https://github.com/cospectrum/echo-hub","last_synced_at":"2025-07-21T12:33:12.942Z","repository":{"id":279111466,"uuid":"937748955","full_name":"cospectrum/echo-hub","owner":"cospectrum","description":"Natural language processing service","archived":false,"fork":false,"pushed_at":"2025-03-03T10:22:43.000Z","size":212,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T11:31:15.668Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cospectrum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-23T19:59:14.000Z","updated_at":"2025-02-26T07:20:55.000Z","dependencies_parsed_at":"2025-02-23T21:18:26.786Z","dependency_job_id":"9f45f69e-face-4974-8f43-0a64aceae8e1","html_url":"https://github.com/cospectrum/echo-hub","commit_stats":null,"previous_names":["cospectrum/echo-hub"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cospectrum%2Fecho-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cospectrum%2Fecho-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cospectrum%2Fecho-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cospectrum%2Fecho-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cospectrum","download_url":"https://codeload.github.com/cospectrum/echo-hub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245911572,"owners_count":20692613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-27T19:35:01.254Z","updated_at":"2025-03-27T19:35:01.691Z","avatar_url":"https://github.com/cospectrum.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# echo-hub\n[![github]](https://github.com/cospectrum/echo-hub)\n[![ci]](https://github.com/cospectrum/echo-hub/actions)\n\n[github]: https://img.shields.io/badge/github-cospectrum/echo--hub-8da0cb?logo=github\n[ci]: https://github.com/cospectrum/echo-hub/workflows/ci/badge.svg\n\nNatural language processing service.\n\n## Getting started\n\n### start\n```sh\ndocker compose up -d --wait\n```\n\n### test\n```sh\nexport NLP_API_URL=http://localhost:6001\nuv run coverage run -m pytest .\n```\n\n### down\n```sh\ndocker compose down -v\n```\nYou may need to delete some volumes manually.\n\n## Packages\n\n## nlp-api\nThe [nlp-api](./packages/nlp-api/) is a configurable API that can operate in multiple modes,\nincluding `http_mode`, `queue_mode`, or both.\n\nIn `http_mode`, the nlp-api maintains the `SpeechToText` model in its state and runs the model\ndirectly via the POST `/speech_to_text` endpoint.\n\nIn `queue_mode`, the nlp-api provides a POST route `/speech_to_text/task`.\nThis route saves the audio file to `S3`, sends the task (`audio_key`) to `rabbitmq`, and returns the `audio_key` to the client.\n\nThe task is later processed by the `stt-worker`, and the result can be checked using the GET `/speech_to_text/task` route in the nlp-api,\nwhich simply verifies whether the result exists in the database.\n\n## stt-worker\nThe [stt-worker](./packages/stt-worker/) is a long-running process (or processes) that consumes tasks (`audio_key`s) from `rabbitmq`.\nIt retrieves the corresponding audio file from `S3`, runs the `speech_to_text` model, and saves the `result` to the database.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcospectrum%2Fecho-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcospectrum%2Fecho-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcospectrum%2Fecho-hub/lists"}