{"id":16392380,"url":"https://github.com/dpressel/reserve","last_synced_at":"2025-10-26T14:30:17.003Z","repository":{"id":43745103,"uuid":"511565864","full_name":"dpressel/reserve","owner":"dpressel","description":"FastAPI + WebSockets + SSE service to interface with Triton/Riva ASR","archived":false,"fork":false,"pushed_at":"2022-07-14T14:52:10.000Z","size":12,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-08-23T06:52:33.146Z","etag":null,"topics":["asr","fastapi","riva","socketio","sse","triton-inference-server"],"latest_commit_sha":null,"homepage":"","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/dpressel.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}},"created_at":"2022-07-07T14:44:57.000Z","updated_at":"2023-07-28T17:39:10.000Z","dependencies_parsed_at":"2022-09-13T23:23:43.598Z","dependency_job_id":null,"html_url":"https://github.com/dpressel/reserve","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpressel%2Freserve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpressel%2Freserve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpressel%2Freserve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpressel%2Freserve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpressel","download_url":"https://codeload.github.com/dpressel/reserve/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219862821,"owners_count":16555951,"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":["asr","fastapi","riva","socketio","sse","triton-inference-server"],"created_at":"2024-10-11T04:49:43.759Z","updated_at":"2025-10-26T14:30:16.683Z","avatar_url":"https://github.com/dpressel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Reserve\n\nFastAPI + WebSocket + SSE server with external Triton gRPC service using Riva ASR\n\n### About\n\nThis is a simple FastAPI + WebSocket + SSE implementation based on the Riva examples.\nIt uses gRPC to interface with Triton.  The audio data for a session is passed\nin chunk-by-chunk via WebSockets and this is fed into a request queue.  The streaming ASR\ntask pulls data out of this queue and feeds it to the gRPC serve, and then\npushes the Transcripts onto a separate queue, which is then published via SSE \n\n### Installation\n\nTo get started with Riva, the quickstart is recommended:\n\nhttps://catalog.ngc.nvidia.com/orgs/nvidia/teams/riva/resources/riva_quickstart\n\nThere is documentation on this process here:\n\nhttps://docs.nvidia.com/deeplearning/riva/user-guide/docs/quick-start-guide.html#local-deployment-using-quick-start-scripts\n\n#### About the Dockerfile and requirements.txt\n\nThe `riva_api` requirement is not available from the public PyPI.  It can be retrieved using the Riva quickstart process mentioned above.  This means that the requirements.txt will not work out of the box.  You can either install `riva_api` first locally, or if you have a private PyPI repository, you can push the wheel file to there and add it to your `pip.conf`.  That would look something like this:\n\n```\nno-cache-dir = true\nindex-url = https://pypi.org/simple\nextra-index-url =\n               http://{{EXTRA_HOST}}:{{EXTRA_HOST_PORT}}/nexus/repository/pypi-all/simple\ntrusted-host =\n               {{EXTRA_HOST}}\n\n```\n\nAfter that, the `requirements.txt` should work for you.\n\nIf you dont want to mess up an existing `pip.conf`, you can use the `PIP_CONFIG_FILE` environment variable to refer to your own, which is what I have done in the `Dockerfile`.  The `Dockerfile` in this repository assumes that there is a `pip.conf` in the root directory, so you can make it run by copying the example above and replacing `{{EXTRA_HOST}}` and `{{EXTRA_PORT}}` with your private pypi.\n\n#### RMIR and Triton Serving details\n\nTODO.  For now, please refer to the Riva quickstart link mentioned in the previous section.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpressel%2Freserve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpressel%2Freserve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpressel%2Freserve/lists"}