自然语言处理从入门到应用——LangChain:代理(Agents)-[基础知识]

分类目录:《自然语言处理从入门到应用》总目录


有些应用程序不仅需要预先确定的LLM或其他工具调用链,而且可能需要根据用户输入的不同而产生不同的链条。在这些类型的链条中,有一个“代理”可以访问一套工具。根据用户输入,代理可以决定是否调用其中任何一个工具。在本文中,我们首先“快速入门”代理,介绍如何以端到端的方式使用与代理相关的所有内容。

代理使用LLM来确定采取哪些行动以及顺序。 一个动作可以是使用工具并观察其输出,或返回给用户。当代理被正确使用时,它们可以非常强大。本文的目的是向您展示如何通过最简单、最高级别的API轻松使用代理。为了使用代理,我们应该搜下了解以下概念:

  • 工具(Tools):执行特定任务的功能,即有关预定义工具及其规范的列表。这可以是Google 搜索、数据库查找、 Python REPL、其他链。工具的接口目前是一个函数,预计将有一个字符串作为输入,一个字符串作为输出。
  • 大语言模型(LLM):为代理提供动力的语言模型。
  • 代理(Agents):要使用的代理,即有关受支持的Agent及其规范的列表。这应该是引用支持代理类的字符串。因为本文主要关注最简单、最高级别的API,所以它只涉及使用标准支持的代理。如果要实现自定义代理,可以参考《自然语言处理从入门到应用——LangChain:代理(Agents)》系列后续文章。
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI

首先,让我们加载我们要使用的语言模型来控制代理。

llm = OpenAI(temperature=0)

接下来,我们加载一些要使用的工具。请注意,llm-math工具使用LLM,因此我们需要传递它:

tools = load_tools(["serpapi", "llm-math"], llm=llm)

最后,我们使用工具、语言模型和我们想要使用的代理类型初始化一个代理:

agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

测试代理:

agent.run("Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?")

输出:

> Entering new AgentExecutor chain...I need to find out who Leo DiCaprio's girlfriend is and then calculate her age raised to the 0.43 power.
Action: Search
Action Input: "Leo DiCaprio girlfriend"
Observation: Camila Morrone
Thought: I need to find out Camila Morrone's age
Action: Search
Action Input: "Camila Morrone age"
Observation: 25 years
Thought: I need to calculate 25 raised to the 0.43 power
Action: Calculator
Action Input: 25^0.43
Observation: Answer: 3.991298452658078Thought: I now know the final answer
Final Answer: Camila Morrone is Leo DiCaprio's girlfriend and her current age raised to the 0.43 power is 3.991298452658078.> Finished chain.

参考文献:
[1] LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发

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

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

相关文章

部署LAMP 平台(二十四)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、PHP安装配置 1. PHP的作用 2. PHP安装 2.1 yum安装 2.2 PHP语言简介 三、安装 四、启动 五、书写测试页面 六、客户端访问 七、书写连接数据库页…

Linux环境下使用opencv的dnn模块调用yolov4遇到的坑(纯CPU)

1. 无法安装opencv依赖包libjasper-dev 无法定位软件包libjasper-dev 2. 编译opencv时报错缺少boostdesc_bgm.i文件 把这个里面的所有文件添加到opencv_contrib/modules/xfeatures2d/src/中即可 另外,如果报错没有features2d/XXX.hpp,可以直接将/ope…

MySQL 8 修改root密码ERROR 1064 (42000): You have an error in your SQL syntax;

root先利用原密码登陆 mysql -u root -p Enter password: ******* Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.26 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliate…

Apache(httpd) 搭建笔记

Apache 搭建笔记 安装Apache HTTP服务器:启动Apache服务并设置开机自启 配置SSL证书配置Apache的SSL虚拟主机:重启Apache服务以使更改生效: 多站点配置第一个虚拟主机配置第二个虚拟主机创建每个站点的根目录: 强制跳转http>&g…

【 vue使用请求loading:组件形式】

vue使用请求loading:组件形式(不推荐:太麻烦了,每个需要用到的页面都需要引用一次组件) 这是我项目中想使用loading之后踩的第一个坑,后面优化用了vant自带的提示框,比较简单, 可移步这篇文章→→→ vuevant使用请求l…

ROS+APM无人机无法起飞

