💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[TOC] ## 概述 **LangChain** 是一个开源 Python 框架,用于构建由 **大语言模型(LLM)驱动的应用程序**。它为开发者提供了强大的组件来构建: * 多步骤推理 Agent * 与外部数据交互的智能系统(如搜索引擎、数据库等) * RAG(Retrieval-Augmented Generation)问答系统 * 多模态对话、插件式 AI 助理 LangChain 的核心理念是:**语言模型不仅能生成文本,还能做决策和调用工具** **核心模块一览** | 模块 | 说明 | | --- | --- | | 🧱 **Chains** | 将多个语言模型调用/工具串联起来,形成任务流程(Chain) | | 🤖 **Agents** | 具备“决策能力”的智能体,可选择调用不同工具完成任务 | | 📚 **Retrievers** | 接入向量数据库或本地知识库,实现 RAG 检索 | | 🧰 **Tools** | 集成外部工具,如搜索、数据库、计算器、API | | 💾 **Memory** | 实现对话上下文记忆 | | 🗄️ **Document Loaders** | 支持从 PDF、Notion、CSV、Web 等加载文本 | | 🧠 **Prompt Templates** | 提供动态提示模板管理与格式化功能 | **LangChain 支持生态** LangChain 与众多工具和服务集成: * 🔎 向量数据库:FAISS、Chroma、Weaviate、Pinecone、Milvus 等 * 📄 文档加载器:PDF、Notion、Markdown、URL 抓取 * 💬 模型支持:OpenAI、Anthropic、Cohere、Hugging Face、Azure 等 * 🧠 Agent 框架:支持工具调用、函数调用、Action 模型等 ## 示例 ### 构建一个智能搜索问答 Agent ``` from langchain.chat_models import ChatOpenAI from langchain.agents import initialize_agent, Tool from langchain.tools import DuckDuckGoSearchRun # 定义工具 search = DuckDuckGoSearchRun() tools = [Tool(name="DuckDuckGo Search", func=search.run, description="Real-time web search")] # 初始化 Agent llm = ChatOpenAI(temperature=0) agent = initialize_agent(tools, llm, agent_type="zero-shot-react-description", verbose=True) # 提问 response = agent.run("请问 Serverpod 是什么?") print(response) ``` ### RAG 示例:结合向量数据库回答问题 ``` from langchain.vectorstores import FAISS from langchain.embeddings.openai import OpenAIEmbeddings from langchain.chains import RetrievalQA # 假设你已经加载了文档并创建了向量索引 vector_store = FAISS.load_local("faiss_index", OpenAIEmbeddings()) retriever = vector_store.as_retriever() # 构建 RAG 问答链 qa_chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(), retriever=retriever) qa_chain.run("根据文档解释 Serverpod 的架构") ```