add GET, DELETE responses API endpoints

This commit is contained in:
Ishaan Jaff 2025-04-23 07:32:46 -07:00
parent 0a3c2b7229
commit f106c1d14a
4 changed files with 114 additions and 6 deletions

View file

@ -108,7 +108,13 @@ class ProxyBaseLLMRequestProcessing:
user_api_key_dict: UserAPIKeyAuth, user_api_key_dict: UserAPIKeyAuth,
proxy_logging_obj: ProxyLogging, proxy_logging_obj: ProxyLogging,
proxy_config: ProxyConfig, proxy_config: ProxyConfig,
route_type: Literal["acompletion", "aresponses", "_arealtime"], route_type: Literal[
"acompletion",
"aresponses",
"_arealtime",
"aget_responses",
"adelete_responses",
],
version: Optional[str] = None, version: Optional[str] = None,
user_model: Optional[str] = None, user_model: Optional[str] = None,
user_temperature: Optional[float] = None, user_temperature: Optional[float] = None,
@ -178,7 +184,13 @@ class ProxyBaseLLMRequestProcessing:
request: Request, request: Request,
fastapi_response: Response, fastapi_response: Response,
user_api_key_dict: UserAPIKeyAuth, user_api_key_dict: UserAPIKeyAuth,
route_type: Literal["acompletion", "aresponses", "_arealtime"], route_type: Literal[
"acompletion",
"aresponses",
"_arealtime",
"aget_responses",
"adelete_responses",
],
proxy_logging_obj: ProxyLogging, proxy_logging_obj: ProxyLogging,
general_settings: dict, general_settings: dict,
proxy_config: ProxyConfig, proxy_config: ProxyConfig,

View file

@ -106,8 +106,49 @@ async def get_response(
-H "Authorization: Bearer sk-1234" -H "Authorization: Bearer sk-1234"
``` ```
""" """
# TODO: Implement response retrieval logic from litellm.proxy.proxy_server import (
pass _read_request_body,
general_settings,
llm_router,
proxy_config,
proxy_logging_obj,
select_data_generator,
user_api_base,
user_max_tokens,
user_model,
user_request_timeout,
user_temperature,
version,
)
data = await _read_request_body(request=request)
processor = ProxyBaseLLMRequestProcessing(data=data)
try:
return await processor.base_process_llm_request(
request=request,
fastapi_response=fastapi_response,
user_api_key_dict=user_api_key_dict,
route_type="aget_responses",
proxy_logging_obj=proxy_logging_obj,
llm_router=llm_router,
general_settings=general_settings,
proxy_config=proxy_config,
select_data_generator=select_data_generator,
model=None,
user_model=user_model,
user_temperature=user_temperature,
user_request_timeout=user_request_timeout,
user_max_tokens=user_max_tokens,
user_api_base=user_api_base,
version=version,
)
except Exception as e:
raise await processor._handle_llm_api_exception(
e=e,
user_api_key_dict=user_api_key_dict,
proxy_logging_obj=proxy_logging_obj,
version=version,
)
@router.delete( @router.delete(
@ -136,8 +177,49 @@ async def delete_response(
-H "Authorization: Bearer sk-1234" -H "Authorization: Bearer sk-1234"
``` ```
""" """
# TODO: Implement response deletion logic from litellm.proxy.proxy_server import (
pass _read_request_body,
general_settings,
llm_router,
proxy_config,
proxy_logging_obj,
select_data_generator,
user_api_base,
user_max_tokens,
user_model,
user_request_timeout,
user_temperature,
version,
)
data = await _read_request_body(request=request)
processor = ProxyBaseLLMRequestProcessing(data=data)
try:
return await processor.base_process_llm_request(
request=request,
fastapi_response=fastapi_response,
user_api_key_dict=user_api_key_dict,
route_type="adelete_responses",
proxy_logging_obj=proxy_logging_obj,
llm_router=llm_router,
general_settings=general_settings,
proxy_config=proxy_config,
select_data_generator=select_data_generator,
model=None,
user_model=user_model,
user_temperature=user_temperature,
user_request_timeout=user_request_timeout,
user_max_tokens=user_max_tokens,
user_api_base=user_api_base,
version=version,
)
except Exception as e:
raise await processor._handle_llm_api_exception(
e=e,
user_api_key_dict=user_api_key_dict,
proxy_logging_obj=proxy_logging_obj,
version=version,
)
@router.get( @router.get(

View file

@ -22,6 +22,8 @@ ROUTE_ENDPOINT_MAPPING = {
"amoderation": "/moderations", "amoderation": "/moderations",
"arerank": "/rerank", "arerank": "/rerank",
"aresponses": "/responses", "aresponses": "/responses",
"aget_responses": "/responses",
"adelete_responses": "/responses",
} }
@ -48,6 +50,8 @@ async def route_request(
"arerank", "arerank",
"aresponses", "aresponses",
"_arealtime", # private function for realtime API "_arealtime", # private function for realtime API
"aget_responses",
"adelete_responses",
], ],
): ):
""" """

View file

@ -3083,6 +3083,12 @@ class Router:
"responses", "responses",
"afile_delete", "afile_delete",
"afile_content", "afile_content",
# responses api GET
"get_responses",
"aget_responses",
# responses api DELETE
"delete_responses",
"adelete_responses",
] = "assistants", ] = "assistants",
): ):
""" """
@ -3130,6 +3136,10 @@ class Router:
elif call_type in ( elif call_type in (
"anthropic_messages", "anthropic_messages",
"aresponses", "aresponses",
"get_responses",
"aget_responses",
"delete_responses",
"adelete_responses",
): ):
return await self._ageneric_api_call_with_fallbacks( return await self._ageneric_api_call_with_fallbacks(
original_function=original_function, original_function=original_function,