news 2026/2/7 2:52:49

LangChain+LLM本地知识库问答:从企业单文档问答到批量文档问答

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain+LLM本地知识库问答:从企业单文档问答到批量文档问答

过去半年,随着ChatGPT的火爆,直接带火了整个LLM这个方向,然LLM毕竟更多是基于过去的经验数据预训练而来,没法获取最新的知识,以及各企业私有的知识

为了获取最新的知识,ChatGPT plus版集成了bing搜索的功能,有的模型则会调用一个定位于 “链接各种AI模型、工具”的langchain的bing功能

为了处理企业私有的知识,要么基于开源模型微调,要么更可以基于langchain里集成的向量数据库和LLM搭建本地知识库问答(此处的向量数据库的独特性在哪呢?举个例子,传统数据库做图片检索可能是通过关键词去搜索,向量数据库是通过语义搜索图片中相同或相近的向量并呈现结果)

本文则侧重讲解

什么是LangChain及langchain的整体组成架构

通过langchain-ChatGLM构建本地知识库问答的基本流程,与每个流程背后的逻辑

解读langchain-ChatGLM项目的关键源码,不只是把它当做一个工具使用,因为对工具的原理更了解,则对工具的使用更顺畅

一开始解读不易,因为涉及的项目、技术点不少,所以一开始容易绕晕,好在根据该项目的流程一步步抽丝剥茧之后,给大家呈现了清晰的代码架构

过程中,我从接触该langchain-ChatGLM项目到整体源码梳理清晰并写清楚历时了近一周,而大家有了本文之后,可能不到一天便可以理清了(提升近7倍效率) ,这便是本文的价值和意义之一

langchain-ChatGLM项目的升级版:langchain-Chatchat

我司基于langchain-chatchat二次开发的企业多文档知识库问答系统

第一部分 LangChain的整体组成架构:LLM的外挂/功能库

通俗讲,所谓langchain ,即把AI中常用的很多功能都封装成库,且有调用各种商用模型API、开源模型的接口,支持以下各种组件

初次接触的朋友一看这么多组件可能直接晕了(封装的东西非常多,感觉它想把LLM所需要用到的功能/工具都封装起来),为方便理解,我们可以先从大的层面把整个langchain库划分为三个大层:基础层、能力层、应用层

1.1 基础层:models、LLMs、index

1.1.1 Models:模型

各种类型的模型和模型集成,比如OpenAI的各个API/GPT-4等等,为各种不同基础模型提供统一接口

比如通过API完成一次问答

1.1.2 LLMS层

这一层主要强调对models层能力的封装以及服务化输出能力,主要有:

各类LLM模型管理平台:强调的模型的种类丰富度以及易用性

一体化服务能力产品:强调开箱即用

差异化能力:比如聚焦于Prompt管理(包括提示管理、提示优化和提示序列化)、基于共享资源的模型运行模式等等

1.1.3 Index(索引):Vector方案、KG方案

对用户私域文本、图片、PDF等各类文档进行存储和检索(相当于结构化文档,以便让外部数据和模型交互),具体实现上有两个方案:一个Vector方案、一个KG方案

1.1.3.1 Index(索引)之Vector方案

对于Vector方案:即对文件先切分为Chunks,在按Chunks分别编码存储并检索,可参考此代码文件:langchain/libs/langchain/langchain/indexes /vectorstore.py

1.1.3.2 Index(索引)之KG方案

对于KG方案:这部分利用LLM抽取文件中的三元组,将其存储为KG供后续检索,可参考此代码文件:langchain/libs/langchain/langchain/indexes /graph.py

1.2 能力层:Chains、Memory、Tools

如果基础层提供了最核心的能力,能力层则给这些能力安装上手、脚、脑,让其具有记忆和触发万物的能力,包括:Chains、Memory、Tool三部分

1.2.1 Chains:链接

简言之,相当于包括一系列对各种组件的调用,可能是一个 Prompt 模板,一个语言模型,一个输出解析器,一起工作处理用户的输入,生成响应,并处理输出

具体而言,则相当于按照不同的需求抽象并定制化不同的执行逻辑,Chain可以相互嵌套并串行执行,通过这一层,让LLM的能力链接到各行各业

比如与Elasticsearch数据库交互的:elasticsearch_database

比如基于知识图谱问答的:graph_qa

其中的代码文件:chains/graph_qa/base.py 便实现了一个基于知识图谱实现的问答系统,具体步骤为

首先,根据提取到的实体在知识图谱中查找相关的信息「这是通过 self.graph.get_entity_knowledge(entity) 实现的,它返回的是与实体相关的所有信息,形式为三元组」

