<aside>
💡 基础作业:
- 复现课程知识库助手搭建过程(截图)
</aside>
一、知识库搭建
-
**数据收集:**将一系列大模型开源仓库作为数据库来源,克隆到本地。并选用仓库中所有的 markdown、txt文件作为示例语料库。
-
**加载数据:**根据不同类型的文件,使用LangChain 提供的 不同类型的FileLoader加载,得到的 docs
为一个纯文本对象对应的列表。
-
**构建向量数据库:**由纯文本对象构建向量数据库,需要先对文本进行分块,接着对文本块进行向量化,并且选择最常用的入门数据库 Chroma 作为向量数据库。


二、InternLM 接入 LangChain
基于本地部署的 InternLM,继承 LangChain 的 LLM 类自定义一个 InternLM LLM 子类,从而实现将 InternLM 接入到 LangChain 框架中。

三、构建检索问答链并部署 Web Demo
- 封装为一个返回构建的检索问答链对象的函数
- **加载向量数据库:**将上文构建的向量数据库导入进来—直接通过 Chroma 以及上文定义的词向量模型来加载已构建的数据库
- **实例化自定义 LLM 与 Prompt Template:**LangChain 会将检索到的相关文档片段填入到 Template 的变量中,从而实现带知识的 Prompt 构建
- **构建检索问答链:**调用 LangChain 提供的检索问答链构造函数,基于我们的自定义 LLM、Prompt Template 和向量知识库来构建一个基于 InternLM 的检索问答链
- 定义一个类,该类负责加载并存储检索问答链,并响应 Web 界面里调用检索问答链进行回答的动作
- 按照 Gradio 的框架使用方法,实例化一个 Web 界面并将点击动作绑定到上述类的回答方法


