【AIGC】LangChain Agent(代理)技术分析与实践

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 【5月更文挑战第12天】LangChain代理是利用大语言模型和推理引擎执行一系列操作以完成任务的工具,适用于从简单响应到复杂交互的各种场景。它能整合多种服务,如Google搜索、Wikipedia和LLM。代理通过选择合适的工具按顺序执行任务,不同于链的固定路径。代理的优势在于可以根据上下文动态选择工具和执行策略。适用场景包括网络搜索、嵌入式搜索和API集成。代理由工具组成,每个工具负责单一任务,如Web搜索或数据库查询。工具包则包含预定义的工具集合。创建代理需要定义工具、初始化执行器和设置提示词。LangChain提供了一个从简单到复杂的AI解决方案框架。

[toc]


一、什么是Agent(代理)

LangChain 代理背后的思想是利用大语言模型以及要执行的一系列操作,代理使用推理引擎来确定要执行哪些操作来获取结果,代理对于处理从简单的自动响应到复杂的上下文感知交互等任务至关重要。例如,您可能有一个与 Google 搜索、Wikipedia 和 OpenAI LLM 集成的代理。使用给定的代理工具,他们可以在 Google 中搜索结果,然后使用维基百科工具中检索到的上下文来查找详细信息并扩展上下文。您必须放置明确定义的指令,以确保代理将以正确的顺序调用工具。

下图展示了代理及其组件的示例:

image-20240505200423893

二、Agent(代理)示例

1.网页搜索工具

您可以轻松地将不同类型的 Web 搜索作为可用操作添加到您的代理中,可以是 Google 搜索、Baidu搜索、sohu 等。

2.在矢量数据库中嵌入搜索

您可以从检索器创建一个工具并根据需要对其进行描述,代理将使用此工具来获取某种数据,例如相似性检查和嵌入模型。

3.特殊场景处理

例如可以在 Internet 上搜索某种信息,执行推理步骤,然后调用操作来创建 Jira 事务。

4.API集成工具

LangChain框架已经做了很多API集成,你需要做的就是获取API密钥,安装包并将工具附加到代理上。

5.自定义工具

您可以编写自定义工具,可以集成您的内部 API、文档系统和许多其他应用程序的集成!

三、Agent(代理) vs. Chain(链)

除了拥有代理之外,LangChain还支持链的功能。链是要执行的操作的子序列,始终以硬编码的方式进行。这是代理和链之间的关键区别。虽然在代理中,推理模型可以选择其他操作(从给定的工具)来获取特定数据,但链将始终采用我们选择的相同路径。

与链相比,代理的优势:

  • 根据工具的描述,代理决定应使用哪种工具来获取相关信息。
  • 代理采取行动并获取给定结果的上下文,例如在其他资源(例如Google搜索和维基百科)中搜索其他信息。
  • 代理检查结果并重复该过程以获取所需的数据。

四、Agent(代理)使用场景

当您构建自己的 AI LangChain 解决方案时,您需要了解是使用代理还是使用链?如果您的用例始终基于相同的流程和策略,例如:

  • 网络搜索。
  • 向量数据库文本嵌入。
  • 推理。

那么您可以考虑使用链而不是代理,因为agent的使用成本是不可预测的,因为有些问题可能会在调用一个工具后直接回答,而另一些问题可能会使用一套全面的工具进行适当的推理。如果您的用例基于确定的来自不同来源的事物,那么代理似乎是一个很好的解决方案。另一方面,使用单个工具将复杂的查询划分为更简单的查询,这也是决定是使用链查询还是代理的另一个标准。

image-20240505201239665

五、工具

工具是执行单个任务的代理的主要组件。它可以是 Web 搜索、矢量数据库搜索或任何其他操作。您可以从社区完成的许多完整工具中进行选择,也可以编写自己的工具。

从 Chroma 数据库创建检索器:

retriever = Chroma.from_documents(documents_list, embedding_function).as_retriever()

LangChain还具有从检索器创建工具的非常有用的功能:

tool = create_retriever_tool(
   retriever,
   name="companies_database",
   description="Useful when you need to find information about company."
)

对检索工具进行良好的描述是非常重要的,因为代理步骤决策机制就是基于此。如果您的描述缺失或不完整,可能会导致跳过代理执行的操作。

六、工具包

工具包是工具与预定义操作的组合,可以在我们的代理中使用:

  • CSV代理工具包,用于对“CSV”文件进行操作(读取、写入),

  • Github 代理工具包,在 Github 上实现了不同的操作,例如创建新问题、创建新拉取请求等。

七、示例:创建Agent(代理)

先决条件:

  • Tavily API token
  • OpenAI API token
  • Python v3.11 版
  • Pip 包:langchain(至少 v0.1.0)、openai、wikipedia、langchain-community、tavily-python、langchainhub、langchain-openai、python-dotenv

1.定义Tools(工具)

代码示例如下:

from dotenv import load_dotenv
from langchain import hub
from langchain.agents import AgentExecutor, create_openai_functions_agent, load_tools
from langchain.tools.tavily_search import TavilySearchResults
from langchain.utilities.tavily_search import TavilySearchAPIWrapper
from langchain_openai import ChatOpenAI

load_dotenv()

def get_function_tools():
  search = TavilySearchAPIWrapper()
  tavily_tool = TavilySearchResults(api_wrapper=search)

  tools = [
      tavily_tool
  ]

  tools.extend(load_tools(['wikipedia']))

  return tools


