Skip to content

firewox/Langchain-HelpChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HelpChat,基于本地知识库的 LLM 实现

介绍

🤖️ 利用 langchain 思想实现,基于本地知识库建立一套对中文场景与开源模型支持友好、在线运行的知识库问答解决方案。

💡 受 Langchain-Chatchatknowledge_gpt项目启发,采建立了全流程可使用 LLM 模型实现的本地知识库问答应用。目前支持了智谱-api、通义千问-api 等开源大模型。

🚩 本项目中 Embedding 默认选用的是 shibing624/text2vec-base-chinese-paraphrase ,LLM 默认选用的是 ChatGLM-4-Flash 。依托上述模型,本项目可实现使用开源模型离线私有部署

🖥️ 本项目主要有以下过程:

  • 读取文本
    • 读取md文档。
    • 读取txt。
    • 读取pdf文档
      • 使用 PaddleOCR识别文档内容。
    • 读取jpg、png文件
      • 使用 PaddleOCR识别图片内容。
    • 读取其他类型文档。
      • 使用 Langchain 读取其他非结构化文件内容。
  • 文本分割 - 按照中文常见的分割符分割文本内容。
  • 文本向量化
    • 知识库文件内容向量化
      • 使用加载向量模型,将doc知识文档内容转为向量存放库中。
    • 问句向量化
      • 使用向量模型将query也向量化。
  • 在文本向量中匹配出与问句向量最相似的top k个。
  • 匹配出的文本作为上下文和问题一起添加到prompt中。
  • 提交给LLM生成回答。

硬件需求

向量化模型

中文匹配效果

Arch BaseModel Model ATEC BQ LCQMC PAWSX STS-B SOHU-dd SOHU-dc Avg QPS
CoSENT hfl/chinese-macbert-base shibing624/text2vec-base-chinese 31.93 42.67 70.16 17.21 79.30 70.27 50.42 51.61 3008
CoSENT hfl/chinese-lert-large GanymedeNil/text2vec-large-chinese 32.61 44.59 69.30 14.51 79.44 73.01 59.04 53.12 2092
CoSENT nghuyong/ernie-3.0-base-zh shibing624/text2vec-base-chinese-paraphrase 44.89 63.58 74.24 40.90 78.93 76.70 63.30 63.08 3066

开发部署

1. web-ui 端启动

执行 webui-startup.py 脚本体验命令行交互

$ python /frontend/webui-startup.py

对话界面

知识库gpt界面

知识库对话界面

2. 后端(知识向量库-数据库)启动

执行 main_controller.py 脚本体验命令行交互

$ python /backend/main_controller.py

路线图

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages