LangChain Agent(代理)技术实现及代码学习

Langchain-agent入门笔记(1) 自整理langchain-agent入门笔记 阅读详情

一、什么是Agent(代理)

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

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

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

五、工具

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

从 Chroma 数据库创建检索器:

代码语言:shell

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

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

代码语言:shell

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(工具)

代码示例如下:

代码语言:shell

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 文件配置环境信息:

代码语言:shell

TAVILY_API_KEY=
OPENAI_API_KEY=
2.定义Agent executor(执行器)

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

代码语言:shell

agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
3.定义prompt(提示词)

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

代码语言:shell

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

小结

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

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

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容:
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容:
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容:
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容:
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

LLM之LangChain(二)| LangChain中的Agent 定义了两个工具,“搜索”和“查找”,其中“搜索”工具搜索文档,“查找”工具执行术语查找。上述代码从LangChain库导入必要的模块,包括代理和语言模型,它设置了一个具有特定代理配置的会话代理,称为“self-ask-with-search”。此代理是为在会话设置中使用而设计的,它结合了React框架来确定使用哪个工具,并利用内存来记住以前的对话交互。LangChain是一种功能强大的自动化工具,可用于各种任务,它提供了可用于创建agent的各种工具。然后,代码提供两个提示来演示与代理的一次性交互。 阅读详情

相关推荐

【2024最全最细LangChain教程-12】Agent智能体(一)

有很多教程把Agent称为“代理”,我觉得这个翻译太没意思了,一来和Proxy很容易混淆,二来一点都不酷。之所以把Agent翻译成智能体,是因为Agent可以(在LLM推理分析的帮助下)可以自己识别、选择和使用工具,这个就是智能体的表现。人之所以能走上进化的道路,一来是发明了语言,二来是学会了使用工具。就这两点来看,把目前的Agent称为智能体一点也不为过。

u013607702的博客 7200

langchain-Agent代理详解

Langchain Agent详解

weixin_45626120的博客 1万+

Langchain4j和Spring-StateMachine实现多Agent代理协作

我们首先将状态和事件定义为枚举,以表示工作流中的步骤。

weixin_44455388的博客 2216

【LangChain系列6】【Agent模块详解】

LangChain给自身的定位是:用于开发由大语言模型支持的应用程序的框架。它的做法是:通过提供标准化且丰富的模块抽象,构建大语言模型的输入输出规范,利用其核心概念chains,灵活地连接整个应用开发流程。这里是LangChain系列的第六篇,主要介绍LangChain的Agent模块。

艰难困苦,玉汝于成。 4656

【LangChain指南】基于LangChain的Agent构建-实战代码

本教程介绍了如何利用LangChain框架构建具备记忆功能的多轮对话聊天机器人。主要内容包括:1)环境准备(安装依赖库和API密钥配置);2)定义搜索引擎工具;3)选择并配置语言模型(以Gemini为例);4)创建基于ReAct框架的智能代理;5)通过MemorySaver模块实现对话记忆功能;6)支持流式输出以实时观察代理思考过程。最终实现的代理能够理解用户问题、调用工具处理查询、并记住上下文信息,适用于天气查询等需要记忆个人信息的场景。

czqjijiboy的博客 1717

【NLP笔记】LLM应用之AI Agent & LangChain实战

AI Agent & LangChain

weixin_36488653的博客 3037

【LLM大模型】LangChain Agent(代理)技术实现及代码学习

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

pythonhy的博客 1444

西门子S7-1200 PLC与伺服电机控制实战解析

工业自动化控制系统中,PLC(可编程逻辑控制器)与伺服电机的协同工作是实现精密运动控制的核心技术。通过PROFINET工业以太网协议,PLC可以高效地控制多台伺服电机,实现定位、同步和插补等复杂运动。在实际工程应用中,硬件组态的正确配置和运动控制算法的优化是关键挑战。本文以西门子S7-1200 PLC控制五台伺服电机的项目为例,详细介绍了从硬件组态、运动控制程序实现到HMI界面设计的全流程。特别针对多轴同步插补运动、动态速度曲线调整等特殊工艺需求,提供了实用的解决方案和调试技巧,为工业自动化领域的工程师提供

