如何用Langchain来实现一个查询天气的AI智能体
上一篇,我们讲了如何用Langchain来搭建一个通义大语言模型应用。今天小编就来讲一讲如何用Langchain来实现一个查询天气的AI智能体。

本文使用的大模型是智谱AI,采用Python代码来实现。我们需要先在官方网站申请一个开发的Key,在接下来的代码中需要用到。
1、代码
全程上干货,代码如下:
文件名:weather.py
import requests
import pandas as pd
from langchain.tools import tool
from langchain.agents import create_react_agent,AgentExecutor
from langchain import hub
import os
from langchain_community.chat_models import ChatZhipuAI
@tool(description=“根据城市名称获取天气信息”)
def getWeather(cityName: str) -> str:
“”“根据城市名称获取天气信息。”“”
cityCode = get_city_code(cityName)
url = “https://eolink.o.apispace.com/456456/weather/v001/now”
payload = {“areacode” : cityCode,“lonlat” : “116.407526,39.904030”}
headers = {
“X-APISpace-Token”:“wndgc4vuwxxxx”
}
response = requests.get(url, params=payload, headers=headers)
print(response.text)
data = response.json()
temp = data.get(“result”).get(“realtime”).get(“temp”)
wd = data.get(“result”).get(“realtime”).get(“text”)
return response.text
return f"当前{cityName}的温度是{temp}度,天气是{wd}"
def get_city_code(city_name:str) ->int:
“”“根据城市名称获取城市代码。”“”
city_df = pd.read_csv(“./city.csv”)
获取城市编码
优先匹配区县
match = city_df[city_df[‘district’]==city_name]
if not match.empty:
return match.iloc[0][‘areacode/城市ID’]
#匹配城市
match = city_df[city_df[‘city’]==city_name]
if not match.empty:
return match.iloc[0][‘areacode/城市ID’]
#匹配省份
match = city_df[city_df[‘city’].str.contains(city_name,na=False)]
if not match.empty:
return match.iloc[0][‘areacode/城市ID’]
#默认北京
return 101010100
key= ‘35a6xxxx’ #这里的key需要替换成你自己的key
chat = ChatZhipuAI(
api_key=key,
model=“glm-4”,
streaming=False, # 确保 streaming=False
temperature=0.7
)
#创建工具对象
tools = [getWeather]
#获取提示词
prompt = hub.pull(“hwchase17/react”)
#创建智能体
agent = create_react_agent(llm=chat,tools=tools,prompt=prompt)
#创建AgentExecutor,运行智能体
agent_executor = AgentExecutor(agent=agent, tools=tools,verbose=True)
#verbose代表输出日志
#调用智能体
response = agent_executor.invoke({‘input’:‘今天上海天气如何?’})
print(response)
2、运行展示
在命令行中运行代码:python3 weather.py

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
👇👇扫码免费领取全部内容👇👇
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 2026行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)