def init_action():
  llm = ChatOpenAI(model="gpt-4", temperature=0.1)
  prompt = hub.pull("hwchase17/openai-functions-agent")
  tools = get_function_tools()
  agent = create_openai_functions_agent(llm, tools, prompt)
  agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
  agent_executor.invoke({"input": "Who is the owner of Tesla company? Let me know details about owner."})


init_action()

Dotenv 文件配置环境信息:

TAVILY_API_KEY=
OPENAI_API_KEY=

2.定义Agent executor(执行器)

从LangChain v0.1.0版本开始,创建新代理的方式是使用AgentExecutor,您可以通过传递代理和工具轻松定义您的执行器。旧的initialize_agent使用方式被标记为从 v0.1.0 版本开始弃用。

agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

3.定义prompt(提示词)

LangChain v0.1.0 版本提供了一种新的初始化代理的方法,我们必须对每种类型的使用方法进行明确定义,而不是使用initialize_agent。还有 prompt 的附加参数,我们可以使用默认提示词。OpenAI 函数代理的默认提示示例:

prompt = hub.pull("hwchase17/openai-functions-agent")

小结

本节我们学习的是LangChain Agent(代理),文中详细的介绍了Agent(代理)的示例,与Chain(链)进行了比较,Agent(代理)使用场景,同时对工具和工具包进行了简单介绍,最后学习了Agent(代理)代码示例。通过本节的学习,我们基本理清了LangChain Agent的使用场景和使用方法,希望对想学习Agent(代理)的同学有所帮助。

小编是一名热爱人工智能的专栏作者,致力于分享人工智能领域的最新知识、技术和趋势。这里,你将能够了解到人工智能的最新应用和创新,探讨人工智能对未来社会的影响,以及探索人工智能背后的科学原理和技术实现。欢迎大家点赞,评论,收藏,让我们一起探索人工智能的奥秘,共同见证科技的进步!

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
师资培训|AIGC工具搜集和分析教学反馈-某教育科技集团
近日,TsingtaoAI为某教育科技集团交付AIGC赋能教师教学创新课程《AIGC工具搜集和分析教学反馈》,本师资培训旨在为高校教师提供系统化、实战化的AIGC应用指南,助力教师在教学过程中实现智能化、个性化的转变。本课程通过深入浅出的案例分析、项目实践和实操演练,全面覆盖AIGC工具的收集、应用与反馈分析方法。
102 32
|
19天前
|
人工智能 自然语言处理 搜索推荐
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
本文介绍了如何将Java与AIGC(人工智能生成内容)技术结合,实现智能文本生成。
46 5
|
22天前
|
人工智能 搜索推荐 数据库
实时云渲染技术赋能AIGC,开启3D内容生态黄金时代
在AIGC技术革命的推动下,3D内容生态将迎来巨大变革。实时云渲染与Cloud XR技术将在三维数字资产的上云、交互及传播中扮演关键角色,大幅提升生产效率并降低门槛。作为云基础设施厂商,抓住这一机遇将加速元宇宙的构建与繁荣。AIGC不仅改变3D内容的生成方式,从手工转向自动生成,还将催生更多3D创作工具和基础设施,进一步丰富虚拟世界的构建。未来,通过文本输入即可生成引人注目的3D环境,多模态模型的应用将极大拓展创作的可能性。
|
2月前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
212 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
3月前
|
Arthas 监控 Java
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
本文介绍了阿里云 Java Agent 4.x 版本在基于 OTel Java Agent 二次开发过程中的实践与思考,并重点从功能、性能、稳定性、兼容性四个方面介绍了所做的工作。同时也介绍了阿里云可观测团队积极参与开源建设取得的丰厚成果。
347 7
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
|
2月前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
152 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
21天前
|
编解码 人工智能 算法
国家扶持超高清产业背景下:视频云AIGC的超高清技术实践
本次分享由阿里云视频云高级产品解决方案架构师陈震主讲,聚焦国家扶持超高清产业背景下,视频云AIGC的超高清技术实践。内容涵盖超高清产业发展趋势与挑战、阿里视频云的应对方案及应用案例。通过全链路超高清解决方案,结合AI、云计算等技术,提供从内容生产、传输到播放的完整支持,助力行业应对超高清视频带来的技术与市场挑战。
|
21天前
|
人工智能 编解码 安全
全球AI新浪潮:智能媒体服务的技术创新与AIGC加速出海
本文介绍了智能媒体服务的国际化产品技术创新及AIGC驱动的内容出海技术实践。首先,探讨了媒体服务在视频应用中的升级引擎作用,分析了国际市场的差异与挑战,并提出模块化产品方案以满足不同需求。其次,重点介绍了AIGC技术如何推动媒体服务2.0智能化进化,涵盖多模态内容理解、智能生产制作、音视频处理等方面。最后,发布了阿里云智能媒体服务的国际产品矩阵,包括媒体打包、转码、实时处理和传输服务,支持多种广告规格和效果追踪分析,助力全球企业进行视频化创新。
|
2月前
|
人工智能 API 数据库
Qwen-Agent功能调用实践探索
本文详细解析了Qwen-Agent的核心功能——功能调用,涵盖其定义、工作流程、重要性和实际应用,通过实例展示了如何在Qwen-Agent中利用此功能与外部工具和API互动,扩展AI应用范围。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
谷歌最新推出的Gemini 2.0是一款原生多模态输入输出的AI模型,以Agent技术为核心,支持多种数据类型的输入与输出,具备强大的性能和多语言音频输出能力。本文将详细介绍Gemini 2.0的主要功能、技术原理及其在多个领域的应用场景。
349 20
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型

热门文章

最新文章