weixin_30252709的博客 497

AI代理持续学习实战:自蒸馏技术让代码生成Agent越用越聪明

在AI工程实践中,持续学习是解决模型部署后性能退化的关键技术。其核心原理是让模型在运行过程中不断吸收新知识,避免灾难性遗忘,从而适应动态变化的业务环境。自蒸馏作为一种高效的持续学习方法,通过让模型自身将成功的输出作为学习目标,实现了低成本、自动化的知识迭代。这项技术对于构建长期稳定、可自主进化的AI系统具有重要价值,尤其适用于代码生成、智能客服等需要实时适应新任务的场景。本文以代码生成AI代理为例,结合PyTorch和LangChain框架,详细拆解了自蒸馏的实现流程,帮助开发者构建具备自我进化能力的生产级

weixin_33708633的博客 231

共封装光学(CPO):下一代互联革命

Nvidia:产品:Quantum-X Q3450(115.2T,144×800G,2025H2上市)、Spectrum 6800(409.6T,512×800G,2026H2上市);技术路线:TSMC COUPE封装、MRM调制器、光栅耦合、外部激光源(Lumentum/Ayar Labs供应);战略定位:以横向扩展CPO验证供应链,最终聚焦纵向扩展场景(Feynman架构)。

存储随笔 4976

飞控算法-姿态解算之互补滤波

飞控乱入之姿态解算 姿态解算是通过读取各个传感器的数据进行融合最终得到当前飞行器的姿态,姿态通常用Euler角(Roll-Pitch-Yaw)来表示 姿态解算框架 姿态解算的数据源可来自于陀螺仪或加速度计,他们分别都可以得到当前姿态,但实际上他们都有各自的传感器性能的优缺点,需要取长补短,进行数据融合才能得到真实的姿态,这种方法简称 互补滤波 算法 传感器特性 互补滤波 姿态解...

GoolyOh的专栏 1万+

MCP实战高阶:借助LangChain快速打造MCP天气助手

最近,LangChain发布了一个新的开源项目langchain-mcp-adapters[1],该项目为开发者提供了一种便捷的方式,将MCP (Model Control Protocol) 服务器无缝集成到LangChain生态系统中。MCP是一种通信协议,允许大语言模型与外部工具和服务进行交互。而LangChain则是构建LLM应用的流行框架。的出现,极大地简化了两者之间的集成过程,让开发者可以更专注于业务逻辑的实现,而非底层通信细节。

weixin_59191169的博客 1202

SAP批量程序(一)-静态批量EX,FX和期间批量MB,WB和TB

SAP批量程序(一)-静态批量和区间批量

weixin_38974136的博客 5483

LangChain之Agent代理(上)

在LangChain中,Agent代理就是使用语言模型作为推理引擎,让模型自主判断、调用工具和决定下一步行动。

积跬步,至千里。 2222

Android Google 支付接入

1. 从 2023 年 8 月 2 日起,所有新应用都必须使用结算库版本 5 或更高版本。自 2023 年 11 月 1 日起,现有应用的所有新版本都必须使用结算库版本 5 或更高版本。 2. 如果您的应用以 Android 14 或更高版本为目标平台,您必须更新到 PBL 5.2.1 或 PBL 6.0.1 或更高版本。

帅次的博客 9404

自动化Ai Agent全流程实现【设计+代码】

本文探讨了人工智能代理(AI代理)如何通过自动化复杂的业务流程来帮助企业提高效率和降低成本。AI代理具有适应性、智力、自主性和可扩展性等特点,能够处理非结构化信息、在定义参数范围内做出判断、协调多个系统或利益相关者,以及处理变量输入和异常。文章详细介绍了AI代理在文件处理、客户服务、人才招聘和财务运作等领域的应用,并提供了一个逐步实现发票处理自动化的案例。此外,文章还强调了实施AI代理自动化的优势,包括效率提升、成本降低、准确性和可扩展性的改进,并提出了实施最佳实践,如从高影响力流程开始、设计人机交互、优先

