forked from phoenix/litellm-mirror
OpenAI /v1/realtime
api support (#6047)
* feat(azure/realtime): initial working commit for proxy azure openai realtime endpoint support Adds support for passing /v1/realtime calls via litellm proxy * feat(realtime_api/main.py): abstraction for handling openai realtime api calls * feat(router.py): add `arealtime()` endpoint in router for realtime api calls Allows using `model_list` in proxy for realtime as well * fix: make realtime api a private function Structure might change based on feedback. Make that clear to users. * build(requirements.txt): add websockets to the requirements.txt * feat(openai/realtime): add openai /v1/realtime api support
This commit is contained in:
parent
130842537f
commit
f9d0bcc5a1
11 changed files with 350 additions and 7 deletions
|
@ -4143,6 +4143,45 @@ async def audio_transcriptions(
|
|||
)
|
||||
|
||||
|
||||
######################################################################
|
||||
|
||||
# /v1/realtime Endpoints
|
||||
|
||||
######################################################################
|
||||
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
|
||||
|
||||
from litellm import _arealtime
|
||||
|
||||
|
||||
@app.websocket("/v1/realtime")
|
||||
async def websocket_endpoint(websocket: WebSocket, model: str):
|
||||
import websockets
|
||||
|
||||
await websocket.accept()
|
||||
|
||||
data = {
|
||||
"model": model,
|
||||
"websocket": websocket,
|
||||
}
|
||||
|
||||
### ROUTE THE REQUEST ###
|
||||
try:
|
||||
llm_call = await route_request(
|
||||
data=data,
|
||||
route_type="_arealtime",
|
||||
llm_router=llm_router,
|
||||
user_model=user_model,
|
||||
)
|
||||
|
||||
await llm_call
|
||||
except websockets.exceptions.InvalidStatusCode as e: # type: ignore
|
||||
verbose_proxy_logger.exception("Invalid status code")
|
||||
await websocket.close(code=e.status_code, reason="Invalid status code")
|
||||
except Exception:
|
||||
verbose_proxy_logger.exception("Internal server error")
|
||||
await websocket.close(code=1011, reason="Internal server error")
|
||||
|
||||
|
||||
######################################################################
|
||||
|
||||
# /v1/assistant Endpoints
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue