Spaces:
Sleeping
Sleeping
from fastapi import APIRouter, Depends, Request, Response | |
from litellm.proxy._types import * | |
from litellm.proxy.auth.user_api_key_auth import UserAPIKeyAuth, user_api_key_auth | |
from litellm.proxy.common_request_processing import ProxyBaseLLMRequestProcessing | |
router = APIRouter() | |
async def responses_api( | |
request: Request, | |
fastapi_response: Response, | |
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth), | |
): | |
""" | |
Follows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses | |
```bash | |
curl -X POST http://localhost:4000/v1/responses \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: Bearer sk-1234" \ | |
-d '{ | |
"model": "gpt-4o", | |
"input": "Tell me about AI" | |
}' | |
``` | |
""" | |
from litellm.proxy.proxy_server import ( | |
_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="aresponses", | |
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, | |
) | |
async def get_response( | |
response_id: str, | |
request: Request, | |
fastapi_response: Response, | |
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth), | |
): | |
""" | |
Get a response by ID. | |
Follows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/get | |
```bash | |
curl -X GET http://localhost:4000/v1/responses/resp_abc123 \ | |
-H "Authorization: Bearer sk-1234" | |
``` | |
""" | |
from litellm.proxy.proxy_server import ( | |
_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) | |
data["response_id"] = response_id | |
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, | |
) | |
async def delete_response( | |
response_id: str, | |
request: Request, | |
fastapi_response: Response, | |
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth), | |
): | |
""" | |
Delete a response by ID. | |
Follows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/delete | |
```bash | |
curl -X DELETE http://localhost:4000/v1/responses/resp_abc123 \ | |
-H "Authorization: Bearer sk-1234" | |
``` | |
""" | |
from litellm.proxy.proxy_server import ( | |
_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) | |
data["response_id"] = response_id | |
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, | |
) | |
async def get_response_input_items( | |
response_id: str, | |
request: Request, | |
fastapi_response: Response, | |
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth), | |
): | |
""" | |
Get input items for a response. | |
Follows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/input-items | |
```bash | |
curl -X GET http://localhost:4000/v1/responses/resp_abc123/input_items \ | |
-H "Authorization: Bearer sk-1234" | |
``` | |
""" | |
# TODO: Implement input items retrieval logic | |
pass | |