微信扫码
与创始人交个朋友
我要投稿
AI搜索的最简流程是:
将用户问题google搜索一遍
基于搜索结果,让大模型进行总结输出
但这样的结果一般很粗糙。
一般用户在实际使用的时候,会基于第一次搜索结果进行二次搜索和点开部分网页,这样可以获得更加精细和可靠的结果。
所以更好一点的流程可以是:
将用户问题google搜索一遍
基于用户问题和搜索结果,进行可能有帮助的二次google搜索
基于第一次和第二次的搜索,获取部分和用户问题最相关的网页内容
基于1、2、3获取的搜索结果和网页内容,进行结构化整理输出给用户。
下面是基于GeneralAgent框架(开源地址: https://github.com/CosmosShadow/GeneralAgent),快速实现的一个AI搜索。
# AI搜索
from GeneralAgent import Agent
from GeneralAgent import skills
google_results = []
# 步骤1: 第一次google搜索
question = input('请输入问题,进行 AI 搜索: ')
# question = '周鸿祎卖车'
content1 = skills.google_search(question)
google_results.append(content1)
# 步骤2: 第二次google搜索: 根据第一次搜索结构,获取继续搜索的问题
agent = Agent('你是一个AI搜索助手。')
querys = agent.run(f'用户问题: \n{question}\n\n搜索引擎结果: \n{content1}\n\n。请问可以帮助用户,需要继续搜索的关键短语有哪些(最多3个,且和问题本身不太重合)?返回关键短语列表变量([query1, query2])', return_type=list)
print(querys)
for query in querys:
content = skills.google_search(query)
google_results.append(content)
# 步骤3: 提取重点网页内容
agent.clear()
web_contents = []
google_result = '\n\n'.join(google_results)
urls = agent.run(f'用户问题: \n{question}\n\n搜索引擎结果: \n{google_result}\n\n。哪些网页对于用户问题比较有帮助?请返回最重要的不超过5个的网页url列表变量([url1, url2, ...])', return_type=list)
for url in urls:
content = skills.web_get_text(url, wait_time=2)
web_contents.append(content)
# 步骤4: 输出结果
agent.clear()
web_content = '\n\n'.join(web_contents)
agent.run(f'用户问题: \n{question}\n\n搜索引擎结果: \n{google_result}\n\n部分网页内容: \n{web_content}\n\n。请根据用户问题,搜索引擎结果,网页内容,给出用户详细的回答,要求按一定目录结构来输出,并且使用markdown格式。')
实际运行效果:
搜索"周鸿祎卖车",输出下面的结果:
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-08-13
2024-05-28
2024-04-26
2024-08-21
2024-06-13
2024-08-04
2024-07-09
2024-09-23
2024-07-18
2024-04-11