LangChain使用调研

news2024/11/20 2:27:09

目录

一、LangChain是什么

二、LangChain提供的主要模块

三、Agent使用例子

四、zero-shot-react-description在ChatGPT和LLaMA-7B效果对比


一、LangChain是什么

LangChain是一个程序框架,它允许用户围绕LLM(基座)快速构建应用程序。

LangChain可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如API和数据库。

它的核心思想是可以将不同的组件“链接”起来,创建更高级的LLMs应用。

二、LangChain提供的主要模块

1、Prompts功能

包括提示管理、提示优化和提示序列化

2、LLMs

包括所有LLMs的通用接口,以及常用的LLMs工具

3、Document Loaders

包括加载文档的标准接口,以及与各种文本数据源的集成.

4、Utils

语言模型在与其他知识或计算源交互时往往更强大。这可以包括Python REPLs、嵌入、搜索引擎等。LangChain提供了一大批常用的工具。

5、Indexes

语言模型在与自己的文本数据结合时往往更强大

6、Agents

Agents涉及到一个LLM在选择要执行的动作、执行该动作、看到观察结果,并重复这个过程直到完成。

7、Chat

Chat模型是一种与语言模型不同的API - 它们不是处理原始文本,而是处理消息。

三、Agent使用例子

1、例子

2、agent类型到实例映射

AgentType.ZERO_SHOT_REACT_DESCRIPTION: ZeroShotAgent,

AgentType.REACT_DOCSTORE: ReActDocstoreAgent,

AgentType.SELF_ASK_WITH_SEARCH: SelfAskWithSearchAgent,

AgentType.CONVERSATIONAL_REACT_DESCRIPTION: ConversationalAgent,

AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION: ChatAgent,

AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION: ConversationalChatAgent,

AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION: StructuredChatAgent

zero-shot-react-description:根据工具的描述, 和请求的string 来决定使用哪个工具

react-docstor:使用react框架, 和docstore交互, 使用Search 和Lookup 工具, 前者用来搜, 后者寻找term, 举例: Wipipedia工具

self-ask-with-search:此代理只使用一个工具: Intermediate Answer, 它会为问题寻找事实答案(指的非gpt生成的答案, 而是在网络中,文本中已存在的), 如 Google search API 工具

conversational-react-description:为会话设置而设计的代理, 它的prompt会被设计的具有会话性, 且还是会使用 ReAct框架来决定使用来个工具, 并且将过往的会话交互存入内存.

3、ZeroShotAgent的agent实例prompt说明

组装prompt模板输入参数:

Tool参数

所有工具的所有参数信息

Prefix参数:

'Answer the following questions as best you can. You have access to the following tools:'

Suffix参数:

'Begin!

Question: {input}

Thought:{agent_scratchpad}'

Format_instructions参数

Use the following format:

Question: the input question you must answer

Thought: you should always think about what to do

Action: the action to take, should be one of [{tool_names}]

Action Input: the input to the action

Observation: the result of the action

... (this Thought/Action/Action Input/Observation can repeat N times)

Thought: I now know the final answer

Final Answer: the final answer to the original input question

4、agent运行流程图

(1)处理步骤上下文intermediate_steps

首次为空,其他次参考如下:

[(AgentAction(tool='Search', tool_input='Hangzhou May 20 2023 weather', log=' I need to search for the weather in Hangzhou on May 20, 2023\nAction: Search\nAction Input: "Hangzhou May 20 2023 weather"'), "The temperatures in Hangzhou in May are comfortable with low of 64°F and and high up to 80°F. You can expect rain for roughly half of the month of May in Hangzhou. We're expecting roughly 8 to 15 days of rain, so your rubber boots and umbrella are going to see plenty of use this month if you're keen on staying dry."), (AgentAction(tool='Calculator', tool_input='-1 * (80°F - 32) * 5 / 9', log=' I need to convert 80°F to Celsius and multiply by -1\nAction: Calculator\nAction Input: "-1 * (80°F - 32) * 5 / 9"'), 'Answer: -26.666666666666668')]

(2)thoughts:

