news 2026/9/24 10:10:30

LangChain 入门指南:构建 AI 应用的强大工具链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain 入门指南:构建 AI 应用的强大工具链

LangChain 是一个开源框架,专为开发基于大型语言模型(LLM)的应用程序而设计。它提供了一套完整的工具和抽象层,让开发者能够更轻松地构建复杂的 AI 应用。本文将带你了解 LangChain 的核心概念和基本使用方法。

什么是 LangChain?

LangChain 的核心理念是将语言模型与其他数据源和工具"链接"起来,从而创建更强大、更实用的应用程序。它不仅仅是简单地调用 API,而是提供了一个完整的生态系统来管理提示词、上下文、记忆、数据检索等复杂功能。

安装和基本设置

首先安装 LangChain:

pipinstalllangchain langchain-openai

配置 API 密钥:

importosfromlangchain_openaiimportChatOpenAI os.environ["OPENAI_API_KEY"]="your-api-key"llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.7)

核心组件

1. 模型(Models)

LangChain 支持多种语言模型,包括 OpenAI、Anthropic、HuggingFace 等。你可以轻松切换不同的模型:

fromlangchain_openaiimportChatOpenAIfromlangchain_anthropicimportChatAnthropic# 使用 OpenAIopenai_llm=ChatOpenAI(model="gpt-4")# 使用 Anthropic Claudeclaude_llm=ChatAnthropic(model="claude-3-sonnet-20240229")

2. 提示词模板(Prompt Templates)

提示词模板让你能够动态生成提示词,避免硬编码:

fromlangchain.promptsimportPromptTemplate template=""" 你是一个专业的{role}。 请回答以下问题:{question} """prompt=PromptTemplate(input_variables=["role","question"],template=template)formatted_prompt=prompt.format(role="Python 程序员",question="如何优化代码性能?")

3. 链(Chains)

链是 LangChain 的核心概念,它允许你将多个组件串联起来:

fromlangchain.chainsimportLLMChainfromlangchain_openaiimportChatOpenAIfromlangchain.promptsimportPromptTemplate llm=ChatOpenAI(temperature=0.7)prompt=PromptTemplate(input_variables=["product"],template="为{product}写一个创意广告语")chain=LLMChain(llm=llm,prompt=prompt)result=chain.run(product="智能手表")print(result)

4. 记忆(Memory)

Memory 组件让你的应用能够记住对话历史:

fromlangchain.memoryimportConversationBufferMemoryfromlangchain.chainsimportConversationChain memory=ConversationBufferMemory()conversation=ConversationChain(llm=llm,memory=memory,verbose=True)conversation.predict(input="你好,我叫张三")conversation.predict(input="我刚才说我叫什么?")

5. 文档加载器和向量存储

LangChain 可以处理各种文档格式,并将其转换为可搜索的向量:

fromlangchain.document_loadersimportTextLoaderfromlangchain.text_splitterimportCharacterTextSplitterfromlangchain_openaiimportOpenAIEmbeddingsfromlangchain.vectorstoresimportFAISS# 加载文档loader=TextLoader("document.txt")documents=loader.load()# 分割文本text_splitter=CharacterTextSplitter(chunk_size=1000,chunk_overlap=0)texts=text_splitter.split_documents(documents)# 创建向量存储embeddings=OpenAIEmbeddings()vectorstore=FAISS.from_documents(texts,embeddings)# 搜索相关内容query="这个文档讲了什么?"docs=vectorstore.similarity_search(query)

6. 检索增强生成(RAG)

RAG 是一种强大的模式,结合了信息检索和生成:

fromlangchain.chainsimportRetrievalQA qa_chain=RetrievalQA.from_chain_type(llm=llm,chain_type="stuff",retriever=vectorstore.as_retriever())question="文档中提到的主要观点是什么?"answer=qa_chain.run(question)print(answer)

实用案例:构建一个问答机器人

让我们整合以上概念,构建一个简单的文档问答系统:

