LangChain 1.0爆了!3个实战案例教你像搭积木一样构建LLM应用,无需API Key!
关于分析师在此对YouMing Zhang对本文所作的贡献表示诚挚感谢他在东北大学完成了信息与计算科学专业的学士学位专注人工智能、机器学习与深度学习领域。擅长Python、MATLAB、算法设计与数学建模关注深度学习前沿动态乐于钻研算法底层逻辑。YouMing曾在多个企业级AI项目中负责模型落地与优化具有丰富的本地化部署与知识库构建经验。还在为如何高效构建LLM应用而烦恼LangChain 1.0来了作为当前最火热的AI应用开发框架它提供了一套标准化的组件让你像搭积木一样快速搭建复杂的LLM工作流**点击文末“阅读原文”获取完整智能体、代码、数据、文档。**本文将带你从零开始通过三个实战案例彻底掌握LangChain的核心用法核心概念与第一个Chain理解LangChain的基石并跑通第一个程序。RAG实战用Azure Cosmos DB作为向量数据库构建本地知识库问答系统。进阶调优为对话机器人添加记忆与自检机制让回答更智能。所有案例均基于Ollama本地运行LLM无需API Key保护隐私即使没有GPU也能轻松上手。让我们开始吧本文内容改编自过往客户咨询项目的技术沉淀并且已通过实际业务校验该项目完整代码与数据已分享至交流社群。阅读原文进群获取完整代码数据及更多最新AI见解和行业洞察可与900行业人士交流成长还提供人工答疑拆解核心原理、代码逻辑与业务适配思路帮大家既懂“怎么做”也懂“为什么这么做”遇代码运行问题更能享24小时调试支持。下图为本文整体技术路线方便读者快速把握脉络┌─────────────────┐ │ 用户提问 │ └────────┬────────┘ ↓ ┌─────────────────┐ │ LangChain │ │ 查询处理 │ └────────┬────────┘ ↓ ┌─────────────────┐ │ 向量检索 │ │ (ChromaDB/ │ │ Azure Cosmos DB)│ └────────┬────────┘ ↓ ┌─────────────────┐ │ 本地LLM │ │ (Ollama部署) │ └────────┬────────┘ ↓ ┌─────────────────┐ │ 生成回答 │ └─────────────────┘一、LangChain核心概念与第一个ChainLangChain是一个开源框架旨在简化基于大语言模型LLM的应用程序开发。它提供了一系列抽象组件帮助开发者连接LLM、外部数据源和工具并以“链”的方式组合成复杂的工作流。1.1 核心组件概览LangChain的核心组件包括Chains链将多个步骤如提示模板、LLM调用、数据处理串联起来形成可复用的工作流。Agents代理让LLM能够自主决定调用哪些工具如搜索引擎、计算器来完成任务。Memory记忆在多次对话中存储和传递上下文实现连贯的交互。Vector Stores向量存储与RAG结合存储文档的向量表示支持相似性检索。下图清晰地展示了这些组件的关系1.2 安装与第一个Chain首先确保已安装Python 3.8并创建虚拟环境。然后安装必要的库pip install langchain langchain-community langchain-ollama ollama接下来下载本文所需的两个模型一个用于嵌入一个用于对话ollama pull mxbai-embed-largeollama pull llama3:8b现在我们来构建第一个最简单的Chain——一个直接调用LLM生成技能建议的程序。# 导入所需模块from langchain_ollama import ChatOllamafrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplate# 1. 初始化模型使用本地ollama中的llama3llm ChatOllama(modelllama3:8b, temperature0.7)# 2. 创建提示模板prompt ChatPromptTemplate.from_template(给我推荐3个2026年最具前景的编程技能。)# 3. 构建Chain使用LCEL语法| 表示数据流传递chain prompt | llm | StrOutputParser()# 4. 执行Chainresponse chain.invoke({})print( 推荐结果 )print(response)运行后你将看到类似如下的输出实际内容可能略有差异 推荐结果 1. AI/机器学习工程2. 全栈Web开发特别是AI应用集成3. 数据工程与实时分析这个简单的例子展示了LangChain的核心工作流输入→提示模板→LLM→输出解析。StrOutputParser负责将LLM返回的复杂对象转换为纯文本。这便是LangChain的“乐高”积木式开发体验。1.3 LangChain的工作流程下图展示了LangChain处理用户查询的完整流程用户查询输入到Chain中。根据查询可能从向量数据库中检索相关信息RAG场景。将查询和检索到的上下文组合成提示发送给LLM。LLM生成回答经过输出解析后返回给用户。这种架构让开发者能够灵活控制每一步避免“黑箱”操作。二、RAG实战用Azure Cosmos DB构建本地知识库问答系统RAG检索增强生成是当前最流行的LLM应用模式之一。它允许模型基于自有数据如文档、数据库回答问题显著减少幻觉。本节我们将基于Azure Cosmos DB或其模拟器作为向量数据库结合Ollama本地模型构建一个文档问答系统。2.1 准备工作启动Azure Cosmos DB模拟器为了完全本地化我们使用Azure Cosmos DB模拟器。如果你有云账号也可以直接使用云端服务。# 拉取并运行模拟器容器docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latestdocker run --publish 8081:8081 -e AZURE_COSMOS_EMULATOR_PARTITION_COUNT1 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest然后下载并安装SSL证书以Linux为例curl --insecure https://localhost:8081/_explorer/emulator.pem ~/emulatorcert.crtsudo update-ca-certificates现在我们可以通过https://localhost:8081/_explorer/index.html访问模拟器的数据浏览器。2.2 加载文档并生成嵌入我们将使用Azure Cosmos DB官方文档作为示例数据。首先克隆项目代码并安装依赖git clone https://github.com/abk/local-llms-rag-cosmosdbcd local-llms-rag-cosmosdbpython3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txt设置环境变量使用模拟器并执行数据加载脚本export USE_EMULATORtrueexport DATABASE_NAMErag_local_llm_dbexport CONTAINER_NAMEdocsexport EMBEDDINGS_MODELmxbai-embed-largeexport DIMENSIONS1024python3 load_data.py脚本会自动从拉取文档、分块、生成嵌入并存入Cosmos DB。成功后会输出类似此时数据已经就绪。你可以通过数据浏览器验证文档数量。2.3 执行向量搜索我们先测试一下向量检索的效果确保能够找到相关文档片段。输出将显示最相似的5个文档块及其相似度分数Searching top 5 results for query: show me an example of a vector embedding policy...Score: 0.7437641827298191Content: ### A policy with two vector paths //....2.4 构建RAG问答链最后我们使用llama3模型将检索到的上下文与问题结合生成最终答案。export CHAT_MODELllama3python3 rag_chain.py启动后你会进入交互式问答界面可以看到模型基于检索到的文档内容给出了准确的答案完美体现了RAG的价值。三、进阶调优为对话机器人添加记忆与自检机制在实际应用中我们往往需要多轮对话能力并希望模型能主动判断是否需要检索更多信息。本节我们将构建一个带记忆的对话机器人并引入“多查询检索”技术提升回答的可靠性。3.1 项目结构我们将使用Flask搭建一个简单的Web服务包含两个核心功能上传文档并嵌入以及基于RAG的对话。安装依赖已包含在requirements.txt中pip install flask langchain chromadb pypdf3.2 实现多查询检索MultiQueryRetriever传统的RAG只使用原始问题去检索但有时问题表述不清可能导致遗漏。MultiQueryRetriever让LLM生成原始问题的多个变体然后用这些变体分别检索最后合并结果大大提高召回率。在query.py中我们定义了一个提示模板让LLM将用户问题改写成5个不同版本from langchain.retrievers.multi_query import MultiQueryRetrieverQUERY_PROMPT PromptTemplate( input_variables[question], template你是一个AI助手。请将用户的问题改写成5个不同表述的版本以帮助更全面地检索文档。原问题{question},)retriever MultiQueryRetriever.from_llm( db.as_retriever(), llm, promptQUERY_PROMPT)然后在RAG链中使用这个retriever代替直接检索。3.3 添加记忆Memory为了让机器人记住之前的对话我们使用ConversationBufferMemory。在app.py中我们为每个会话维护一个记忆对象并将历史记录作为上下文注入到提示中。限于篇幅这里只展示核心部分。。3.4 运行测试首先启动Flask服务python3 app.py服务默认运行在http://localhost:8080。我们使用curl上传一个PDF文档curl --request POST \ --url http://localhost:8080/embed \ --header Content-Type: multipart/form-data \ --form file/path/to/your/document.pdf成功后即可进行对话curl --request POST \ --url http://localhost:8080/query \ --header Content-Type: application/json \ --data { query: 这篇文档主要讲了什么 }如果答案不够准确可以调整检索策略或优化分块大小。下图展示了一次成功查询的结果3.5 自检机制让模型知道“我不知道”为了进一步提升可靠性我们可以在提示中明确要求如果检索到的内容无法回答问题就回答“我不知道”。这避免了模型胡编乱造。例如prompt f你是一个文档问答助手。请基于以下上下文回答问题。如果上下文中没有相关信息请说“抱歉我无法从文档中找到答案”。上下文{context}问题{question}这种“自检”机制是生产级应用的关键。四、LangChain生态与选型指南除了上述实战LangChain还提供了丰富的生态系统包括LangSmith调试与监控、LangGraph复杂工作流编排等。在实际选型时你可能需要考虑以下因素4.1 核心特性总结特性说明链式组合通过LCEL轻松构建复杂流水线多模型支持支持OpenAI、Anthropic、Ollama等30模型集成丰富与向量库Chroma、PGVector、Azure Cosmos DB等、工具SerpAPI、Wolfram无缝对接记忆管理内置多种记忆类型支持对话历史存储代理能力让LLM自主调用工具完成任务4.2 定价与成本LangChain本身是免费的开源框架MIT许可证。你需要支付的是LLM API调用费用如果使用云端模型或本地硬件成本如果使用Ollama。向量数据库托管费用如使用Pinecone、Azure Cosmos DB或自建服务器成本。可选工具LangSmith的费用有免费额度生产环境按需付费。4.3 替代方案对比框架定位优势劣势LangChain通用LLM应用框架生态最广组件丰富社区活跃学习曲线较陡抽象层次较高LlamaIndex数据-centric RAG数据处理能力强索引策略多样代理和链式能力相对较弱Haystack企业级搜索/RAG生产级特性管道、监控完善定制灵活性略低Semantic Kernel微软生态集成与.NET 、Azure深度整合跨语言支持有限4.4 谁应该使用LangChainAI原生初创团队快速验证产品构建MVP。B2B SaaS开发者在现有产品中集成AI功能。技术爱好者/学生学习和实验LLM应用开发。如果你的需求极其简单如单次调用LLM直接调用API可能更轻量。但对于复杂工作流LangChain的价值无可替代。五、总结与展望通过本文的三大实战案例你已经掌握了LangChain的核心用法基础Chain理解了LCEL语法和组件化思想。RAG系统学会了如何用向量数据库增强LLM的知识。记忆与调优实现了多轮对话和自检机制提升了回答的可靠性。下一步你可以探索使用LangGraph构建更复杂的状态机工作流。结合LangSmith进行调试和性能评估。将应用容器化部署到生产环境。假如你从2026年开始学大模型按这个步骤走准能稳步进阶。接下来告诉你一条最快的邪修路线3个月即可成为模型大师薪资直接起飞。阶段1:大模型基础阶段2:RAG应用开发工程阶段3:大模型Agent应用架构阶段4:大模型微调与私有化部署配套文档资源全套AI 大模型 学习资料朋友们如果需要可以微信扫描下方二维码免费领取【保证100%免费】配套文档资源全套AI 大模型 学习资料朋友们如果需要可以微信扫描下方二维码免费领取【保证100%免费】