(fix) proxy correctly handle reading data using ast, fallback to json.loads if ast parse fails

This commit is contained in:
ishaan-jaff 2023-11-02 21:14:07 -07:00
parent c0a4881194
commit 2cedf85dba

View file

@ -508,24 +508,36 @@ def model_list():
@router.post("/completions") @router.post("/completions")
@router.post("/engines/{model:path}/completions") @router.post("/engines/{model:path}/completions")
async def completion(request: Request): async def completion(request: Request):
body = await request.body() try:
body_str = body.decode() body = await request.body()
data = ast.literal_eval(body_str) body_str = body.decode()
return litellm_completion(data=data, type="completion", user_model=user_model, user_temperature=user_temperature, try:
user_max_tokens=user_max_tokens, user_api_base=user_api_base, user_headers=user_headers, data = ast.literal_eval(body_str)
user_debug=user_debug, model_router=model_router, user_request_timeout=user_request_timeout) except:
data = json.loads(body_str)
return litellm_completion(data=data, type="completion", user_model=user_model, user_temperature=user_temperature,
user_max_tokens=user_max_tokens, user_api_base=user_api_base, user_headers=user_headers,
user_debug=user_debug, model_router=model_router, user_request_timeout=user_request_timeout)
except Exception as e:
print(e)
return
@router.post("/v1/chat/completions") @router.post("/v1/chat/completions")
@router.post("/chat/completions") @router.post("/chat/completions")
async def chat_completion(request: Request): async def chat_completion(request: Request):
body = await request.body() try:
body_str = body.decode() body = await request.body()
data = ast.literal_eval(body_str) body_str = body.decode()
return litellm_completion(data, type="chat_completion", user_model=user_model, try:
user_temperature=user_temperature, user_max_tokens=user_max_tokens, data = ast.literal_eval(body_str)
user_api_base=user_api_base, user_headers=user_headers, user_debug=user_debug, model_router=model_router, user_request_timeout=user_request_timeout) except:
data = json.loads(body_str)
return litellm_completion(data, type="chat_completion", user_model=user_model,
user_temperature=user_temperature, user_max_tokens=user_max_tokens,
user_api_base=user_api_base, user_headers=user_headers, user_debug=user_debug, model_router=model_router, user_request_timeout=user_request_timeout)
except Exception as e:
print(e)
return
def print_cost_logs(): def print_cost_logs():
with open("costs.json", "r") as f: with open("costs.json", "r") as f: