|
29 | 29 | logger = logging.getLogger(__name__)
|
30 | 30 |
|
31 | 31 |
|
32 |
| -async def deep_research(task, llm, agent_state, **kwargs): |
| 32 | +async def deep_research(task, llm, agent_state=None, **kwargs): |
33 | 33 | task_id = str(uuid4())
|
34 | 34 | save_dir = kwargs.get("save_dir", os.path.join(f"./tmp/deep_research/{task_id}"))
|
35 | 35 | logger.info(f"Save Deep Research at: {save_dir}")
|
@@ -237,19 +237,27 @@ async def deep_research(task, llm, agent_state, **kwargs):
|
237 | 237 | with open(querr_save_path, "w", encoding="utf-8") as fw:
|
238 | 238 | fw.write(f"Query: {query_tasks[i]}\n")
|
239 | 239 | fw.write(query_result)
|
240 |
| - history_infos_ = json.dumps(history_infos, indent=4) |
241 |
| - record_prompt = f"User Instruction:{task}. \nPrevious Recorded Information:\n {json.dumps(history_infos_)}\n Current Search Iteration: {search_iteration}\n Current Search Plan:\n{query_plan}\n Current Search Query:\n {query_tasks[i]}\n Current Search Results: {query_result}\n " |
242 |
| - record_messages.append(HumanMessage(content=record_prompt)) |
243 |
| - ai_record_msg = llm.invoke(record_messages[:1] + record_messages[-1:]) |
244 |
| - record_messages.append(ai_record_msg) |
245 |
| - if hasattr(ai_record_msg, "reasoning_content"): |
246 |
| - logger.info("🤯 Start Record Deep Thinking: ") |
247 |
| - logger.info(ai_record_msg.reasoning_content) |
248 |
| - logger.info("🤯 End Record Deep Thinking") |
249 |
| - record_content = ai_record_msg.content |
250 |
| - record_content = repair_json(record_content) |
251 |
| - new_record_infos = json.loads(record_content) |
252 |
| - history_infos.extend(new_record_infos) |
| 240 | + # split query result in case the content is too long |
| 241 | + query_results_split = query_result.split("Extracted page content:") |
| 242 | + for qi, query_result_ in enumerate(query_results_split): |
| 243 | + if not query_result_: |
| 244 | + continue |
| 245 | + else: |
| 246 | + # TODO: limit content lenght: 128k tokens, ~3 chars per token |
| 247 | + query_result_ = query_result_[:128000*3] |
| 248 | + history_infos_ = json.dumps(history_infos, indent=4) |
| 249 | + record_prompt = f"User Instruction:{task}. \nPrevious Recorded Information:\n {history_infos_}\n Current Search Iteration: {search_iteration}\n Current Search Plan:\n{query_plan}\n Current Search Query:\n {query_tasks[i]}\n Current Search Results: {query_result_}\n " |
| 250 | + record_messages.append(HumanMessage(content=record_prompt)) |
| 251 | + ai_record_msg = llm.invoke(record_messages[:1] + record_messages[-1:]) |
| 252 | + record_messages.append(ai_record_msg) |
| 253 | + if hasattr(ai_record_msg, "reasoning_content"): |
| 254 | + logger.info("🤯 Start Record Deep Thinking: ") |
| 255 | + logger.info(ai_record_msg.reasoning_content) |
| 256 | + logger.info("🤯 End Record Deep Thinking") |
| 257 | + record_content = ai_record_msg.content |
| 258 | + record_content = repair_json(record_content) |
| 259 | + new_record_infos = json.loads(record_content) |
| 260 | + history_infos.extend(new_record_infos) |
253 | 261 |
|
254 | 262 | logger.info("\nFinish Searching, Start Generating Report...")
|
255 | 263 |
|
|
0 commit comments