网站建设费用如何做账务处理,网站建设类的职位,网站文字广告代码,网站详细报价【大语言模型】LangChain 核心模块介绍#xff08;Agents#xff09; 一、简介二、Agents 的核心概念三、实战案例3.1、需求说明3.2、实现思路3.3、完整源码 一、简介
我们都知道四肢的绝大部分动作都是由大脑决定的#xff0c;大脑通过中枢神经下发自己的操作指令#xf… 【大语言模型】LangChain 核心模块介绍Agents 一、简介二、Agents 的核心概念三、实战案例3.1、需求说明3.2、实现思路3.3、完整源码 一、简介
我们都知道四肢的绝大部分动作都是由大脑决定的大脑通过中枢神经下发自己的操作指令四肢就可以按照我们的需求进行动作。 而大语言模型其实就相当于一个大脑的角色其本身是无法直接进行任何操作的。那么就需要一个”中枢神经“帮助它下发指令传递反馈信息这个中枢神经就是 Agent。 在官方文档中有这样的一句说明讲出了 Agents 的核心。 The core idea of agents is to use a language model to choose a sequence of actions to take. 代理的核心思想是使用语言模型来选择要采取的一系列行动。 如果在前面学习的过程中通过 LangChain 让大模型了解的是“怎么思考”。那 Agents 的作用就是让大模型自己去决定“怎么做”。其实就是基于ReaAct理念的一种实践方式。
二、Agents 的核心概念
Agents 的核心思想是使用语言模型来选择要采取的一系列操作。语言模型所起到的作用为被用作推理引擎来确定要采取哪些操作以及按什么顺序。在这个过程里面主要包含以下核心组件
Schema AgentActionAgentFinishIntermediate Steps Agent Agent InputsAgent Outputs AgentExecutorTools Considerations Toolkits
三、实战案例
3.1、需求说明
通过 Agent 实现调用 Selenium 打开、退出浏览器、获取当前 URL 等操作。
3.2、实现思路
实现工具包。初始化 Agent
3.3、完整源码
封装 Selenium 工具 将会使用到的行为操作提前封装起来
from selenium import webdriverclass WebAutoFramework:def __init__(self):self.driver Noneif self.driver is None:# self.driver webdriver.Firefox()option webdriver.FirefoxOptions()option.binary_location rC:\Program Files (x86)\Mozilla Firefox\firefox.exeself.driver webdriver.Firefox(optionsoption) # 这里添加的是driver的绝对路径self.driver.implicitly_wait(5)def open(self, url):self.driver.get(url)def quit(self):self.driver.quit()def get_title(self):return self.driver.title
定义工具池将所有的行为操作按照要求的tools规范定义清楚。
from langchain_core.tools import toolfrom Artificial_intelligence.大语言模型应用开发框架L2.核心模块Agents.web_auto_selenium import WebAutoFrameworkweb WebAutoFramework()tool
def open_web(url):打开一个网页web.open(url)# if __name__ __main__:
# print(open.name)
# print(open.args)
# print(open.description)tool
def quit_web():退出浏览器web.quit()tool
def get_title():获取网页标题:return:print(web.get_title())tools [open_web, quit_web, get_title]
初始化 Agent 并执行 将封装好的 tools 传入 agent 中
from langchain import hub
from langchain.agents import create_openai_functions_agent, AgentExecutor
from langchain_openai import ChatOpenAIfrom Artificial_intelligence.大语言模型应用开发框架L2.核心模块Agents.create_selenium_tools import tools
import osos.environ[OPENAI_API_KEY] xxxxxxxxxxxxxxx # 将个人token替换到这个位置
os.environ[OPENAI_API_BASE] xxxxxxxxxxxxxxxprompt hub.pull(hwchase17/openai-functions-agent)llm ChatOpenAI(modelgpt-3.5-turbo)# 初始化 Agent
agent create_openai_functions_agent(llm, tools, prompt)
# 初始化 Agent 的配置
agent_executor AgentExecutor(agentagent,toolstools, verboseTrue,return_intermediate_stepsTrue, handle_parsing_errorsTrue)
if __name__ __main__:agent_executor.invoke({input: 请打开 https://www.baidu.com/ 网站返回当前的网页的标题再退出浏览器。})
执行结果 Entering new AgentExecutor chain...Invoking: open_web with {url: https://www.baidu.com/}None
Invoking: get_title with {}百度一下你就知道
None
Invoking: quit_web with {}None我已经打开了 https://www.baidu.com/ 网站并获取了当前网页的标题为 百度一下你就知道。现在已经退出了浏览器。如果您有任何其他问题或需要进一步帮助请随时告诉我。 Finished chain.进程已结束退出代码为 0