I need to search for the weather in Hangzhou on May 20, 2023(只根据input生成的thought
Action: Search
Action Input: "Hangzhou May 20 2023 weather"
Observation: The temperatures in Hangzhou in May are comfortable with low of 64°F and and high up to 80°F. You can expect rain for roughly half of the month of May in Hangzhou. We're expecting roughly 8 to 15 days of rain, so your rubber boots and umbrella are going to see plenty of use this month if you're keen on staying dry.
Thought: I need to convert 80°F to Celsius and multiply by -1
Action: Calculator
Action Input: "-1 * (80°F - 32) * 5 / 9"
Observation: Answer: -26.666666666666668
Thought:

(3)prompt:

'Answer the following questions as best you can. You have access to the following tools:\n\nSearch: 当回答最新事件、消息时使用该工具\nCalculator: 当回答的问题涉及数学计算时使用该工具\n\nUse the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [Search, Calculator]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin!\n\nQuestion: 杭州2023年5月20号的天气是多少度,然后将该值乘以-1\nThought: I need to search for the weather in Hangzhou on May 20, 2023\nAction: Search\nAction Input: "Hangzhou May 20 2023 weather"\nObservation: The temperatures in Hangzhou in May are comfortable with low of 64°F and and high up to 80°F. You can expect rain for roughly half of the month of May in Hangzhou. We\'re expecting roughly 8 to 15 days of rain, so your rubber boots and umbrella are going to see plenty of use this month if you\'re keen on staying dry.\nThought: I need to convert 80°F to Celsius and multiply by -1\nAction: Calculator\nAction Input: "-1 * (80°F - 32) * 5 / 9"\nObservation: Answer: -26.666666666666668\nThought:'

(4)LLM解析出中间结果

[[Generation(text=' 该信息需要在网上查找\nAction: Search\nAction Input: 杭州2023年5月20号的天气是多少度', generation_info={'finish_reason': 'stop', 'logprobs': None})]] llm_output={'token_usage': {'total_tokens': 223, 'prompt_tokens': 188, 'completion_tokens': 35}, 'model_name': 'GPT-3.5'}

(5)LLM解析出最终结果:

[[Generation(text=' The temperature is -26.67 degrees Celsius\nFinal Answer: -26.67 degrees Celsius<|im_end|>', generation_info={'finish_reason': 'stop', 'logprobs': None})]] llm_output={'token_usage': {'prompt_tokens': 361, 'completion_tokens': 20, 'total_tokens': 381}, 'model_name': 'GPT-3.5'}

四、zero-shot-react-description在ChatGPT和LLaMA-7B效果对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多维时序 | MATLAB实现GA-BiLSTM遗传算法优化双向长短期记忆网络的多变量时间序列预测

多维时序 | MATLAB实现GA-BiLSTM遗传算法优化双向长短期记忆网络的多变量时间序列预测 目录 多维时序 | MATLAB实现GA-BiLSTM遗传算法优化双向长短期记忆网络的多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现GA-BiLSTM遗传算法优化双向长短…

宏工科技“全面”发力CIBF,助推电池智造“高效提质”

5月16-18日&#xff0c;第十五届中国国际电池技术展览会&#xff08;CIBF2023&#xff09;在深圳盛大举行。宏工科技携电池材料与电池匀浆领域的创新产品和系统解决方案精彩亮相。 据了解&#xff0c;宏工科技在新能源行业的业务涉及电池材料整线产线、电池匀浆、电池回收三个…

边沿检测电路

目录 同步信号的边沿检测 异步信号的边沿检测 所谓的边沿检测&#xff08;幼教边沿提取&#xff09;&#xff0c;就是检测输入信号的上升沿和下降沿。在设计数字系统时&#xff0c;边沿检测是一种很重要的思想&#xff0c;实际编程时用的最多的时序电路应该就是边沿检测电路和…

为什么要把一个函数分解成三角函数?(傅利叶级数)

为什么要把一个函数分解成三角函数&#xff1f;(傅利叶级数) 笔记来源&#xff1a;【知识拼图】傅里叶变换从零到一 02集 傅里叶级数从起源到操作&#xff0c;真的很细 把一个函数分解成三角级数体现了化繁为简&#xff0c;一个复杂函数化成许多三角函数的叠加 先回顾一下向量…

CyberLink的颜色修正和调整软件ColorDirector Ultra 11.0版本在win10系统的下载与安装配置教程

目录 前言一、ColorDirector Ultra安装二、使用配置总结 前言 ColorDirector Ultra是由CyberLink公司开发的一款专业的颜色修正和调整工具&#xff0c;可以帮助用户实现对视频中颜色的全方位管理。该软件支持对各种分辨率的视频进行颜色调整&#xff0c;并且可以从各种设备&am…

第四篇、基于Arduino uno,获取土壤湿度传感器的原始值和含水量——结果导向

0、结果 说明&#xff1a;先来看看串口调试助手显示的结果&#xff0c;第一个值是原始的模拟电压值&#xff0c;第二个值是含水量&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;虽然土壤湿度传感器形态各异&#xff0c;但是原理和代码都是…

( 数组) 27. 移除元素 ——【Leetcode每日一题】

❓27. 移除元素 难度&#xff1a;简单 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以…

港联证券|“面值退”增多凸显A股市场化进程良性态势

近日&#xff0c;多家陷入“1元退市”危机的公司纷纷发布风险提示公告称&#xff0c;公司股票存在可能因股价低于面值被终止上市的风险。据《经济参考报》记者不完全统计&#xff0c;今年以来&#xff0c;沪深两市已有10余只个股锁定“面值退”&#xff0c;其中多以披星戴帽公司…

Navicat “1205 - Lock wait timeout exceeded; try restarting transaction“

标题标题&#xff1a;解决Navicat数据库操作报错&#xff1a;1205 - Lock wait timeout exceeded; try restarting transaction 导言&#xff1a; 在使用Navicat进行数据库操作时&#xff0c;有时会遇到错误代码为"1205 - Lock wait timeout exceeded; try restarting t…

JavaWeb10(实现结算查看订单订单详情)

目录 一.效果预览 二.实现思路 2.1 实现结算 ①形成订单&#xff0c;并赋值 ②将订单插入到数据表tb_order中&#xff0c;同时将该订单所对应的订单项插入到数据表tb_orderitem中 2.2 查看我的订单 ①底层代码 ②前端绑值 2.3 查看订单详情 ①页面跳转&#xff0c;传…

面试时,公司的什么表现让你一看就知道不靠谱?

01 面试的时候让你根据他们需要做方案的公司一律不靠谱&#xff0c;百分之99是套方案的。 你想如果业务负责人自己都不知道自己要干什么&#xff0c;要么他自己没想清楚&#xff0c;要不他本身是水货&#xff01;这样的leader怎么爬上来的不用说了吧&#xff0c;而且跟着他学不…

汽车EDI:如何与斯柯达Skoda建立EDI连接?

大众汽车在汽车行业具有全球销量领先、技术创新、质量标杆、多品牌战略和可持续发展方面的显著地位。作为一家具有全球影响力的汽车制造商&#xff0c;大众汽车在塑造汽车行业发展和引领未来出行方向方面扮演着重要角色。 目前我们已帮助汽车行业的客户成功对接大众汽车旗下的…

【MATLAB第35期】基于MATLAB的2023年改进的进化算法优化LSTM时间序列预测模型思路

【MATLAB第35期】基于MATLAB的2023年改进的进化算法优化LSTM时间序列预测模型思路 一、思路 拿第34期的棕熊算法举例&#xff1a; 优化途径&#xff1a; &#xff08;一&#xff09;种群初始学习改进 &#xff08;1&#xff09;反向学习(OBOA) &#xff08;2&#xff09;准反…

Electron 搭建开发环境(Windows 11系统)

目录 前言一、环境说明二、Node.js安装1.官网下载2.安装3.验证安装是否成功4.可能错误 三、开发工具1.开发工具2.VSCode 总结 前言 如果想要使用 Electron 进行桌面应用程序开发&#xff0c;首先需要搭建一个开发环境。对于初学者&#xff0c;这可能是一个绕不开的步骤。作为 …

MSP432学习笔记7:定时器A中断

型号&#xff1a;MSP432P401r 今日得以继续我的MSP432电赛速通学习之路...... 今日学习的是定时器A中断&#xff01; 目录 基础工程在此下载&#xff1a; 更改后的实验演示工程在此下载&#xff1a; 定时器A基础介绍&#xff1a; Timer_A的特性包括&#xff1a; Timer_A…

组态王使用指南|安装包|快速入门教程|含PLC与组态王网口串口通信|速查命令PDF

组态王安装包及安装方法&#xff1a; 组态王7.5 SP3下载安装授权_组态王安装包_城北许工α的博客-CSDN博客 组态王快速入门教程&#xff1a; 组态王教程(基础入门篇).pdf (book118.com) 组态王与PLC通讯&#xff1a; 网口通讯&#xff1a; 西门子1200与组态王TCP通讯 - 知…

Redis7实战加面试题-基础篇(Redis10大数据类型)

说明 刚看完尚硅谷Redis零基础到进阶&#xff0c;最强redis7教程&#xff0c;阳哥亲自带练&#xff08;附redis面试题&#xff09; 趁热打铁&#xff0c;根据脑图和视频&#xff0c;对视频中的知识点进行总结&#xff0c;方便以后复习 Redis入门概述 Remote Dictionary Serv…

国家重点研发计划“新型无液氦脑磁图系统研发”项目启动会顺利召开

2023年5月21日&#xff0c;国家重点研发计划“诊疗装备与生物医用材料”重点专项“新型无液氦脑磁图系统研发”项目启动会在京顺利召开。 该项目由北京未磁科技有限公司牵头&#xff0c;与首都医科大学附属北京天坛医院、北京航空航天大学、机械工业仪器仪表综合技术经济研究所…

九、数据仓库详细介绍(元数据)

元数据的文章&#xff0c;网上已经有很多了&#xff0c;元数据相关概念有限所以重复度很高。 我这里只是做个概念汇集&#xff0c;争取给大家介绍的全面一点。 1. 元数据定义 元数据&#xff08;Meta-data&#xff09;是描述数据的数据&#xff08;The data about data&#xf…

怎么提升品牌知名度,小红书母婴赛道分析

小红书平台自创立之初&#xff0c;便以母婴类内容为特色。今天我们来分享下&#xff0c;怎么提升品牌知名度&#xff0c;小红书母婴赛道分析。 一、妈妈用户仍是主流 我们都知道&#xff0c;小红书平台是一个女性用户为主的平台。根据去年的平台用户调查&#xff0c;可以发现&a…