概述
AI客服机器人已成为企业降本增效的标配。本教程将使用2026年最新版本的LangChain(v0.5.0),结合OpenAI GPT-5 API和ChromaDB向量数据库,构建一个能够回答产品问题的智能客服。
环境准备
安装依赖
pip install langchain==0.5.0 openai chromadb tiktoken
获取API密钥
- OpenAI API Key(GPT-5模型)
- 可选:HuggingFace API(用于开源模型)
第一步:加载知识库
准备文档
将产品手册、FAQ等文本文件放入docs/目录。
代码实现
from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = DirectoryLoader('docs/', glob='**/*.txt')
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = text_splitter.split_documents(documents)
第二步:创建向量存储
初始化嵌入模型
from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
构建ChromaDB
from langchain.vectorstores import Chroma
vectorstore = Chroma.from_documents(docs, embeddings, persist_directory="./chroma_db")
vectorstore.persist()
第三步:构建检索链
创建检索器
retriever = vectorstore.as_retriever(search_type="similarity", search_kwargs={"k": 3})
定义提示模板
from langchain.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个专业的客服助手,基于以下上下文回答问题:\n{context}"),
("human", "{question}")
])
组合链
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA
llm = ChatOpenAI(model="gpt-5-turbo", temperature=0)
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever,
chain_type_kwargs={"prompt": prompt}
)
第四步:添加多轮对话记忆
使用ConversationBufferMemory
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
集成到链中
from langchain.chains import ConversationalRetrievalChain
conversation_chain = ConversationalRetrievalChain.from_llm(
llm=llm,
retriever=retriever,
memory=memory
)
第五步:启动Web服务
使用FastAPI提供API接口:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Query(BaseModel):
question: str
@app.post("/chat")
async def chat(query: Query):
result = conversation_chain({"question": query.question})
return {"answer": result["answer"]}
测试与优化
- 测试:运行
uvicorn main:app,用curl或Postman发送请求。 - 优化:调整
chunk_size和k值,增加重排序(Rerank)模块提升准确率。
进阶功能
- 多模态支持:集成图像理解模型,处理用户上传的图片。
- 主动学习:记录未解答问题,定期更新知识库。
总结
通过本教程,你已掌握使用LangChain构建AI客服机器人的核心流程。2026年的LangChain生态更加成熟,建议持续关注官方文档更新。