Update openai.py
Browse files
openai.py
CHANGED
|
@@ -408,21 +408,15 @@ async def chat_completions(request: Request):
|
|
| 408 |
)
|
| 409 |
break
|
| 410 |
|
| 411 |
-
# Zai ignores
|
| 412 |
-
|
| 413 |
-
|
| 414 |
for msg in messages:
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
system_text = "\n".join(system_parts)
|
| 421 |
-
for i, msg in enumerate(filtered):
|
| 422 |
-
if msg.get("role") == "user":
|
| 423 |
-
filtered[i] = {**msg, "content": f"<SYSTEM_PROMPT>{system_text}</SYSTEM_PROMPT>\n{msg.get('content', '')}"}
|
| 424 |
-
break
|
| 425 |
-
messages = filtered
|
| 426 |
|
| 427 |
if not prompt:
|
| 428 |
return JSONResponse(
|
|
|
|
| 408 |
)
|
| 409 |
break
|
| 410 |
|
| 411 |
+
# Zai ignores multi-turn context — flatten all messages into a single
|
| 412 |
+
# user message with <ROLE> tags so the model sees the full conversation.
|
| 413 |
+
parts: list[str] = []
|
| 414 |
for msg in messages:
|
| 415 |
+
role = msg.get("role", "user")
|
| 416 |
+
content = msg.get("content", "") or ""
|
| 417 |
+
parts.append(f"<{role.upper()}>{content}</{role.upper()}>")
|
| 418 |
+
flat_content = "\n".join(parts)
|
| 419 |
+
messages = [{"role": "user", "content": flat_content}]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 420 |
|
| 421 |
if not prompt:
|
| 422 |
return JSONResponse(
|