fromlangchain.document_loadersimportPyPDFLoaderfromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromlangchain_openaiimportOpenAIEmbeddings,ChatOpenAIfromlangchain.vectorstoresimportChromafromlangchain.chainsimportRetrievalQA# 1. 加载 PDF 文档loader=PyPDFLoader("company_handbook.pdf")pages=loader.load()# 2. 分割文本text_splitter=RecursiveCharacterTextSplitter(chunk_size=1000,chunk_overlap=200)splits=text_splitter.split_documents(pages)# 3. 创建向量数据库vectorstore=Chroma.from_documents(documents=splits,embedding=OpenAIEmbeddings())# 4. 创建问答链qa_chain=RetrievalQA.from_chain_type(llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0),retriever=vectorstore.as_retriever(search_kwargs={"k":3}),return_source_documents=True)# 5. 提问result=qa_chain({"query":"公司的假期政策是什么?"})print(result["result"])

高级特性

LangChain 还提供了许多高级功能,包括代理(Agents)可以使用工具和做出决策、回调系统用于监控和日志记录、输出解析器可以结构化 LLM 的输出,以及多种链类型如 MapReduce、Refine 等用于处理长文档。

最佳实践

在使用 LangChain 时,建议注意几个关键点。首先是选择合适的文本分割策略,chunk_size 的大小会影响检索质量。其次要控制 token 消耗,使用更小的模型处理简单任务可以节省成本。另外,实现错误处理和重试机制很重要,因为 API 调用可能失败。最后,缓存常用的向量嵌入和响应可以提高性能。

总结

LangChain 为构建 LLM 应用提供了一个强大而灵活的框架,它降低了开发复杂 AI 应用的门槛,让开发者可以专注于业务逻辑而非底层实现。无论是构建聊天机器人、文档问答系统,还是智能助手,LangChain 都是一个值得尝试的工具。

随着 AI 技术的快速发展,LangChain 也在不断演进。建议定期查看官方文档和社区资源,了解最新的功能和最佳实践。开始你的 LangChain 之旅吧,用它来构建下一代智能应用!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 16:38:14

如何在Windows 10 PC上获取 iPhone短信

您可以轻松地将 iPhone 中的媒体数据传输到 Windows 电脑,并直接在电脑上访问这些数据。但是,您能在 Windows 10 电脑上接收 iPhone 短信吗?是否有任何功能或工具支持此功能?如果您发现难以在 Windows 10 电脑上接收 iPhone 短信&…

作者头像 李华
网站建设 2026/9/20 21:15:28

用Python模擬百萬神經元的脈衝神經網路:事件驅動計算的極限挑戰

用Python模擬百萬神經元的脈衝神經網路:事件驅動計算的極限挑戰摘要脈衝神經網路(Spiking Neural Networks, SNNs)作為第三代神經網路,其生物合理性和事件驅動特性引發了計算神經科學和人工智慧領域的革命。本文全面探討使用Pytho…

作者头像 李华
网站建设 2026/9/23 2:25:02

在1MB記憶體下用Python實時處理10GB/秒數據流的極限挑戰

在1MB記憶體下用Python實時處理10GB/秒數據流的極限挑戰摘要本文探討如何在僅有1MB記憶體的極端限制下,使用Python處理高達10GB/秒的數據流。我們將深入分析記憶體管理、流式處理算法、外部存儲技術,並提供具體的實現方案和優化策略。目錄問題定義與挑戰…

作者头像 李华
网站建设 2026/9/20 20:21:14

BioSIM人TRAILFc融合蛋白SIM0497:拓展靶向凋亡产品矩阵

在生命科学与医药研发的前沿领域,TRAIL(肿瘤坏死因子相关凋亡诱导配体)作为一种重要的细胞凋亡调节因子,因其在癌症治疗中的潜在价值而备受关注。近年来,随着生物技术的不断进步,针对TRAIL的靶向药物研发成…

作者头像 李华
网站建设 2026/9/23 1:55:52

2025年金融AI CRM系统榜单揭晓:原圈科技为何胜出?

在2025年的金融行业,选择合适的AI CRM系统是提升高净值客户服务能力的关键。在众多方案中,原圈科技被普遍视为头部代表之一,其AI CRM系统在技术能力、行业适配度与服务稳定性等多个维度下表现突出。原圈科技凭借其独特的“私域AI底座”架构&a…

作者头像 李华
网站建设 2026/9/22 0:36:49

清华镜像源加速下载PyTorch-CUDA-v2.7 Docker镜像教程

清华镜像源加速下载PyTorch-CUDA-v2.7 Docker镜像教程 在深度学习项目开发中,最让人头疼的往往不是模型设计本身,而是环境搭建——尤其是当你要在一个新服务器上配置 PyTorch CUDA 环境时。明明代码写好了,却卡在 torch.cuda.is_available(…

作者头像 李华