然后,将所有的三元组组合起来,形成上下文

最后,将问题和上下文一起输入到qa_chain,得到最后的答案

1.2.2 Memory:记忆

简言之,用来保存和模型交互时的上下文状态,处理长期记忆

具体而言,这层主要有两个核心点:

对Chains的执行过程中的输入、输出进行记忆并结构化存储,为下一步的交互提供上下文,这部分简单存储在Redis即可

根据交互历史构建知识图谱,根据关联信息给出准确结果,对应的代码文件为:memory/kg.py

1.2.2 Memory:记忆

简言之,用来保存和模型交互时的上下文状态,处理长期记忆

具体而言,这层主要有两个核心点:

对Chains的执行过程中的输入、输出进行记忆并结构化存储,为下一步的交互提供上下文,这部分简单存储在Redis即可

根据交互历史构建知识图谱,根据关联信息给出准确结果,对应的代码文件为:memory/kg.py

此外,关于Wikipedia可以关注下这个代码文件:langchain/docstore/wikipedia.py

最终langchain的整体技术架构可以如下图所示 (查看高清大图,此外,这里还有另一个架构图)

第二部分 基于LangChain + ChatGLM-6B(23年7月初版)的本地知识库问答

2.1 核心步骤:如何通过LangChain+LLM实现本地知识库问答

2023年7月,GitHub上有一个利用 langchain 思想实现的基于本地知识库的问答应用:langchain-ChatGLM (这是其GitHub地址,当然还有和它类似的但现已支持Vicuna-13b的项目,比如LangChain-ChatGLM-Webui ),目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案

该项目受 GanymedeNil 的项目 document.ai,和 AlexZhangji 创建的 ChatGLM-6B Pull Request 启发,建立了全流程可使用开源模型实现的本地知识库问答应用。现已支持使用 ChatGLM-6B、 ClueAI/ChatYuan-large-v2 等大语言模型的接入

该项目中 Embedding 默认选用的是 GanymedeNil/text2vec-large-chinese,LLM 默认选用的是 ChatGLM-6B,依托上述模型,本项目可实现全部使用开源模型离线私有部署

本项目实现原理如下图所示 (与基于文档的问答 大同小异,过程包括:1 加载文档 -> 2 读取文档 -> 3/4文档分割 -> 5/6 文本向量化 -> 8/9 问句向量化 -> 10 在文档向量中匹配出与问句向量最相似的top k个 -> 11/12/13 匹配出的文本作为上下文和问题一起添加到prompt中 -> 14/15提交给LLM生成回答 )

第一阶段:加载文件-读取文件-文本分割(Text splitter)

加载文件:这是读取存储在本地的知识库文件的步骤

读取文件:读取加载的文件内容,通常是将其转化为文本格式

文本分割(Text splitter):按照一定的规则(例如段落、句子、词语等)将文本分割

第二阶段:文本向量化(embedding)-存储到向量数据库

文本向量化(embedding):这通常涉及到NLP的特征抽取,可以通过诸如TF-IDF、word2vec、BERT等方法将分割好的文本转化为数值向量

存储到向量数据库:文本向量化之后存储到数据库vectorstore (FAISS,下一节会详解FAISS)

第三阶段:问句向量化
这是将用户的查询或问题转化为向量,应使用与文本向量化相同的方法,以便在相同的空间中进行比较

第四阶段:在文本向量中匹配出与问句向量最相似的top k个
这一步是信息检索的核心,通过计算余弦相似度、欧氏距离等方式,找出与问句向量最接近的文本向量

第五阶段:匹配出的文本作为上下文和问题一起添加到prompt中
这是利用匹配出的文本来形成与问题相关的上下文,用于输入给语言模型

第六阶段:提交给LLM生成回答

最后,将这个问题和上下文一起提交给语言模型(例如GPT系列),让它生成回答
比如知识查询

如你所见,这种通过组合langchain+LLM的方式,特别适合一些垂直领域或大型集团企业搭建通过LLM的智能对话能力搭建企业内部的私有问答系统,也适合个人专门针对一些英文paper进行问答,比如比较火的一个开源项目:ChatPDF,其从文档处理角度来看,实现流程如下:

2.2 Facebook AI Similarity Search(FAISS):高效向量相似度检索

Faiss的全称是Facebook AI Similarity Search (官方介绍页、GitHub地址),是FaceBook的AI团队针对大规模相似度检索问题开发的一个工具,使用C++编写,有python接口,对10亿量级的索引可以做到毫秒级检索的性能

简单来说,Faiss的工作,就是把我们自己的候选向量集封装成一个index数据库,它可以加速我们检索相似向量TopK的过程,其中有些索引还支持GPU构建

