feat/enh: forward chat id in header

This commit is contained in:
Timothy Jaeryang Baek 2025-07-18 15:03:46 +04:00
parent a395abd5d7
commit 671f577264
2 changed files with 16 additions and 0 deletions

View file

@ -124,6 +124,7 @@ async def send_post_request(
key: Optional[str] = None, key: Optional[str] = None,
content_type: Optional[str] = None, content_type: Optional[str] = None,
user: UserModel = None, user: UserModel = None,
metadata: Optional[dict] = None,
): ):
r = None r = None
@ -144,6 +145,11 @@ async def send_post_request(
"X-OpenWebUI-User-Id": user.id, "X-OpenWebUI-User-Id": user.id,
"X-OpenWebUI-User-Email": user.email, "X-OpenWebUI-User-Email": user.email,
"X-OpenWebUI-User-Role": user.role, "X-OpenWebUI-User-Role": user.role,
**(
{"X-OpenWebUI-Chat-Id": metadata.get("chat_id")}
if metadata and metadata.get("chat_id")
else {}
),
} }
if ENABLE_FORWARD_USER_INFO_HEADERS and user if ENABLE_FORWARD_USER_INFO_HEADERS and user
else {} else {}
@ -1365,6 +1371,7 @@ async def generate_chat_completion(
key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS),
content_type="application/x-ndjson", content_type="application/x-ndjson",
user=user, user=user,
metadata=metadata,
) )
@ -1403,6 +1410,8 @@ async def generate_openai_completion(
url_idx: Optional[int] = None, url_idx: Optional[int] = None,
user=Depends(get_verified_user), user=Depends(get_verified_user),
): ):
metadata = form_data.pop("metadata", None)
try: try:
form_data = OpenAICompletionForm(**form_data) form_data = OpenAICompletionForm(**form_data)
except Exception as e: except Exception as e:
@ -1468,6 +1477,7 @@ async def generate_openai_completion(
stream=payload.get("stream", False), stream=payload.get("stream", False),
key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS),
user=user, user=user,
metadata=metadata,
) )
@ -1549,6 +1559,7 @@ async def generate_openai_chat_completion(
stream=payload.get("stream", False), stream=payload.get("stream", False),
key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS),
user=user, user=user,
metadata=metadata,
) )

View file

@ -822,6 +822,11 @@ async def generate_chat_completion(
"X-OpenWebUI-User-Id": user.id, "X-OpenWebUI-User-Id": user.id,
"X-OpenWebUI-User-Email": user.email, "X-OpenWebUI-User-Email": user.email,
"X-OpenWebUI-User-Role": user.role, "X-OpenWebUI-User-Role": user.role,
**(
{"X-OpenWebUI-Chat-Id": metadata.get("chat_id")}
if metadata and metadata.get("chat_id")
else {}
),
} }
if ENABLE_FORWARD_USER_INFO_HEADERS if ENABLE_FORWARD_USER_INFO_HEADERS
else {} else {}