NLP(五十八)LangChain使用Google Search Agent
大模型存在的问题
大模型在给人带来眼前一亮的表现,深深地震撼各行各业人们的同时,其本身也存在着不少问题。
以OpenAI的ChatGPT模型为例,其存在的问题有:
- 事实错误,容易一本正经地胡说八道,造成幻觉问题。
- 逻辑推理能力弱,缺乏像人类一样的判断能力
- 世界知识的局限性与时限性,对专业领域知识、私人知识和实时信息,无法回答
LangChain中的Agent
Agent(代理)是LangChain中的高级功能,可插件化地对模型回答进行修改或补充,弥补模型存在的不足,相当于模型的插件。其中,Google Search代理允许我们使用谷歌搜索。
首先,我们需要在Google Cloud credential console (https://console.cloud.google.com/apis/credentials)中获取GOOGLE_API_KEY,在Programmable
Search Enginge (https://programmablesearchengine.google.com/controlpanel/create)中获取GOOGLE_CSE_ID,接着安装pip install google-api-python-client
第三方模块。具体的设置过程不在此讲述,读者可自行设置。
下面将介绍如何在LangChain中使用Google Search Agent,Python示例代码如下:
1 |
|
谷歌搜索结果如下:
[{'title': '三名科学家分享2022年诺贝尔物理学奖-新华网', 'link': 'http://www.news.cn/2022-10/04/c_1129050882.htm', 'snippet': 'Oct 4, 2022 ... 新华社斯德哥尔摩10月4日电(记者和苗付一鸣)瑞典皇家科学院4日宣布,将2022年诺贝尔物理学奖授予法国科学家阿兰·阿斯佩、美国科学家约翰·克劳泽和...'}, {'title': '2022年诺贝尔物理学奖为何颁给了这三位? -中新网', 'link': 'https://www.chinanews.com.cn/cj/2022/10-05/9867029.shtml', 'snippet': 'Oct 5, 2022 ... 北京时间10月4日下午,瑞典皇家科学院宣布,将2022年诺贝尔物理学奖颁给法国科学家阿兰·阿斯佩(Alain Aspect)、美国科学家约翰·克劳泽(John F.'}, {'title': '解读2022年诺贝尔物理学奖:为第二次量子革命奠定基础--经济·科技 ...', 'link': 'http://finance.people.com.cn/n1/2022/1010/c1004-32542107.html', 'snippet': 'Oct 10, 2022 ... 瑞典皇家科学院4日宣布,将2022年诺贝尔物理学奖授予法国科学家阿兰·阿斯佩、美国科学家约翰·克劳泽和奥地利科学家安东·蔡林格,以表彰他们在“纠缠光子...'}]
使用Google Search Agent改善大模型
借助Google Search Agent,针对大模型回答不了实时信息或超过训练预料库知识的问题,我们能很好地改善这一问题。这也是如何使用外部知识来改善大模型表现的一种办法。
以下是示例Python代码:
1 |
|
对于“现在上海的地铁里程有多少?”这个问题,LangChain的回复链及最终答案如下:
1 |
|
我们再来看几个例子:
问题:2022年的诺贝尔物理学家获得者是谁? 回答:The 2022 Nobel Prize in Physics was awarded to Alain Aspect, John F. Clauser, and Anton Zeilinger.
问题:2022年的上海市市长是谁? 回答:2022年的上海市市长是龚正。
问题:2023年苏迪曼杯在哪里举行,获胜者是谁? 回答:The 2023 Sudirman Cup was held in Suzhou, China, and the winner was China.
问题:今年的端午节是哪几天? 回答:This year's Dragon Boat Festival will be on June 22nd, 2023.
有了Google Search Agent,ChatGPT能很好地回复上述问题,解决了实时信息无法回答的问题,避免了世界知识的局限性和时效性。而没有Google Search Agent,对于上述问题,基本无法回答,就算能回答,也是2021年9月之前的文本信息了。
美中不足的是,LangChain使用Google Search Agent,给出的问题答复,往往都是英语。而我们想得到中文答案的话,还需要再想一点办法,但回复的内容是令人满意的。
总结
本文主要介绍了如何在LangChain中使用Google Search Agent,来改善大模型存在的不足之处。
参考文献
- Google Search:https://python.langchain.com/docs/modules/agents/tools/integrations/google_search
- Google搜索包装器:https://www.langchain.asia/ecosystem/google_search
欢迎关注我的知识星球“自然语言处理奇幻之旅”,笔者正在努力构建自己的技术社区。