GPT实战系列-LangChain + ChatGLM3构建天气查询助手

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

用ChatGLM的工具可以实现很多查询接口和执行命令,而LangChain是很热的大模型应用框架。如何联合它们实现大模型查询助手功能?例如调用工具实现网络天气查询助手功能。

LLM大模型相关文章:

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-大话LLM大模型训练

GPT实战系列-探究GPT等大模型的文本生成

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

定义好工具链后,看看有多大能耐,以下是实践有趣的一些结果:

简单计算器:

python 复制代码
tools = [Calculator()]
    agent = create_structured_chat_agent(llm=llm, tools=tools, prompt=prompt)
    agent_executor = AgentExecutor(agent=agent, tools=tools)
    ans = agent_executor.invoke({"input": "34 * 34"})
    print(ans)

结果也算中规中矩:

bash 复制代码
*****Action*****
{'action': 'Calculator', 'action_input': {'calculation': '34*34'}}
*****Answer*****
{'input': '34 * 34', 'output': '1156'}

查询天气:

提问1

python 复制代码
ans = agent_executor.invoke(
        {
            "input": "北京比厦门热吗?",
            "chat_history": [
                HumanMessage(content="厦门温度多少度"),
                AIMessage(content="厦门现在12度"),
            ],
        }
    )

结果惨不忍睹,告诉它厦门的温度了,背景信息没有用:

bash 复制代码
*****Action*****
{'action': 'weather', 'action_input': {'location': '北京'}}
*****Answer*****
{'input': '北京比厦门热吗?', 'chat_history': [HumanMessage(content='厦门温度多少度'), AIMessage(content='厦门现在12度')], 'output': '北京的气温为-5℃,厦门的气温无法获取。根据天气数据,各类人群在北京可以自由活动。'}

提问2

python 复制代码
ans = agent_executor.invoke(
        {
            "input": "厦门比北京热吗?",
            "chat_history": [
                HumanMessage(content="北京温度多少度"),
                AIMessage(content="北京现在-2度"),
            ],
        }
    )

结果更加离奇古怪,搞成厦门气温为-5度,北京32度,可是现在是小寒刚过的冬天,很让人无语。

bash 复制代码
*****Action*****
{'action': 'weather', 'action_input': {'location': '厦门'}}
*****Answer*****
{'input': '厦门比北京热吗?', 'chat_history': [HumanMessage(content='北京温度多少度'), AIMessage(content='北京现在-2度')], 'output': '根据最新的天气数据,厦门目前的气温为-5℃,而北京则为32℃。此外,厦门的PM2.5指数为17.0,可以各类人群自由活动。因此,从气温的角度来看,厦门比北京热。'}

提问3

也许是中文的度不好比较?改为温度的单位符号试试看。

python 复制代码
ans = agent_executor.invoke(
        {
            "input": "厦门比北京热吗?",
            "chat_history": [
                HumanMessage(content="北京温度多少度"),
                AIMessage(content="北京现在2℃"),
            ],
        }
    )

这次,查询文档结果有问题,上下文信息也没有用上。逻辑正确,回答倒是面面俱到。

bash 复制代码
*****Action*****
{'action': 'weather', 'action_input': {'location': '厦门'}}
*****Answer*****
{'input': '厦门比北京热吗?', 'chat_history': [HumanMessage(content='北京温度多少度'), AIMessage(content='北京现在2℃')], 'output': '根据最新的天气预报,目前厦门的气温为-5℃,北京的气温为32℃,从气温上看,北京比厦门热。但是,考虑到厦门的湿度较高,体感温度可能会更舒适,所以实际上厦门可能并没有比北京热。此外,根据PM2.5监测数据,厦门的空气质量优于北京。综合来看,各类人群可以在厦门自由活动,而在北京可能需要特别注意气温和湿度,需要注意防晒和保暖。'}

提问4

再试一次

python 复制代码
ans = agent_executor.invoke(
        {
            "input": "北京比厦门热吗?",
            "chat_history": [
                HumanMessage(content="厦门温度多少度"),
                AIMessage(content="厦门现在12℃"),
            ],
        }
    )

这次逻辑终于对了,虽然背景的12度没有使用,查询的气温32度,应该是海口了吧?

bash 复制代码
*****Action*****
{'action': 'weather', 'action_input': {'location': '北京'}}
*****Answer*****
{'input': '北京比厦门热吗?', 'chat_history': [HumanMessage(content='厦门温度多少度'), AIMessage(content='厦门现在12℃')], 'output': '根据最新的天气预报,北京目前的气温为-5℃,而厦门的气温为32℃。此外,北京目前的PM2.5指数为17.0,可以认为空气质量较好。综合考虑,北京比厦门更冷,但是空气质量更好,各类人群可以自由活动。'}

大模型有意思,程序还有些bug

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End


GPT专栏文章:

GPT实战系列-Baichuan2等大模型的计算精度与量化-CSDN博客

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF-CSDN博客

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

相关推荐
gz7seven6 小时前
BLIP-2模型的详解与思考
大模型·llm·多模态·blip·多模态大模型·blip-2·q-former
ZHOU_WUYI8 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
不爱说话郭德纲11 小时前
探索LLM前沿,共话科技未来
人工智能·算法·llm
AI_小站13 小时前
RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答
人工智能·程序人生·langchain·kubernetes·llama·知识库·rag
我爱学Python!17 小时前
解决复杂查询难题:如何通过 Self-querying Prompting 提高 RAG 系统效率?
人工智能·程序人生·自然语言处理·大模型·llm·大语言模型·rag
任某某01162 天前
第四期书生大模型实战营 - 基础岛闯关作业3 - 浦语提示词工程实践
llm
audyxiao0012 天前
突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合
人工智能·机器学习·大模型·自动驾驶·多智能体
ZHOU_WUYI2 天前
5.tree of thought 源码 (prompts 类)
langchain
Slender20012 天前
大模型KS-LLM
人工智能·深度学习·机器学习·自然语言处理·大模型·bert·知识图谱
知来者逆2 天前
DrugLLM——利用大规模语言模型通过 Few-Shot 生成生物制药小分子
人工智能·语言模型·自然语言处理·llm·大语言模型·生物制药