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

小黑黑大模型应用日常摸索中:初次使用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(通过调用多个工具,并依次分析每个工具的输出,有序分析和解决问题),了解智能体的框架,加油!!准备今晚天坛训练!

在这里插入图片描述

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

相关文章:

  • 题解——相交链表(力扣160 easy)
  • Java研学-MybatisPlus(三)
  • 磁盘管理练习题
  • 《Python基础》第1期:人生苦短,我用Python
  • Java基础 5.27
  • Oracle初识
  • 遗传算法简明指南:思路解析与C++实现
  • C++优先队列(priority_queue)使用详解
  • 计算机系统结构-第四章节-背诵
  • 使用Auto-Coder对js文件进行审计并修复漏洞1.3 1.4 1.5版本
  • BugKu Web渗透之Post
  • Python 实现简易版的文件管理(结合网络编程)
  • linux kernel 内存回收水位线调整方法
  • 第九章 Java基础-集合
  • 鸿蒙OSUniApp 制作简洁的用户个人中心页面#三方框架 #Uniapp
  • 【Springboot+LangChain4j】实现多轮对话,即记忆对话功能
  • v4.0 论文投稿-Latex论文投稿注意事项
  • 基于Alibaba Cloud Linux + 宝塔面板安装 LibreOffice 全攻略流程
  • 怎么实现pid隔离
  • 海信IP810N-72UB0贵州联通原机分区备份包
  • mysql 合集
  • TLE9893-2QKW62S新建Keil MDK工程
  • cursor使用mcp
  • 智能门禁的项目
  • 用 Python 打造你的专属虚拟试衣间!——AI+AR 如何改变时尚体验
  • 关于CSDN和Github的操作
  • vtk管线
  • 递归:JavaScript中的强大工具
  • Java 继承(上)
  • 使用Auto-Coder对js文件进行审计并修复漏洞 1.5版本