LangChain实战入门:手把手教你构建AI应用

AI教程2026-03-14 18:48:00

LangChain实战入门:手把手教你构建AI应用

你是否曾惊叹于ChatGPT的强大,却又苦恼于如何将其能力集成到自己的业务系统中?或者,你是否希望构建一个能联网搜索、处理私人文档的智能助手?这正是LangChain要解决的核心问题。作为一个开源框架,LangChain简化了大型语言模型应用的开发流程,让你能像搭积木一样,组合模型、数据和工具,构建功能强大的AI应用。本教程将基于我们多次项目部署的经验,带你从零开始,掌握LangChain的核心用法。

准备工作:搭建你的开发环境

在开始构建之前,你需要准备好“工具箱”。LangChain支持Python和JavaScript,但Python生态更为成熟。以下是具体步骤:

  1. 安装Python:确保你的电脑安装了Python 3.8或更高版本。你可以从来源: Python官网下载最新版本。
  2. 创建虚拟环境:这是一个好习惯,能避免包版本冲突。在命令行中运行 python -m venv langchain_env,然后激活它。
  3. 安装核心库:在激活的虚拟环境中,执行 pip install langchain openai。这里我们以OpenAI的模型为例,你还需要准备一个有效的OpenAI API密钥。
  4. 获取API密钥:前往OpenAI平台创建密钥。请务必妥善保管,不要将其直接硬编码在代码中。

核心实战:构建你的第一个AI链

我们从一个经典场景开始:创建一个能根据公司名称生成简短宣传口号的AI应用。这个过程将清晰地展示LangChain的“链式”思想。

LangChain实战入门:手把手教你构建AI应用_https://ai.lansai.wang_AI教程_第1张

  1. 初始化语言模型:首先,导入必要的模块,并用你的API密钥设置模型。我们使用环境变量来管理密钥,这是保证安全的最佳实践。
    import os
    from langchain.llms import OpenAI
    os.environ["OPENAI_API_KEY"] = "你的密钥"
    llm = OpenAI(temperature=0.9) # temperature控制创造性
    
  2. 创建提示模板:直接向模型提问“为XX公司写口号”可行,但不够灵活。LangChain的提示模板能让你动态生成提示。
    from langchain.prompts import PromptTemplate
    prompt = PromptTemplate(
        input_variables=["company"],
        template="你是一家顶级营销公司的AI助手。请为{company}创作一句朗朗上口的品牌宣传口号。"
    )
    
  3. 构建并运行链:现在,将模型和提示模板“链”在一起。这是LangChain命名的由来。
    from langchain.chains import LLMChain
    chain = LLMChain(llm=llm, prompt=prompt)
    result = chain.run("一家专注于环保材料的科技公司")
    print(result)
    

    运行后,你可能会得到类似“绿色科技,重塑未来——为地球而创新”的结果。这个简单的链条,已经实现了业务逻辑与模型调用的分离。

进阶技巧:让AI应用更强大

基础链只是开始。在实际项目中,我们常遇到三个挑战:模型需要最新知识、要处理长文本、以及需要执行具体操作。以下是经过验证的解决方案。

1. 为模型装上“搜索引擎”

语言模型的知识有截止日期。通过“代理”和“工具”,你可以让模型主动获取实时信息。例如,集成SerpAPI进行网络搜索:

LangChain实战入门:手把手教你构建AI应用_https://ai.lansai.wang_AI教程_第2张

from langchain.agents import load_tools, initialize_agent
from langchain.agents import AgentType
tools = load_tools(["serpapi"], llm=llm) # 需单独注册SerpAPI
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("查询今天北京到上海的机票最新价格趋势,并总结。")

模型会自主决定先搜索,再分析结果。verbose=True参数能让你看到其思考过程,这在调试时至关重要。

2. 处理超长文档

模型有上下文长度限制。处理长PDF或文章时,你需要“文本分割器”和“向量数据库”。流程是:分割文本 -> 嵌入为向量 -> 存储 -> 检索相关片段。以下是简化示例:

LangChain实战入门:手把手教你构建AI应用_https://ai.lansai.wang_AI教程_第3张

from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
# 假设你有一段长文本 `long_text`
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_text(long_text)
# 创建向量数据库
embeddings = OpenAIEmbeddings()
docsearch = Chroma.from_texts(texts, embeddings)
# 提问
docs = docsearch.similarity_search("文档中提到了哪些关键数据?")
print(docs[0].page_content)

我们常在客户项目中推荐使用Chroma(轻量级)或Pinecone(云端托管)作为向量存储。

3. 避开常见陷阱

根据我们的部署经验,新手常踩两个坑:一是忽略token成本,二是错误设置temperature。对于持续运行的链,务必添加日志和用量监控。temperature参数并非越高越好,对于事实问答,应设置为接近0;对于创意生成,则可设为0.7-1.0。另一个关键点是错误处理,网络请求和API调用必须用try-except包裹,并为用户提供友好的降级回复。

LangChain实战入门:手把手教你构建AI应用_https://ai.lansai.wang_AI教程_第4张

总结与行动指南

通过本教程,你已经掌握了LangChain的核心:用链组合模型与提示,用代理赋予模型行动力,用检索处理长文本数据。LangChain的真正力量在于其模块化设计,让你能灵活替换其中的任何一个组件。现在,你可以立即行动:

  1. 用你的API密钥复现上面的口号生成链。
  2. 尝试修改提示模板,让口号风格变得严肃或幽默。
  3. 将一个你熟悉的本地文档(如TXT文件)加载并分割,尝试进行问答。

构建AI应用不再需要从零造轮子。LangChain提供了坚实的脚手架,而你的创意和具体业务逻辑,才是最终应用脱颖而出的关键。开始搭建吧,下一个颠覆性的AI应用也许就诞生在你的手中。