FeelTouch Labs 899

基于LangChain构建一个简单的Agent代理

本文说明如何基于LangChain构建一个简单的Agent代理;使用OpenAi模型和TAVILY搜索。 该Agent代理具备读取历史信息的能力。

java_lover222的博客 1157

SAP FAGLFLEXT 是 SAP 新总账的核心余额表,存储多维度的汇总余额数据。核心结论:该表按 “科目 + 会计年度 + 期间 + 维度” 存储累计余额,字段可分为基础标识

FAGLFLEXT是SAP新总账的核心余额表,采用"科目+年度+期间+维度"结构存储多维汇总数据。其字段分为基础标识(科目、年度等)、维度细分(公司代码、利润中心等15个维度)、金额数值(本外币余额)、辅助控制(状态标识)四大类,支持新总账的灵活核算。该表通过凭证自动更新,与旧总账GLT0相比显著扩展了维度核算能力,各维度需在科目主数据或Ledger配置中启用才能使用。

金牌架构师 454

LangChain之Agent代理

首先需要创建想要使用的工具。Tavily (用于在线搜索)创建的本地索引的检索器。

2401_85378759的博客 1179

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LangChain的函数,工具和代理(六):Conversational agent

今天我们回顾了在langchain中实现基本的函数调用方法,以及在此基础上进行手动优化和自动优化的流程,最后我们将所有的功能整合在一起开发了一个自动化的聊天机器人,它具有记忆能力同时还能根据用户的问题来自主判断是否调用外部函数并给出对用户友好的回复,希望今天的内容对大家学习langchain有所帮助!

weixin_42608414的博客 3733

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

06|LangChain | 从入门到实战 -六大组件之Agent

Agent 是 Chain 的基本组成单元,一个 Chain 由多个 Agent 构成。 Chain 是 Agent 存在的载体,Agent 通过加入 Chain 来实现其功能和价值。 Agent 和 Chain 共同构成了 Langchain 平台的核心技术体系

稳稳C9的博客 9425

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

用LangChain实现一个Agent

上面,我们抛开了 LangChain,基于 OpenAI Python 程序库实现了一个 Agent,主要是为了让你更好地理解 Agent 的运作机理。其中最核心的部分就是一个循环,不断地执行各种动作,直到判断运行的结果是停下来。现在,你已经知道了 Agent 是怎样运作的,这一讲,我们再回来看看如何用 LangChain 实现一个 Agent,相信有了之前的铺垫,这一讲的代码就比较容易理解了。基于 LangChain 实现的 Agent工具。

xxue345678的博客 1777

LangChain与Agent实现

LangChain是一个开源框架,旨在帮助开发人员使用大型语言模型(LLMs)构建应用程序。它通过提供一系列工具、组件和接口,简化了创建由LLMs和聊天模型提供支持的应用程序的过程。有网友猜测,之所以选择鹦鹉作为 LangChain 的 logo,是因为大模型常被戏称为“随机鹦鹉”,即它只是模仿人类输出的文本,缺乏真正的理解能力。而 LangChain 则别出心裁地将鹦鹉(🦜)与链条(🔗)组合在一起,寓意其在提高大模型能力方面的作用。

小马过河R的博客 3689

基于Langchain的Agent实战,实现Agent对话

在这篇文章中,我们将以实战为导向,详细探讨如何实现一个Agent。我们选用的是LangChain框架,并将带领你从零到一地构建一个完整的Agent。然而,在深入了解如何利用LangChain实现Agent之前,我们需要先了解一些基本概念。

2401_85325557的博客 2165
上一篇: 大语言模型的创意能力到底几何?探索从GPT-2到GPT-4的演进
下一篇: 构建私人知识库的5个基本步骤
Llama-Turbo
博客等级 码龄4年 9901粉丝 2024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值