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

使用langchain框架开发一个能调用工具的聊天助手Demo

询问今天天气情况,调用获取天气工具函数:

大模型是通过调用的是阿里百炼的接口调用deepseek-v3模型

import os
from langchain.chat_models import init_chat_model
from langchain_core.messages import HumanMessage, SystemMessage, AIMessage
from langchain.tools import toolmodel = init_chat_model(api_key=os.getenv("DASHSCOPE_API_KEY"),base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",model="deepseek-v3",model_provider="openai"
)# 定义工具函数
@tool
def get_weather(location: str) -> str:"""获取指定位置的天气信息"""return "今天" + location + "天气很好"@tool
def get_date(country: str) -> str:"""获取今天的日期"""return "yyyyMMdd"available_tools = {"get_weather": get_weather, "get_date": get_date}
model_with_tools = model.bind_tools([get_weather, get_date])history_messages = [SystemMessage(content="你是一个聊天助理"),HumanMessage(content="你好,你能介绍下你自己吗?"),AIMessage(content="我是你的生活聊天助理,我叫小D"),
]
messages = history_messages + [HumanMessage(content="今天上海天气怎么样?")]
output = model_with_tools.invoke(messages)
print(output)
for tool_call in output.tool_calls:selected_tool = available_tools[tool_call["name"].lower()]tool_msg = selected_tool.invoke(tool_call)messages.append(tool_msg)print(tool_msg.content)

http://www.dtcms.com/a/322667.html

相关文章:

  • MCU-基于TC397的启动流程
  • SQL基本
  • “自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板
  • 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
  • 【阿里巴巴大数据实践之路学习记录】第十章-维度设计
  • 算法_python_学习记录_02
  • Docker大全
  • 通过 Docker 运行 Prometheus 入门
  • 开源智能手机安全相机推荐:Snap Safe
  • 数据结构(9)——排序
  • 【C++上岸】C++常见面试题目--数据结构篇(第十五期)
  • 搜索算法经典案例
  • SpringSecurity过滤器链全解析
  • navicat 连接docker容器里面mysql服务失败解决
  • 传输线的瞬时阻抗
  • UE破碎Chaos分配模型内部面材质
  • Jmeter性能测试之安装及启动Jmeter
  • Nginx 安全加固与服务监控体系
  • 如何无损压缩图片至原大小的10%?
  • ComfyUI——舒服地让大模型为我所用
  • 常用性能测试工具及使用方法介绍
  • 【内核配置】CONFIG_DEBUG_USER 配置项原理分析
  • 线程安全的单例模式,STL和智能指针
  • golang的二维数组
  • 直接插入排序算法:可视化讲解与C语言实现
  • 【R语言】单细胞数据整合质量评估(3)
  • Matlab 基于BP神经网络结合Bagging(BP-Bagging)集成算法的单变量时序预测 (单输入单输出)
  • Linux运维新手的修炼手扎之第26天
  • Effective C++ 条款31: 将文件间的编译依存关系降至最低
  • 飞算JavaAI:人工智能与Java的创新融合与应用前景