Logo

Logo

LangChain框架与客服机器人实战详解

Xzavier Aaron
Xzavier Aaron 2026年02月14日
115 阅读 0 评论 约 2995 字 阅读约 6 分钟

一、LangChain框架简介

1.1 LangChain的基本介绍

LangChain是一种专为大型语言模型(LLM)开发的应用框架。它通过模块化设计,简化了从开发到部署的整个流程。

LangChain在以下三个阶段提供支持:

  • 开发:通过开源组件快速搭建应用,支持与第三方工具集成。
  • 生产化:利用LangSmith进行链条的监控与优化,实现持续改进。
  • 部署:通过LangServe将链条转化为API服务。

总结来说,LangChain通过标准化模块抽象,为LLM应用开发提供了强有力的支持。

LangChain框架核心概念图

1.2 核心模块详解

LangChain框架的核心模块包括:

  • Model I/O:标准化输入输出接口,实现模型调用与返回格式化。
  • Retrieval:支持外部数据检索,包括文档加载、切割和向量化。
  • Chains:链条模块,用于连接多个模块协同工作。
  • Memory:提供上下文记忆功能,用于管理会话历史。
  • Agents:支持多种工具调用,适用于复杂任务执行。
  • Callbacks:回调系统,用于日志记录、监控和流处理。

1.3 LangChain的特点

LangChain具备以下优势:

  • 强大的大语言模型支持:适用于各种自然语言处理任务。
  • PromptTemplates:支持通过模板轻松构建和管理输入提示。
  • 链条设计:可将多个模型连接起来实现复杂目标。
  • 灵活的Agent支持:可定制化执行多种任务。
LangChain模块图解

1.4 LangChain解决的行业痛点

大语言模型的使用存在以下痛点:

  • 模型使用规范差异较大,学习成本高。
  • 模型知识更新滞后。
  • 外部API调用能力有限。
  • 输出结果不稳定,难以控制。
  • 与私有化数据的连接方式复杂。

1.5 安装指南

通过以下命令安装LangChain:

pip install langchain

二、基于LangChain的客服机器人实战

2.1 环境配置与依赖安装

以下为实战所需的依赖安装代码:

pip install pandas
pip install openpyxl
pip install langchain
pip install -U langchain-community
pip install sentence-transformers
pip install faiss-cpu
pip install pyjwt

2.2 数据加载

使用财经类数据作为示例:

import pandas as pd

file_path = 'SmoothNLP专栏资讯数据集样本10k.xlsx'
data = pd.read_excel(file_path)[:50]
数据加载示例

2.3 文档分割

通过逐行分割实现文档的结构化处理:

from langchain.schema import Document

documents = []
for index, row in data.iterrows():
    document = Document(page_content=f"{row['title']}\n{row['content']}")
    documents.append(document)
文档分割示例

2.4 向量搜索

2.4.1 相似性搜索

利用HuggingFaceEmbeddings进行文档编码,并使用Faiss进行向量检索:

from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS

embeddings = HuggingFaceEmbeddings()
db = FAISS.from_documents(documents, embeddings)
query = "双11广告我应该怎么打?"
docs = db.similarity_search(query)
相似性搜索结果示例

2.4.2 相似性分数检索

retriever = db.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": 0.8})
docs = retriever.get_relevant_documents("苏宁618")
for doc in docs:
    print(doc.page_content)

2.4.3 数据库存储与加载

存储和加载FAISS向量数据库的代码示例:

# 存储
db.save_local("real_estates_sale")

# 加载
db = FAISS.load_local("real_estates_sale", embeddings)

2.4.4 数据库检索与LLM结合

将数据库检索与大模型结合,构建智能问答系统:

from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.chat_models import ChatZhipuAI

llm = ChatZhipuAI(model="glm-4", temperature=0.5)
system_prompt = (
    "Use the given context to answer the question. "
    "If you don't know the answer, say you don't know. "
    "Use three sentence maximum and keep the answer concise. "
    "Context: {context}"
)
prompt = ChatPromptTemplate.from_messages([
    ("system", system_prompt),
    ("human", "{input}")
])
question_answer_chain = create_stuff_documents_chain(llm, prompt)
chain = create_retrieval_chain(db.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": 0.2}), question_answer_chain)
chain.invoke({"input": query})
检索与大模型结合示例

通过以上步骤,您可以构建一个功能强大的客服机器人,既能高效检索知识库,又能通过大模型生成智能回答。

查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

留言板

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

8 - 4 = ?

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... LangChain框架与客服机器人实战详解

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... LangChain框架与客服机器人实战详解

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... LangChain框架与客服机器人实战详解

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... LangChain框架与客服机器人实战详解

2026-02-14 · Xzavier Aaron