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

GPT实战系列-构建多参数的自定义LangChain工具

GPT实战系列-构建多参数的自定义LangChain工具

LangChain系列

GPT实战系列-LangChain如何构建基通义千问的多工具链

GPT实战系列-构建多参数的自定义LangChain工具

GPT实战系列-通过Basetool构建自定义LangChain工具方法

GPT实战系列-一种构建LangChain自定义Tool工具的简单方法

GPT实战系列-搭建LangChain流程简单应用

GPT实战系列-简单聊聊LangChain搭建本地知识库准备

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-简单聊聊LangChain

大模型查询工具助手之股票免费查询接口

随着OpenAI的GPT-4这样的大型语言模型(LLMs)已经风靡全球,现在让它们自动执行各种任务,如回答问题、翻译语言、分析文本等。LLMs是在交互上真正体验到像“人工智能”。

如何管理这些模块呢?

LangChain在这方面发挥重要作用。LangChain使构建由LLMs驱动的应用程序变得简单,使用LangChain,可以在统一的界面中轻松与不同类型的LLMs进行交互,管理模型版本,管理对话版本,并将LLMs连接在一起。

# 引入需要的模块
from langchain.pydantic_v1 import BaseModel, Field
from langchain.tools import BaseTool, StructuredTool, toolfrom typing import Optional, Typefrom langchain.callbacks.manager import (AsyncCallbackManagerForToolRun,CallbackManagerForToolRun,
)

当需要定义多个参数的自定义tools,怎么构造呢?

用@Tool装饰器自定义

LangChain可以连接到自己定义的工具,也可以连接到内嵌的tool提供商。通过@Tool构造多参数。

例子自定义乘法器:

@tool
def multiply(a: int, b: int) -> int:"""Multiply two numbers."""return a * b

查看相关的参数:

print(multiply.name)
print(multiply.description)
print(multiply.args)

可以看到 两个int 参数:

multiply
multiply(a: int, b: int) -> int - Multiply two numbers.
{'a': {'title': 'A', 'type': 'integer'}, 'b': {'title': 'B', 'type': 'integer'}}

用BaseTool构建多参数tool

除了tool装饰器,还有是BaseTool的方法,定义工具的参数说明。

仍然定义乘法器。

# 定义参数说明
class CalculatorInput(BaseModel):a: int = Field(description="first number")b: int = Field(description="second number")

自定义多参数工具类,实现功能:

class CustomCalculatorTool(BaseTool):name = "Calculator"description = "useful for when you need to answer questions about math"args_schema: Type[BaseModel] = CalculatorInputreturn_direct: bool = Truedef _run(self, a: int, b: int, run_manager: Optional[CallbackManagerForToolRun] = None) -> str:"""Use the tool."""return a * basync def _arun(self,a: int,b: int,run_manager: Optional[AsyncCallbackManagerForToolRun] = None,) -> str:"""Use the tool asynchronously."""raise NotImplementedError("Calculator does not support async")

实例化,查看参数情况:

multiply = CustomCalculatorTool()
print(multiply.name)
print(multiply.description)
print(multiply.args)
print(multiply.return_direct)

得到类似的输出:

Calculator
useful for when you need to answer questions about math
{'a': {'title': 'A', 'description': 'first number', 'type': 'integer'}, 'b': {'title': 'B', 'description': 'second number', 'type': 'integer'}}
True

LangChain是一个Python框架,可以使用LLMs构建应用程序。它与各种模块连接,使与LLM和提示管理,一切变得简单。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

GPT专栏文章:

GPT实战系列-实战Qwen通义千问在Cuda 12+24G部署方案_通义千问 ptuning-CSDN博客

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-让CodeGeeX2帮你写代码和注释_codegeex 中文-CSDN博客

GPT实战系列-ChatGLM3管理工具的API接口_chatglm3 api文档-CSDN博客

GPT实战系列-大话LLM大模型训练-CSDN博客

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

相关文章:

  • vue3-admin后台管理系统: 使用Vue3+Vue-Router4 + Element-Plus打造高效后台管理系统
  • Java学习笔记15——类型转换(基本数据类型)
  • 手把手教您如何在国内免费使用GPT4接口的Bing,亲测有效!
  • 收下这份实操案例,还怕不会用Jmeter接口测试工具
  • 深入理解位运算符及其在JavaScript中的应用
  • html5cssjs代码 004 2035年倒计时
  • 揭秘2024美团春招:最全MySQL面试题大全,必看必收藏!
  • web中实现一个账号同一时间只能由一个人使用
  • 【MySQL篇】 MySQL基础学习
  • Objective-C blocks 概要
  • golang中fallthrough简介及用法
  • Java学习笔记18——SQLite3数据库安装与使用
  • Java中 常见的开源树库介绍
  • 如何选择好用的ai写作软件?
  • 实体门店运营方案:揭秘行业分类与拓展优质客户之道
  • 「面试题」如何实现一个圣杯布局?
  • 【译】理解JavaScript:new 关键字
  • 03Go 类型总结
  • Angular Elements 及其运作原理
  • CentOS7 安装JDK
  • chrome扩展demo1-小时钟
  • CSS相对定位
  • ES6 ...操作符
  • iOS编译提示和导航提示
  • java取消线程实例
  • js中forEach回调同异步问题
  • MYSQL 的 IF 函数
  • Vue2 SSR 的优化之旅
  • Yeoman_Bower_Grunt
  • 产品三维模型在线预览
  • 彻底搞懂浏览器Event-loop
  • 从零开始在ubuntu上搭建node开发环境
  • 搭建gitbook 和 访问权限认证
  • 大整数乘法-表格法
  • 翻译:Hystrix - How To Use
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 使用API自动生成工具优化前端工作流
  • 我的zsh配置, 2019最新方案
  • 详解移动APP与web APP的区别
  • 一文看透浏览器架构
  • 主流的CSS水平和垂直居中技术大全
  • 进程与线程(三)——进程/线程间通信
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​水经微图Web1.5.0版即将上线
  • ###STL(标准模板库)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (4)事件处理——(7)简单事件(Simple events)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (python)数据结构---字典
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (阿里云万网)-域名注册购买实名流程
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)计算机毕业设计ssm电影分享网站
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell