google前一阵开源了一个用langgraph实现的deep research
https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart
对应到代码中也很简单:
看一下实现细节,是否有需要特殊关注的点:
- generate_query
- 根据用户历史对话,用LLM生成若干个search query
- 有option控制query count,会传入一下当前时间
- continue_to_web_research
- 把输入的search query list拆开发送给多个web research节点
- web_research
- 也是gemini的client,这块好像是会自动调用google search
- google genai client返回的llm response中,还会附带grounding_metadata,应该是在gemini内部做了search + generate,然后把对应引用的url拿出来了
- 还会加上引用的标记什么的,代码这块比较复杂。
- 看到这里我大概明白了,估计是这个genai的client不太好用,所以google给整了个example出来,教大家来用用gemini + google search,否则这里面一堆元数据的处理都能懵逼掉
- reflection
- 把上面的web resarch result合起来,然后丢给模型判断是否要继续。
- 继续的话就生成新的follow up query,丢给web search
- 否则就进入到finalize answer中,生成最后的结果
这块google把google search融进去确实会非常好用,而且可以一起做训练,让模型更好理解google search的结果。
另一个点就是这个deep research非常简单,兜兜转转回来还是最开始的那点东西,只不过模型的能力越来越强了。
文章评论