APMROS解锁后不起飞 : 参考链接 PX4固件官网提供的代码不支持APM固件使用,需要进行相关修改后使用 解决办法 使用如下代码发布无人机位置控制时,必须先执行无人机起飞动作时候,这条命令才会生效。 ros::Publisher local_pos_pub nh.adve…

ylb-接口8手机号注册

总览: 在web模块下的service包,补充短信接口(SmsService):检查用户发送的验证码是否正确 package com.bjpowernode.front.service;public interface SmsService {/*** param phone 手机号* return true:发…

Java 的集合

一、Collection 1、ArrayList 底层采用数组实现,操作大多基于对数组的操作。 在添加和删除时需要做 System.arraycopy(native层方法) 拷贝工作。 添加元素时可能会扩容,这要大量的拷贝工作,删除元素时,会把后面的元素向前拷贝。…

Redis+IDEA极速了解和实现单机锁和分布式锁

单机下: 只适用于单机环境下(单个JVM),多个客户端访问同一个服务器 1.synchronized package com.cloud.SR.controller;import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.cor…

wps插入图片显示不全、混乱

问题如下: 原因: 格式混乱 解决办法: 1、统一格式,使用格式刷统一文档的格式 2、Ctrl A 全选,重新选择行距 3、重新粘贴图片(选择嵌入型)

【Hello mysql】 mysql的内置函数

Mysql专栏:Mysql 本篇博客简介:介绍mysql的基内置函数 mysql的内置函数 日期函数获取年月日获取时分秒获取时间戳在日期的基础上加上日期在日期的基础上减去日期计算两个日期之差创建一张表 记录生日创建一个留言表 字符串函数获取emp表的ename列的字符集…

Dubbo分布式服务框架,springboot+dubbo+zookeeper

一Dubbo的简易介绍 1.Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需…

idea编译时遇到的bug

1、对象重复定义 问题描述: D:\workspace\spark\src\main\Scala\WordCount.scala:3:8 WordCount is already defined as object WordCount object WordCount { 解决参考博客:Error:(21, 8) FlumePushWordCount is already defined as object FlumePush…

水调歌头·明月几时有

相关标签 宋词、苏轼、月亮、中秋、饮酒、思念 标题 水调歌头明月几时有 作者简介 苏轼(1037-1101),字子瞻,号东坡居士,眉州眉山(今属四川)人,北宋时期杰出的文学家、政治家、艺…

PDF转成PNG,之后PNG转成PDF

PDF2IMG 需要安装python的img2pdf和pdf2img的包,还需要安装https://github.com/oschwartz10612/poppler-windows/releases/,并且解压之后把路径lib/bin添加到环境变量 import multiprocessing import sys from datetime import time import time from p…

rust abc(5): 常量

文章目录 1. 目的2. 基本用法2.1 说明2.2 运行结果 3. 不推荐或不正确用法3.1 不推荐用小写字母作为常量名字3.2 常量名称中含有小写字母就会报warning3.3 定义常量时,不指定数据类型会编译报错 4. const 和 immutable 的区别4.1 const 可以在函数外声明&#xff0c…

基于深度学习的高精度安全帽及背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度安全帽及背心检测识别系统可用于日常生活中或野外来检测与定位安全帽及背心目标,利用深度学习算法可实现图片、视频、摄像头等方式的安全帽及背心目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系…

Go和Java实现策略模式

Go和Java实现策略模式 模拟多种营销类型优惠券,折扣⾦额计算策略场景。 1、策略模式 在策略模式中一个类的行为或其算法可以在运行时更改,这种类型的设计模式属于行为型模式。 在策略模式定义了一系列算法或策略,并将每个算法封装在独立的…

iOS/macOS - 逐行写入文件 (NSFileHandle)

文章目录 - (void)saveDataByLine{NSString *filePath = @"/Users/xx/Library/Containers/com.ds.TMXExport/Data/Library/Caches/a.txt";NSLog(@"filePath : %@", filePath);if (!

代码随想录算法训练营第五十天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

leetcode 123 买卖股票的最佳时机 III 题目链接 123. 买卖股票的最佳时机 III - 力扣(LeetCode) 做题过程 这里有两次交易机会。因此有5种状态。0没有操作,1第一次买入,2第一次卖出,3第二次买入,4第二次…