AI百事通

手把手教你用LangChain搭建AI客服机器人(2026版)

📅 2026-07-12📰 ai_generated👁 1 次阅读
手把手教你用LangChain搭建AI客服机器人(2026版)
LangChainAI客服教程Python大模型应用

概述

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_sizek值,增加重排序(Rerank)模块提升准确率。

进阶功能

  • 多模态支持:集成图像理解模型,处理用户上传的图片。
  • 主动学习:记录未解答问题,定期更新知识库。

总结

通过本教程,你已掌握使用LangChain构建AI客服机器人的核心流程。2026年的LangChain生态更加成熟,建议持续关注官方文档更新。