什么是LangChain?
LangChain是一个用于构建大模型应用的开源框架,它提供了模块化的组件,让你轻松地将LLM(大语言模型)与其他工具(如数据库、API)结合,创建强大的AI应用。2026年,LangChain已成为AI开发者的必备工具。
环境准备
在开始之前,请确保你的电脑已安装以下软件:
- Python 3.9+(推荐3.10)
- pip包管理器
- OpenAI API密钥(或其他LLM提供商密钥)
安装LangChain:
pip install langchain
同时安装必要的依赖:
pip install openai python-dotenv
LangChain核心概念
1. 模型(Models)
LangChain支持多种LLM提供商,如OpenAI、Anthropic等。你可以通过统一的接口调用不同的模型。
from langchain.llms import OpenAI
llm = OpenAI(model_name="text-davinci-003", temperature=0.9)
2. 提示模板(Prompts)
提示模板用于管理输入提示,使代码更整洁。
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["product"],
template="为{product}想一个吸引人的广告语?",
)
3. 链(Chains)
链将多个步骤组合起来,实现复杂功能。例如,先生成广告语,再翻译成英文。
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.run("智能手表")
4. 代理(Agents)
代理可以让AI自主决定使用哪些工具,实现更智能的交互。
5. 记忆(Memory)
记忆模块让AI记住之前的对话,实现多轮对话。
实战项目:构建智能问答系统
我们将构建一个基于文档问答的AI应用,用户可以提问关于某个文档内容的问题。
步骤1:加载文档
使用LangChain的文档加载器读取文本文件。
from langchain.document_loaders import TextLoader
loader = TextLoader("sample.txt")
documents = loader.load()
步骤2:拆分文档
将文档拆分成小块,以便嵌入和检索。
from langchain.text_splitter import CharacterTextSplitter
text_splitter = CharacterTextSplitter(chunk_size=200, chunk_overlap=20)
texts = text_splitter.split_documents(documents)
步骤3:生成嵌入并存储
将文本转换为向量并存储在向量数据库中。
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(texts, embeddings)
步骤4:创建问答链
使用RetrievalQA链,从向量库中检索相关文本,生成答案。
from langchain.chains import RetrievalQA
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever())
步骤5:运行问答
query = "文档中提到了哪些关键点?"
answer = qa.run(query)
print(answer)
进阶技巧
- 自定义提示模板:根据场景设计更精准的提示。
- 多轮对话:使用ConversationBufferMemory实现记忆功能。
- 集成外部API:通过Tool类让AI调用天气、新闻等API。
常见问题
Q1:API密钥如何获取?
可前往OpenAI官网注册并创建密钥。注意保密,不要泄露。
Q2:LangChain支持哪些向量数据库?
支持FAISS、Chroma、Pinecone等,可根据需求选择。
Q3:如何处理大文档?
使用递归文本拆分器,并适当调整块大小。
结语
通过本教程,你已经学会了使用LangChain构建一个简单的AI问答应用。LangChain的功能远不止这些,继续探索,你将能开发出更强大的AI产品。