Ver código fonte

fix: remove redundant chunk appending for `llm_client.think`

Stone Zhang 7 meses atrás
pai
commit
21c26c2a4d

+ 2 - 2
code/chapter4/Plan_and_solve.py

@@ -38,7 +38,7 @@ class Planner:
         messages = [{"role": "user", "content": prompt}]
         
         print("--- 正在生成计划 ---")
-        response_text = "".join(self.llm_client.think(messages=messages))
+        response_text = self.llm_client.think(messages=messages) or ""
         print(f"✅ 计划已生成:\n{response_text}")
         
         try:
@@ -90,7 +90,7 @@ class Executor:
             )
             messages = [{"role": "user", "content": prompt}]
             
-            response_text = "".join(self.llm_client.think(messages=messages))
+            response_text = self.llm_client.think(messages=messages) or ""
             
             history += f"步骤 {i}: {step}\n结果: {response_text}\n\n"
             final_answer = response_text

+ 1 - 4
code/chapter4/Reflection.py

@@ -144,11 +144,8 @@ class ReflectionAgent:
     def _get_llm_response(self, prompt: str) -> str:
         """一个辅助方法,用于调用LLM并获取完整的流式响应。"""
         messages = [{"role": "user", "content": prompt}]
-        response_text = ""
         # 确保能处理生成器可能返回None的情况
-        for chunk in self.llm_client.think(messages=messages):
-            if chunk:
-                response_text += chunk
+        response_text = self.llm_client.think(messages=messages) or ""
         return response_text
 
 if __name__ == '__main__':

+ 3 - 9
docs/chapter4/第四章 智能体经典范式构建.md

@@ -673,10 +673,8 @@ class Planner:
         messages = [{"role": "user", "content": prompt}]
         
         print("--- 正在生成计划 ---")
-        response_text = ""
         # 使用流式输出来获取完整的计划
-        for chunk in self.llm_client.think(messages=messages):
-            response_text += chunk
+        response_text = self.llm_client.think(messages=messages) or ""
         
         print(f"✅ 计划已生成:\n{response_text}")
         
@@ -756,9 +754,7 @@ class Executor:
             
             messages = [{"role": "user", "content": prompt}]
             
-            response_text = ""
-            for chunk in self.llm_client.think(messages=messages):
-                response_text += chunk
+            response_text = self.llm_client.think(messages=messages) or ""
             
             # 更新历史记录,为下一步做准备
             history += f"步骤 {i+1}: {step}\n结果: {response_text}\n\n"
@@ -1094,9 +1090,7 @@ class ReflectionAgent:
     def _get_llm_response(self, prompt: str) -> str:
         """一个辅助方法,用于调用LLM并获取完整的流式响应。"""
         messages = [{"role": "user", "content": prompt}]
-        response_text = ""
-        for chunk in self.llm_client.think(messages=messages):
-            response_text += chunk
+        rresponse_text = self.llm_client.think(messages=messages) or ""
         return response_text
 
 ```