|
@@ -196,7 +196,11 @@ async def get_function_call_response(messages, tool_id, template, task_model_id,
|
|
|
"stream": False,
|
|
|
}
|
|
|
|
|
|
- payload = filter_pipeline(payload, user)
|
|
|
+ try:
|
|
|
+ payload = filter_pipeline(payload, user)
|
|
|
+ except Exception as e:
|
|
|
+ raise e
|
|
|
+
|
|
|
model = app.state.MODELS[task_model_id]
|
|
|
|
|
|
response = None
|
|
@@ -326,16 +330,19 @@ class ChatCompletionMiddleware(BaseHTTPMiddleware):
|
|
|
print(data["tool_ids"])
|
|
|
for tool_id in data["tool_ids"]:
|
|
|
print(tool_id)
|
|
|
- response = await get_function_call_response(
|
|
|
- messages=data["messages"],
|
|
|
- tool_id=tool_id,
|
|
|
- template=app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE,
|
|
|
- task_model_id=task_model_id,
|
|
|
- user=user,
|
|
|
- )
|
|
|
+ try:
|
|
|
+ response = await get_function_call_response(
|
|
|
+ messages=data["messages"],
|
|
|
+ tool_id=tool_id,
|
|
|
+ template=app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE,
|
|
|
+ task_model_id=task_model_id,
|
|
|
+ user=user,
|
|
|
+ )
|
|
|
|
|
|
- if response:
|
|
|
- context += ("\n" if context != "" else "") + response
|
|
|
+ if response:
|
|
|
+ context += ("\n" if context != "" else "") + response
|
|
|
+ except Exception as e:
|
|
|
+ print(f"Error: {e}")
|
|
|
del data["tool_ids"]
|
|
|
|
|
|
print(f"tool_context: {context}")
|
|
@@ -767,7 +774,14 @@ async def generate_title(form_data: dict, user=Depends(get_verified_user)):
|
|
|
}
|
|
|
|
|
|
print(payload)
|
|
|
- payload = filter_pipeline(payload, user)
|
|
|
+
|
|
|
+ try:
|
|
|
+ payload = filter_pipeline(payload, user)
|
|
|
+ except Exception as e:
|
|
|
+ return JSONResponse(
|
|
|
+ status_code=e.args[0],
|
|
|
+ content={"detail": e.args[1]},
|
|
|
+ )
|
|
|
|
|
|
if model["owned_by"] == "ollama":
|
|
|
return await generate_ollama_chat_completion(
|
|
@@ -824,7 +838,14 @@ async def generate_search_query(form_data: dict, user=Depends(get_verified_user)
|
|
|
}
|
|
|
|
|
|
print(payload)
|
|
|
- payload = filter_pipeline(payload, user)
|
|
|
+
|
|
|
+ try:
|
|
|
+ payload = filter_pipeline(payload, user)
|
|
|
+ except Exception as e:
|
|
|
+ return JSONResponse(
|
|
|
+ status_code=e.args[0],
|
|
|
+ content={"detail": e.args[1]},
|
|
|
+ )
|
|
|
|
|
|
if model["owned_by"] == "ollama":
|
|
|
return await generate_ollama_chat_completion(
|
|
@@ -861,9 +882,16 @@ async def get_tools_function_calling(form_data: dict, user=Depends(get_verified_
|
|
|
print(model_id)
|
|
|
template = app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE
|
|
|
|
|
|
- return await get_function_call_response(
|
|
|
- form_data["messages"], form_data["tool_id"], template, model_id, user
|
|
|
- )
|
|
|
+ try:
|
|
|
+ context = await get_function_call_response(
|
|
|
+ form_data["messages"], form_data["tool_id"], template, model_id, user
|
|
|
+ )
|
|
|
+ return context
|
|
|
+ except Exception as e:
|
|
|
+ return JSONResponse(
|
|
|
+ status_code=e.args[0],
|
|
|
+ content={"detail": e.args[1]},
|
|
|
+ )
|
|
|
|
|
|
|
|
|
@app.post("/api/chat/completions")
|