Pārlūkot izejas kodu

fix: <think> tag

Timothy Jaeryang Baek 2 mēneši atpakaļ
vecāks
revīzija
c36c63f1e8
1 mainītis faili ar 26 papildinājumiem un 7 dzēšanām
  1. 26 7
      backend/open_webui/utils/middleware.py

+ 26 - 7
backend/open_webui/utils/middleware.py

@@ -1233,6 +1233,16 @@ async def process_chat_response(
                             ].replace(match.group(0), "")
                             if not content_blocks[-1]["content"]:
                                 content_blocks.pop()
+
+                                if not content_blocks:
+                                    # Append the new block
+                                    content_blocks.append(
+                                        {
+                                            "type": "text",
+                                            "content": "",
+                                        }
+                                    )
+
                             # Append the new block
                             content_blocks.append(
                                 {
@@ -1461,14 +1471,23 @@ async def process_chat_response(
                                 log.debug("Error: ", e)
                                 continue
 
-                    # Clean up the last text block
-                    if content_blocks[-1]["type"] == "text":
-                        content_blocks[-1]["content"] = content_blocks[-1][
-                            "content"
-                        ].strip()
+                    if content_blocks:
+                        # Clean up the last text block
+                        if content_blocks[-1]["type"] == "text":
+                            content_blocks[-1]["content"] = content_blocks[-1][
+                                "content"
+                            ].strip()
+
+                            if not content_blocks[-1]["content"]:
+                                content_blocks.pop()
 
-                        if not content_blocks[-1]["content"]:
-                            content_blocks.pop()
+                                if not content_blocks:
+                                    content_blocks.append(
+                                        {
+                                            "type": "text",
+                                            "content": "",
+                                        }
+                                    )
 
                     if response_tool_calls:
                         tool_calls.append(response_tool_calls)