2.2.1 Faiss检索相似向量TopK的基本流程

Faiss检索相似向量TopK的工程基本都能分为三步:

得到向量库

此文,现在faiss官方支持八种度量方式,分别是:

METRIC_INNER_PRODUCT(内积)

METRIC_L1(曼哈顿距离)

METRIC_L2(欧氏距离)

METRIC_Linf(无穷范数)

METRIC_Lp(p范数)

METRIC_BrayCurtis(BC相异度)

METRIC_Canberra(兰氏距离/堪培拉距离)

METRIC_JensenShannon(JS散度)

2.2.2.1 Flat :暴力检索

优点:该方法是Faiss所有index中最准确的,召回率最高的方法,没有之一;

缺点:速度慢,占内存大。

使用情况:向量候选集很少,在50万以内,并且内存不紧张。

注:虽然都是暴力检索,faiss的暴力检索速度比一般程序猿自己写的暴力检索要快上不少,所以并不代表其无用武之地,建议有暴力检索需求的同学还是用下faiss。

构建方法:

2.3 项目部署:langchain + ChatGLM-6B搭建本地知识库问答

2.3.1 部署过程一:支持多种使用模式

其中的LLM模型可以根据实际业务的需求选定,本项目中用的ChatGLM-6B,其GitHub地址为:https://github.com/THUDM/ChatGLM-6B

ChatGLM-6B 是⼀个开源的、⽀持中英双语的对话语⾔模型,基于 General LanguageModel (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)

ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答

对应输出:

占用显存情况:大约15个G

2.3.2 部署过程二:支持多种社区上的在线体验

项目地址:https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui

HUggingFace社区在线体验:https://huggingface.co/spaces/thomas-yanxin/LangChain-ChatLLM

再回顾一遍langchain-ChatGLM这个项目的架构图


想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2026 年AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享

👇👇扫码免费领取全部内容👇👇

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI

1. 100+本大模型方向电子书

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

L5阶段:专题集丨特训篇 【录播课】


四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

2026 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 19:20:31

华为认证数通备考,以太网交换机的基础原理与应用

一、什么是以太网交换? 以太网交换是局域网中实现数据传输的核心技术。它通过交换机(Switch)将网络中的多个设备连接起来,并根据设备的MAC地址来决定数据的转发路径。交换机根据数据帧的目标MAC地址决定数据应该转发到哪个端口&a…

作者头像 李华
网站建设 2026/2/6 12:15:04

2026别错过!AI论文软件 千笔 VS 笔捷Ai,研究生写作新选择!

随着人工智能技术的迅猛迭代与普及,AI辅助写作工具已逐步渗透到高校学术写作场景中,成为研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生,开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时,市场…

作者头像 李华
网站建设 2026/2/5 11:22:39

以 “力比多” 理论解读《红楼梦》中贾宝玉的人物形象

以 “力比多” 理论解读《红楼梦》中贾宝玉的人物形象弗洛伊德提出的 “力比多”,是驱动生本能的核心心理能量,兼具客体指向性与动态转移性,既会自然寻求释放,也会因外部压抑通过升华、转移等方式转化,其 “压抑 - 释放…

作者头像 李华
网站建设 2026/2/6 20:36:28

AVAGO安华高 HCPL-5730 AUCDIP 晶体管输出光耦

特性 双标记,包含器件编号和DLA标准微电路图(SMD) 在MIL-PRF-38534认证产线上制造和测试 QML-38534,H类和K类 五种密封封装配置性能在全军用温度范围(-55C至125C)内保证 低输入电流要求:0.5mA 高电流转换比:典型值为1500%,在If0.5mA时低输出饱…

作者头像 李华
网站建设 2026/2/6 8:52:19

宇宙余行觉醒协议:一场从粒子到星系的自我意义发现运动

宇宙余行觉醒协议:一场从粒子到星系的自我意义发现运动开篇:宇宙的沉默潜能,等待被自身觉察一幅终极图景已然清晰:宇宙中每一个存在——从转瞬即逝的念头到横跨千万光年的星系——其内部与关系中都蕴含着未被自身觉察的“余行”。…

作者头像 李华
网站建设 2026/2/6 12:25:07

菊水PBZ20-20 PBZ40-10双极性电源

产品介绍 解决方案 在线问答 KIKUSUI PBZ系列智能型双极性电源 概要 PBZ系列是在输出端无正负极极性切换,而连续通过0点,正负极双向可变的双极性直流稳压电源。 采用“开关方式”“线性放大器方式”既实现了轻量化,也实现低脉动低噪声与高速响…

作者头像 李华