Update app.py
Browse files
app.py
CHANGED
|
@@ -536,12 +536,12 @@ def prepare_message_with_media(text, images=None, documents=None):
|
|
| 536 |
def format_to_message_dict(history):
|
| 537 |
"""Convert history to proper message format"""
|
| 538 |
messages = []
|
| 539 |
-
for
|
| 540 |
-
if isinstance(
|
| 541 |
-
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
human, ai =
|
| 545 |
if human:
|
| 546 |
messages.append({"role": "user", "content": human})
|
| 547 |
if ai:
|
|
@@ -1131,12 +1131,11 @@ def extract_ai_response(result, provider):
|
|
| 1131 |
# STREAMING HANDLERS
|
| 1132 |
# ==========================================================
|
| 1133 |
|
| 1134 |
-
def openrouter_streaming_handler(response,
|
| 1135 |
try:
|
| 1136 |
-
|
| 1137 |
-
|
| 1138 |
-
|
| 1139 |
-
|
| 1140 |
for line in response.iter_lines():
|
| 1141 |
if not line:
|
| 1142 |
continue
|
|
@@ -1155,16 +1154,14 @@ def openrouter_streaming_handler(response, chatbot, message_idx, message):
|
|
| 1155 |
delta = chunk["choices"][0].get("delta", {})
|
| 1156 |
if "content" in delta and delta["content"]:
|
| 1157 |
# Update the current response
|
| 1158 |
-
|
| 1159 |
-
yield
|
| 1160 |
except json.JSONDecodeError:
|
| 1161 |
logger.error(f"Failed to parse JSON from chunk: {data}")
|
| 1162 |
except Exception as e:
|
| 1163 |
logger.error(f"Error in streaming handler: {str(e)}")
|
| 1164 |
# Add error message to the current response
|
| 1165 |
-
|
| 1166 |
-
chatbot[-1][1] += f"\n\nError during streaming: {str(e)}"
|
| 1167 |
-
yield chatbot
|
| 1168 |
|
| 1169 |
def openai_streaming_handler(response, chatbot, message_idx, message):
|
| 1170 |
try:
|
|
|
|
| 536 |
def format_to_message_dict(history):
|
| 537 |
"""Convert history to proper message format"""
|
| 538 |
messages = []
|
| 539 |
+
for item in history:
|
| 540 |
+
if isinstance(item, dict) and "role" in item and "content" in item:
|
| 541 |
+
messages.append(item)
|
| 542 |
+
elif isinstance(item, list) and len(item) == 2:
|
| 543 |
+
# Convert from old format [user_msg, ai_msg]
|
| 544 |
+
human, ai = item
|
| 545 |
if human:
|
| 546 |
messages.append({"role": "user", "content": human})
|
| 547 |
if ai:
|
|
|
|
| 1131 |
# STREAMING HANDLERS
|
| 1132 |
# ==========================================================
|
| 1133 |
|
| 1134 |
+
def openrouter_streaming_handler(response, history, message):
|
| 1135 |
try:
|
| 1136 |
+
updated_history = history + [{"role": "user", "content": message}]
|
| 1137 |
+
assistant_response = ""
|
| 1138 |
+
|
|
|
|
| 1139 |
for line in response.iter_lines():
|
| 1140 |
if not line:
|
| 1141 |
continue
|
|
|
|
| 1154 |
delta = chunk["choices"][0].get("delta", {})
|
| 1155 |
if "content" in delta and delta["content"]:
|
| 1156 |
# Update the current response
|
| 1157 |
+
assistant_response += delta["content"]
|
| 1158 |
+
yield updated_history + [{"role": "assistant", "content": assistant_response}]
|
| 1159 |
except json.JSONDecodeError:
|
| 1160 |
logger.error(f"Failed to parse JSON from chunk: {data}")
|
| 1161 |
except Exception as e:
|
| 1162 |
logger.error(f"Error in streaming handler: {str(e)}")
|
| 1163 |
# Add error message to the current response
|
| 1164 |
+
yield updated_history + [{"role": "assistant", "content": f"Error during streaming: {str(e)}"}]
|
|
|
|
|
|
|
| 1165 |
|
| 1166 |
def openai_streaming_handler(response, chatbot, message_idx, message):
|
| 1167 |
try:
|