LangChain 大模型组件使用指南
除了使用 LangChain 进行模型对话、提示词创作和嵌入模型外,还可以利用其组件对大模型进行封装,打造自定义的大模型应用。
Agents
在 LangChain 中,Agents(智能体)是执行特定任务或功能的智能实体。它们可以被视为自动化的小助手,能够根据预设规则和逻辑,在 LangChain 生态系统中自主地执行操作。例如,有的 Agent 负责监控交易活动,有的则处理文本生成、翻译或情感分析等语言任务。这些 Agent 的存在极大地提高了系统的自动化程度和效率。
AI 大模型虽然强大,但仍存在局限性:
- 数据不及时:部分模型的数据更新截止于过去的时间点,无法知晓最新的新闻。
- 处理复杂任务:大模型在问答方面表现出色,但不能直接处理复杂的逻辑任务。
- 核心能力:理解意图和文本生成。
在使用 LangChain 时,可以通过查看 API 文档或使用 IDE 功能了解可用参数。以下示例展示了如何集成 DuckDuckGo 搜索引擎和数学计算工具来查询信息。
首先安装依赖:
pip install duckduckgo-search
代码示例:
import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain.agents import load_tools, initialize_agent
from langchain.agents import AgentType
os.environ['QIANFAN_AK'] = "******"
os.environ['QIANFAN_SK'] = "******"
llm = QianfanChatEndpoint(model='Chinese-Llama-2-7B')
tools = load_tools(["ddg-search", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
print('agent', agent)
from langchain import PromptTemplate
prompt_template = "山东省 2023 年高考人数是多少"
prompt = PromptTemplate.from_template(prompt_template)
print('prompt-->', prompt)
agent.run(prompt)
输出结果会显示 Agent 的思考过程,包括调用搜索工具获取最新数据,最终得出答案。
Memory
LangChain 的 Memory 模块专门用于存储和管理对话上下文信息。大模型本身不具备上下文概念,不保存上次交互的内容,通过封装将历史记录回传给了模型。Memory 模块帮助模型更好地理解用户意图,从而生成更准确的响应。


