大模型从入门到应用——LangChain:代理(Agents)-[代理类型]

LangChain是一个用于开发基于大型语言模型的应用的框架,涵盖了从安装配置到高级功能如自定义代理和记忆机制的详细教程。文章介绍了如何使用LLMs、创建提示模板、构建不同的代理策略,如ReAct框架下的交互,以及如何在对话中利用记忆和检索机制增强模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分类目录:《大模型从入门到应用》总目录

LangChain系列文章:


代理使用LLM来确定应采取哪些操作以及以何顺序执行这些操作。动作可能是使用工具并观察其输出,或向用户返回响应。以下是LangChain中可用的代理:

zero-shot-react-description

此代理使用ReAct框架,仅基于工具的描述来确定要使用的工具。可以提供任意数量的工具,但此代理需要为每个工具提供描述。

react-docstore

这个代理使用ReAct框架与文档存储进行交互。必须提供两个工具:一个Search工具和一个Lookup工具,且它们必须被命名为这样。Search工具应该搜索文档,而Lookup工具应该查找最近找到的文档中的一个术语。这个代理相当于最初的ReAct论文《REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS》,特别是维基百科的例子。

self-ask-with-search

这个代理使用一个被命名为Intermediate Answer的工具。这个工具应该能够查找问题的事实性答案。这个代理相当于最初的《MEASURING AND NARROWING
THE COMPOSITIONALITY GAP IN LANGUAGE MODELS
》,其中提供了Google搜索API作为工具。

conversational-react-description

这个代理程序旨在用于对话环境中。提示设计旨在使代理程序有助于对话。 它使用ReAct框架来决定使用哪个工具,并使用内存来记忆先前的对话交互。

参考文献:
[1] LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发:https://www.langchain.com.cn/
[2] LangChain中文网 - LangChain 是一个用于开发由语言模型驱动的应用程序的框架:http://www.cnlangchain.com/

### 关于 LangChain入门教程 #### 了解 LangChain 基本概念和核心功能 LangChain 是一种用于构建语言模型应用的强大框架,旨在简化开发者创建复杂自然语言处理系统的流程。该框架不仅提供了多种预训练的大规模语言模型(LLMs),还支持定制化的提示模板(Prompt Templates)、代理Agents)、记忆(Memory)、索引(Indexes)以及链条(Chains)。这些特性使得开发人员能够更灵活地设计对话系统和其他基于文本的应用程序[^1]。 #### 组件详解 - **Models**: 支持不同种类的语言模型,如 ChatGPT、ChatGLM 和 T5 等。 - **Prompts**: 提供管理和自定义提示的功能,有助于优化与 LLMs 的交互效果。 - **Agents**: 负责决策并执行特定任务,允许大型语言模型访问外部工具和服务。 - **Memory**: 记录会话历史记录,保持上下文连贯性。 - **Indexes**: 对文档进行结构化处理,便于后续查询操作。 - **Chains**: 定义了一系列组件之间的调用顺序,形成完整的业务逻辑流[^4]。 #### 实际应用场景展示——简单问答系统 为了更好地理解如何利用 LangChain 创建实际项目,在此提供了一个简易版的问答系统实例: ```python from langchain import LangChain, PromptTemplate, LLMMemory, SimpleIndexCreator, AgentExecutor import json # 加载配置文件中的参数设置 with open('config.json', 'r') as f: config = json.load(f) # 初始化内存对象来存储聊天记录 memory = LLMMemory() # 设置索引来加速检索过程 index_creator = SimpleIndexCreator() indexes = index_creator.create_indexes(config['documents']) # 配置提示模板以指导模型生成合适的回复 prompt_template = PromptTemplate( input_variables=["history", "input"], template="Based on the following conversation history:\n{history}\nThe user asks: {input}" ) # 构造Agent执行器来进行具体的操作 agent_executor = AgentExecutor.from_llm_and_tools(llm=config['llm'], tools=[...], memory=memory) while True: question = input("Ask a question:") # 获取当前对话的历史作为背景信息的一部分 context = agent_executor.memory.get_context(inputs={"question": question}) # 将问题传递给Agent执行器获取答案 response = agent_executor.run(prompt=prompt_template.format(history=context["history"], input=question)) print(response) ``` 这段代码片段展示了如何结合多个 LangChain 组件建立一个可以持续互动的基础架构,并通过循环读取用户的输入来维持整个交流的过程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

von Neumann

您的赞赏是我创作最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值