wap企业网站源码,网销怎么找客户,孝感网站开发优搏好,第一次做网站做后感ReAct框架#xff1a;
Reason Action#xff0c;推理与行动结合
可以借助思维链#xff0c;用小样本提示展示给模型一个ReAct框架 推理#xff1a;针对问题或上一步观察的思考
行动#xff1a;基于推理#xff0c;与外部环境的一些交互#xff08;调用外部工具…ReAct框架
Reason Action推理与行动结合
可以借助思维链用小样本提示展示给模型一个ReAct框架 推理针对问题或上一步观察的思考
行动基于推理与外部环境的一些交互调用外部工具比如搜索引擎、代码解释器等也可以自定义工具
观察对行动得到的结果进行查看
agent智能体、代理
能理解用户查询或指令进行推理并执行特定任务最后输出响应。
三要素
模型agent的大脑
工具列表
提示词告诉模型要遵循ReAct框架以及可以使用的工具有哪些 1、temperature0因为不希望模型太有创造力而是在后序能严格按照ReAct框架进行输出。 2、自定义工具 需继承自BaseTool类实际调用_run方法来使用工具。 记得把工具放进tools列表里。 tools [ TextLengthTool() ] 3、提示模板可以在langchain hub上找 langchain hub用于管理和共享Langchain相关资源的在线平台 比如要使用ReAct可以用里面名为structured-chat-agent的提示模板。 pip install langchainhub才能从该hub拉取内容 from langchain import hub prompt hub.pull(hwchase17/structured - chat - agen) 参数为要拉取的提示词在langchain hub上的路径 返回值类型是ChatPromptTemplate。内容就是让模型遵循ReAct并把工具介绍作为变量。 如何使用
准备好三要素后 1、除了agent实际执行的叫agent executoragent执行器 在agent中传入tools只是为了让agent知道有哪些工具可以使用发出指令 agent执行器才是实际调用工具的那个所以它也要能访问tools。 2、如果想连续对话需要指定memory参数。 注意memory_key要为chat_history因为提示模板里记忆的变量名叫chat_history。 3、handle_parsing_errors True当agent在解析工具输出、生成回复等过程中遇到解析错误时Agent Executor会尝试采取措施处理错误而不是让程序直接终止。此处表示如果模型没有按ReAct框架输出时agent执行器会把错误作为观察返回给模型。 4、verbose True以详细模式运行。agent执行器被调用后不是直接返回最终结果而是还返回具体行动过程。默认为False。 5、AgentExecutor像是一个协调者它会将用户输入input、工具调用结果以及对话内存memory等信息整合处理并按照agent的决策机制所要求的格式和方式把输入数据传递给agent以便agent基于此进行决策和规划。这样的设计实现了职责分离agent专注于决策规划AgentExecutor负责执行和信息整合传递等工作 。 所以把input和memory传给agent executor而不是agent。 6、最后调用agent_executor.invoke方法参数是一个字典含键值 input 。 更多现成agent执行器
PALProgram - aided Language Models:程序辅助语言模型一种将自然语言处理与编程能力相结合以解决复杂问题的 AI 系统。 python_agent
比如可以让AI生成做计算的代码借助Python解释器算出最终答案。即Agent生成代码后再指示Agent Executor调用相应工具来执行代码。为什么是Agent生成代码因为懂代码知识的是模型。
pip install langchain_experimental
from langchain_experimental.tools import PythonREPLToolPython交互式解释器可以用于执行Python命令
from langchain_experimental.agents.agent_toolkits import create_python_agentLangChain 中用于创建专门处理 Python 相关任务的智能体执行器的函数 1、为什么不用显式传入提示模板 因为create_python_agent函数通常有内置的默认提示模板。 2、在create_python_agent函数的内部创建了智能体agent。 create_python_agent函数会根据传入的语言模型如ChatOpenAI对象、工具如PythonREPLTool等参数按照 LangChain 内部的逻辑和机制构建出一个适合处理 Python 相关任务的智能体。之后该函数会基于创建好的智能体等信息进一步实例化并返回AgentExecutor由AgentExecutor来负责执行智能体的决策等操作 。 3、不直接支持handle_parsing_errors参数但是可以把它放进更多参数里作为键值。 csv_agent
csvComma - Separated Values逗号分隔值一种常见的用于储存数据的纯文本格式。
注意是英文逗号。可以用excel打开csv文件是表格的形式。 pip install pandas
pip install tabulate因为CSV agent底层会用到Pandas库和Tabulate库 内置默认提示模板 1、为什么create_csv_agent没有tools参数而create_python_agent有agent参数 create_csv_agent 内部已集成专门针对 CSV 文件处理的工具用户无需额外提供工具列表。 专注于 CSV 文件处理任务功能相对单一和固定适用于仅需处理 CSV 文件相关任务的场景。 create_python_agent 本身不预设特定工具而是要求用户根据具体任务需求传入所需工具。 因为 Python 应用场景广泛从简单的代码执行、文件操作到复杂的网络交互、数据处理等不同任务所需工具差异很大所以需要用户灵活配置工具以满足多样化的 Python 任务需求。 2、实际上也是通过执行Python代码得到的答案。 让工具箱集成多种工具
现有自定义工具和现成的agent执行器需要转换成Tool类型
func参数赋值为使用工具时调用的函数名或方法名因为使用agent执行器时调用的是invoke方法所以把执行器的invoke方法作为参数传入即可。
函数一段独立的代码块用于完成特定的任务。它可以在模块的顶层定义不依赖于任何特定的类或对象是全局范围内可调用的代码单元。
方法与类或对象相关联的函数定义在类的内部是类的一部分。它通常用于操作对象的属性或执行与对象相关的特定行为。如list.append()是列表类的一个方法。