MCPcopy Create free account
hub / github.com/CommonstackAI/UncommonRoute / handle_responses

Function handle_responses

uncommon_route/proxy.py:5842–5919  ·  view source on GitHub ↗
(request: Request)

Source from the content-addressed store, hash-verified

5840 )
5841
5842 async def handle_responses(request: Request) -> Response:
5843 raw = await request.json()
5844 previous_response_id = str(raw.get("previous_response_id") or "").strip()
5845 previous_messages = None
5846 if previous_response_id:
5847 previous_messages = _responses_history.get(previous_response_id)
5848 if previous_messages is None:
5849 return JSONResponse(
5850 {
5851 "error": {
5852 "message": f"Unknown previous_response_id: {previous_response_id}",
5853 "type": "invalid_request_error",
5854 },
5855 },
5856 status_code=400,
5857 )
5858
5859 body, chat_messages = responses_to_openai_chat_request(
5860 raw,
5861 previous_messages=previous_messages,
5862 default_model=VIRTUAL_MODEL_IDS[_routing_store.default_mode()],
5863 )
5864 response_id = f"resp_{uuid.uuid4().hex[:24]}"
5865 upstream_resp = await _handle_chat_core(
5866 body, request, endpoint_name="responses", source_body=raw,
5867 )
5868
5869 if upstream_resp.status_code != 200:
5870 return upstream_resp
5871
5872 if isinstance(upstream_resp, StreamingResponse):
5873 adapter = OpenAIChatToResponsesStreamAdapter(
5874 request_body=raw,
5875 response_id=response_id,
5876 )
5877
5878 async def responses_sse() -> AsyncGenerator[bytes, None]:
5879 async for chunk in upstream_resp.body_iterator:
5880 adapter.feed(chunk)
5881 events, assistant_message = adapter.finalize()
5882 if assistant_message is not None:
5883 _responses_history[response_id] = json.loads(
5884 json.dumps(chat_messages + [assistant_message])
5885 )
5886 for event in events:
5887 yield event
5888
5889 headers = {
5890 key: value
5891 for key, value in upstream_resp.headers.items()
5892 if key.lower() not in {"content-length", "content-type"}
5893 }
5894 return StreamingResponse(
5895 responses_sse(),
5896 media_type="text/event-stream",
5897 headers=headers,
5898 )
5899

Callers

nothing calls this directly

Calls 7

_handle_chat_coreFunction · 0.85
responses_sseFunction · 0.85
default_modeMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected