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

小黑黑大模型应用日常摸索中:初次使用langchain智能体调用工具,准备继续深入

定义模型

from langchain.schema import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.tools import tool
from langchain_core.utils.function_calling import convert_to_openai_tool
from operator import itemgetter
langchain_key = 'lsv2_pt_067c82bxxxxxxxxxxxxxxe_c2934a750d'
import os
os.environ['LANGCHAIN_TRACING_V2'] = 'true'
os.environ['LANGCHAIN_API_KEY'] = langchain_key
os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'
os.environ['LANGCHAIN_PROJECT'] = 'pr-upbeat-electrocardiogram-64'
zhipu_key = 'a66dbxxxxxxxxxxxxxxxxxxxxxxWpHQ9tC83zWJo'
# 创建模型
llm = ChatOpenAI(temperature=0.01,model="glm-4-flash",openai_api_key=zhipu_key,openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
)

通过tool注解定义工具函数

@tool
def multiply(first_int: int, second_int: int) -> int:"""将两个整数相乘。"""print('---------multiply-----------------')return first_int * second_int@tool
def add(first_int: int, second_int: int) -> int:"将两个整数相加。"print('---------add-----------------')return first_int + second_int@tool
def exponentiate(base: int, exponent: int) -> int:"指数运算"print('---------exponentiate-----------------')return base**exponent

绑定工具

tools = [multiply, add, exponentiate]
llm_with_tools = llm.bind_tools(tools)

大模型通过query和绑定的tool进行分析,返回所需要的首个工具(并没有调用工具)

llm_with_tools.invoke('请使用工具计算,4+5*3是多少?')

在这里插入图片描述

通过构建智能体,封装工具和大模型,进行解决问题

from langchain.agents import initialize_agent
from langchain.agents import AgentType, initialize_agent  
agent_chain = initialize_agent(tools, llm, agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

在这里插入图片描述

小黑打算通过源码分析,做一个简单的demo(通过调用多个工具,并依次分析每个工具的输出,有序分析和解决问题),了解智能体的框架,加油!!准备今晚天坛训练!

在这里插入图片描述

相关文章:

  • UE源代码——径向爆炸伤害计算函数(Grenade手雷爆炸功能)
  • 【LLM】模型上下文协议(MCP)详解
  • 在 Vue + Vite 项目中,直接使用相对路径或绝对路径引用本地图片资源时,图片无法正确显示。
  • 【JavaScript 性能优化方法】
  • JavaScript 性能优化按层次逐步分析
  • web常见的攻击方式(下)
  • shell脚本中的常用命令
  • 如何在电力系统中配置和管理SNTP时间同步?
  • 《计算机组成原理》第 7 章 - 指令系统
  • 怎么实现pid隔离
  • 现代 CSS 高阶技巧:实现平滑内凹圆角的工程化实践
  • Linux下目录遍历的实现
  • 机器学习算法-决策树
  • Linux操作系统概述
  • 【文献阅读】EndoChat: Grounded Multimodal Large Language Model for Endoscopic Surgery
  • AI前端开发岗位面试准备指南
  • MATLAB绘制滤波器系数特性图
  • 【机器学习基础】机器学习入门核心算法:K-近邻算法(K-Nearest Neighbors, KNN)
  • 大模型——MCP 深度解析
  • day 38
  • 青岛网站建设推进/百度关键词推广费用
  • 网站建设中的风险/会计培训机构排名前十
  • 帝国cms做中英文网站/丁的老头seo博客
  • 门户网站建设工作情况/云南网络推广服务
  • 免费创网站/百度热搜的含义
  • html个人网站/常州网站制作维护