关于 langchain
LangChain 是用于将大模型集成到应用与工作流中的 Python 框架,适合构建问答、数据处理和 Agent 应用。它提供链式编排、工具集成、提示词管理及异步执行能力。
主要功能
- 01编排大模型链
- 02集成工具与向量存储
- 03管理动态提示词
- 04构建使用工具的 Agent
- 05支持异步链
适用场景
- 01结合文档检索构建问答应用
- 02创建可调用搜索工具的 Agent
- 03并发处理多个查询
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill langchain安装后在 Claude Code 中输入/langchain确认已加载。
详细介绍
langchain
用途
LangChain 是一个 Python 框架,用于开发将大语言模型(LLM)集成到工作流中的应用,可创建组合多个 LLM 或工具的链,用于问答或数据处理等任务。
适用场景
构建需要串联 LLM 的 AI 应用时可使用 LangChain,例如,为复杂查询集成多个模型,或需要借助 LLM 处理外部数据源时。它也适用于快速构建 AI Agent 原型,例如可获取实时数据的聊天机器人,或在需要可扩展 LLM 工作流的 aimlops 集群中执行 ML 运维。
主要功能
- 构建链:使用
LLMChain等类创建 LLM 序列;例如,将提示模板与 LLM 调用组合起来。 - 工具集成:支持通过
OpenAI类集成 OpenAI 等 API;使用FAISS处理向量存储,以实现语义搜索。 - 提示词管理:使用
PromptTemplate动态定义和渲染提示词,例如,通过变量传入用户输入。 - Agent 框架:使用工具构建 Agent,并通过
AgentType.ZERO_SHOT_REACT根据 LLM 输出动态选择工具。 - 异步支持:利用异步链构建可扩展的应用,例如,并发处理多个查询。
使用模式
要使用 LangChain,请通过 pip install langchain 安装,然后导入并配置组件。对于基础链,创建一个 LLM 实例,并将其连接到提示词或工具。模式:使用 API 密钥初始化 LLM,构建链,并在循环中运行它以执行迭代任务。对于 Agent,定义工具,并让 Agent 根据输入决定要采取的操作。
常用命令/API
- 安装和设置:运行
pip install langchain[all]以包含扩展包;设置export OPENAI_API_KEY=your_key等环境变量进行身份验证。 - 基础链示例:
from langchain.llms import OpenAI from langchain.chains import LLMChain llm = OpenAI(model_name="gpt-3.5-turbo") chain = LLMChain(llm=llm, prompt="What is {topic}?") result = chain.run(topic="LangChain") - API 端点:将 LangChain 与外部服务配合使用时,可通过 LangChain 包装器调用
https://api.openai.com/v1/chat/completions等端点;传入包含身份验证令牌的标头。 - 配置格式:使用 YAML 配置链,例如,在文件中:
使用chains: - name: simple_chain llm: OpenAI prompt: "Summarize {text}"from langchain.utilities import load_config加载。 - CLI 命令:对于 LangChain CLI(如果已扩展),使用
langchain serve将链作为服务运行,或使用langchain debug --chain my_chain跟踪执行过程以进行调试。
集成说明
将其他工具封装为可调用函数,即可与 LangChain 集成。例如,要添加数据库查询工具,可使用 Tool.from_function 并将其传递给 Agent。为密钥设置环境变量,例如,为 OpenAI 模型设置 $OPENAI_API_KEY,或为搜索集成设置 $SERPAPI_API_KEY。与 aimlops 集群工具组合使用时,请使用 LangChain 的回调系统记录日志,以确保兼容;导入 from langchain.callbacks import get_openai_callback 以跟踪令牌用量。对于向量数据库,可通过初始化 from langchain.vectorstores import Pinecone 并通过环境变量提供 API 密钥来集成 Pinecone。
错误处理
使用 try-except 块包装链的运行过程来处理错误,例如:
try:
result = chain.run(input_data)
except ValueError as e:
print(f"Invalid input: {e}")
except Exception as e:
print(f"General error: {e} - Check API key or network")
常见问题包括 API 速率限制(通过 if e.status_code == 429: retry() 检查并重试)、无效的 API 密钥(验证是否已设置 $OPENAI_API_KEY),或链配置错误(如果可用,使用 chain.validate())。在生产环境中使用 LangChain 的处理器记录错误,以便调试。
具体使用示例
-
简单问答链:构建一个链,使用 LLM 和向量存储回答问题。首先,设置
export OPENAI_API_KEY=your_key。然后:from langchain.chains import RetrievalQA from langchain.llms import OpenAI qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff") answer = qa_chain.run({"query": "What is LangChain?"})这会获取相关文档并生成回答。
-
用于网页搜索的 Agent:创建一个使用工具执行网页搜索的 Agent。设置
export SERPAPI_API_KEY=your_key。代码:from langchain.agents import AgentType, load_tools, initialize_agent from langchain.llms import OpenAI tools = load_tools(["serpapi"]) agent = initialize_agent(tools, OpenAI(), agent=AgentType.ZERO_SHOT_REACT) response = agent.run("Search for latest AI news")Agent 会动态搜索网页并返回结果。
图关系
- 与集群 aimlops 相关(例如,共享机器学习运维工具)。
- 通过标签连接:langchain(自身)、llm(链接到其他大模型工具)、ai-framework(连接到 Hugging Face 等框架)。
- 依赖项:需要 OpenAI 或类似的 API,并可与 FAISS 或 Pinecone 等向量存储集成。