Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/backend/open_webui/routers/tasks.py b/backend/open_webui/routers/tasks.py
- index f6404da05..abb0fbdb6 100644
- --- a/backend/open_webui/routers/tasks.py
- +++ b/backend/open_webui/routers/tasks.py
- @@ -20,7 +20,10 @@ from open_webui.utils.task import (
- from open_webui.utils.auth import get_admin_user, get_verified_user
- from open_webui.constants import TASKS
- -from open_webui.routers.pipelines import process_pipeline_inlet_filter
- +from open_webui.routers.pipelines import (
- + process_pipeline_inlet_filter,
- + process_pipeline_outlet_filter,
- +)
- from open_webui.utils.task import get_task_model_id
- @@ -179,7 +182,6 @@ async def update_task_config(
- async def generate_title(
- request: Request, form_data: dict, user=Depends(get_verified_user)
- ):
- -
- if not request.app.state.config.ENABLE_TITLE_GENERATION:
- return JSONResponse(
- status_code=status.HTTP_200_OK,
- @@ -250,7 +252,12 @@ async def generate_title(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- log.error("Exception occurred", exc_info=True)
- return JSONResponse(
- @@ -263,7 +270,6 @@ async def generate_title(
- async def generate_follow_ups(
- request: Request, form_data: dict, user=Depends(get_verified_user)
- ):
- -
- if not request.app.state.config.ENABLE_FOLLOW_UP_GENERATION:
- return JSONResponse(
- status_code=status.HTTP_200_OK,
- @@ -323,7 +329,12 @@ async def generate_follow_ups(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- log.error("Exception occurred", exc_info=True)
- return JSONResponse(
- @@ -336,7 +347,6 @@ async def generate_follow_ups(
- async def generate_chat_tags(
- request: Request, form_data: dict, user=Depends(get_verified_user)
- ):
- -
- if not request.app.state.config.ENABLE_TAGS_GENERATION:
- return JSONResponse(
- status_code=status.HTTP_200_OK,
- @@ -396,7 +406,12 @@ async def generate_chat_tags(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- log.error(f"Error generating chat completion: {e}")
- return JSONResponse(
- @@ -462,7 +477,12 @@ async def generate_image_prompt(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- log.error("Exception occurred", exc_info=True)
- return JSONResponse(
- @@ -475,7 +495,6 @@ async def generate_image_prompt(
- async def generate_queries(
- request: Request, form_data: dict, user=Depends(get_verified_user)
- ):
- -
- type = form_data.get("type")
- if type == "web_search":
- if not request.app.state.config.ENABLE_SEARCH_QUERY_GENERATION:
- @@ -547,7 +566,12 @@ async def generate_queries(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- return JSONResponse(
- status_code=status.HTTP_400_BAD_REQUEST,
- @@ -632,7 +656,12 @@ async def generate_autocompletion(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- log.error(f"Error generating chat completion: {e}")
- return JSONResponse(
- @@ -645,7 +674,6 @@ async def generate_autocompletion(
- async def generate_emoji(
- request: Request, form_data: dict, user=Depends(get_verified_user)
- ):
- -
- if getattr(request.state, "direct", False) and hasattr(request.state, "model"):
- models = {
- request.state.model["id"]: request.state.model,
- @@ -701,7 +729,12 @@ async def generate_emoji(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- return JSONResponse(
- status_code=status.HTTP_400_BAD_REQUEST,
- @@ -713,7 +746,6 @@ async def generate_emoji(
- async def generate_moa_response(
- request: Request, form_data: dict, user=Depends(get_verified_user)
- ):
- -
- if getattr(request.state, "direct", False) and hasattr(request.state, "model"):
- models = {
- request.state.model["id"]: request.state.model,
- @@ -756,7 +788,12 @@ async def generate_moa_response(
- raise e
- try:
- - return await generate_chat_completion(request, form_data=payload, user=user)
- + response = await generate_chat_completion(request, form_data=payload, user=user)
- + # Add chat_id to response for observability correlation
- + response["chat_id"] = form_data.get("chat_id")
- + # Process response through outlet filter for observability (Opik, Langfuse, etc.)
- + response = await process_pipeline_outlet_filter(request, response, user, models)
- + return response
- except Exception as e:
- return JSONResponse(
- status_code=status.HTTP_400_BAD_REQUEST,
Advertisement
Add Comment
Please, Sign In to add comment