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博客

相关推荐
吴佳浩21 小时前
Langchain 浅出
python·langchain·llm
山顶夕景1 天前
【RL】Does RLVR enable LLMs to self-improve?
深度学习·llm·强化学习·rlvr
north_eagle1 天前
RAG 同 Prompt Engineering
大模型·prompt·rag
AndrewHZ1 天前
【图像处理基石】如何使用大模型进行图像处理工作?
图像处理·人工智能·深度学习·算法·llm·stablediffusion·可控性
mwq301231 天前
LLM 推理的“显存墙”与“通信墙”:从显存分布到部署原则
llm
KG_LLM图谱增强大模型1 天前
[经典之作]大语言模型与知识图谱的融合:通往智能未来的路线图
人工智能·大模型·知识图谱·graphrag·本体论·图谱增强大模型
rgb2gray1 天前
增强城市数据分析:多密度区域的自适应分区框架
大数据·python·机器学习·语言模型·数据挖掘·数据分析·llm
Seal软件1 天前
GPUStack v2:推理加速释放算力潜能,开源重塑大模型推理下半场
llm·gpu
FreeCode1 天前
LangGraph1.0智能体开发:运行时系统
python·langchain·agent
信也科技布道师FTE1 天前
当AMIS遇见AI智能体:如何为低代码开发装上“智慧大脑”?
人工智能·低代码·llm