当前位置: 首页 > backend >正文

LangChain-结合智谱AI大模型实现自定义tools应用实例

准备:

1.可供调用的实时查询天气的接口:

百度天气接口:https://lbsyun.baidu.com/faq/api?title=webapi/weather/base(没有可以去注册用户实名认证后即可免费使用)

可以使用接口工具ApiPost调用,验证接口是否正常

2.一个csv文件,文件内容中包含各个省市区的行政编码

需求:

自定义查询天气的工具,可实时查询任意省市区的天气情况

实现:

1.先定义一个查询 省市区的行政编码的方法 select_code,读取csv文件中的数据

def select_code(csv_file, district_name) ->str:"""根据区域或者城市的名字,返回区域编码:param csv_file::param district_name::return:"""district_map = {}with open(csv_file, mode='r', encoding='utf-8') as f:csv_reader = csv.DictReader(f)for line in csv_reader:district_code = line['districtcode'].strip()district = line['district'].strip()if district not in district_map:district_map[district] = district_codereturn district_map.get(district_name, None)

测试一下:

if __name__ == '__main__':print(select_code('weather_district_id.csv', '十堰'))

输出:

 2.定义了一个 Pydantic 模型 WeatherInputArgs,用于校验和封装调用天气查询工具所需的输入参数

class WeatherInputArgs(BaseModel):location: str = Field(..., description="用于查询天气的位置信息")

class WeatherInputArgs(BaseModel)
定义一个类 WeatherInputArgs,继承自 BaseModel。
BaseModel 是 Pydantic 提供的基类,用于数据验证和设置管理。
使用它可以确保传入的数据符合指定的类型和格式。


location: str
定义了一个字段 location,其类型为字符串(str)。
表示用户需要查询天气的“位置”。

http://www.xdnf.cn/news/10531.html

相关文章:

  • 吴恩达MCP课程(4):connect_server_mcp_chatbot
  • springboot中@Async做异步操作(Completable异步+ThreadPoolTaskExecutor线程池+@Async注解)
  • shp转3d tiles在cesium渲染楼宇白膜
  • Linux 驱动之设备树
  • Leetcode 2093. 前往目标城市的最小费用
  • SAR ADC 异步逻辑设计
  • Linux系统配置屏幕旋转和触摸旋转
  • 从冷上电到main()函数,Bootloader都做了什么?
  • 数据类型检测有哪些方式?
  • robot_lab学习笔记【MDP综述】
  • QuickJS 如何计算黄金分割率 ?
  • barker-OFDM模糊函数原理及仿真
  • Linux防火墙:全面解析IPTables的表、链、规则!
  • Cypress + TypeScript + Vue3
  • 数据库管理与高可用-MySQL全量,增量备份与恢复
  • 劫持进程注入
  • C语言进阶--程序的编译(预处理动作)+链接
  • 数据结构:递归(Recursion)
  • 基于TMC5160堵转检测技术的夹紧力控制系统设计与实现
  • 输入ifconfig,发现ens33不见了,无法连接至虚拟机
  • Golang——3、流程控制语句
  • C++实现伽罗华域生成及四则运算(三)
  • Python----目标检测(《SSD: Single Shot MultiBox Detector》论文和SSD的原理与网络结构)
  • CppCon 2014 学习:C++ in Huge AAA Games
  • STM32F407寄存器操作(多通道单ADC+DMA)
  • 前端面试准备-5
  • Mask_RCNN 环境配置及训练
  • QT中子线程触发主线程弹窗并阻塞等待用户响应-传统信号槽实现
  • DRW - 加密市场预测
  • 考研系列—操作系统:第四章、文件管理(part.2)