Knowledge-QA-LLM: 基于本地知识库+LLM的开源问答系统

这篇具有很好参考价值的文章主要介绍了Knowledge-QA-LLM: 基于本地知识库+LLM的开源问答系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

⚠️注意:后续更新,请移步README

Knowledge QA LLM

Knowledge-QA-LLM: 基于本地知识库+LLM的开源问答系统,RapidAI,工具,llm,QA,文档问答

  • 基于本地知识库+LLM的问答系统。该项目的思路是由langchain-ChatGLM启发而来。
  • 缘由:
    • 之前使用过这个项目,感觉不是太灵活,部署不太友好。
    • 借鉴如何用大语言模型构建一个知识问答系统中思路,尝试以此作为实践。
  • 优势:
    • 整个项目为模块化配置,不依赖lanchain库,各部分可轻易替换,代码简单易懂。
    • 除需要单独部署大模型接口外,其他部分用CPU即可。
    • 支持常见格式文档,包括txt、md、pdf, docx, pptx, excel等等。当然,也可自定义支持其他类型文档。
TODO
  • 完善解析office文档接口及单元测试
  • 完善PDF提取接口及单元测试
  • 完善图像内容提取接口及单元测试
  • 完善LLM接口
  • 完善UI
  • 合并基于关键词搜索和基于向量搜索两种方法
整体流程
  • 解析文档并存入数据库
  • 检索并回答问题
使用
  1. 下载和部署模型

    1. 下载moka-ai/m3e-small模型,放到assets/models/m3e-small目录下,用于向量化文本内容。
    2. 单独配置好chatglm2-6b的接口,接口启动参考:ChatGLM2-6B API。具体使用方式可参考:knowledge_qa_llm/llm/chatglm2_6b.py
    3. 将部署好的llm_api写到配置文件knowledge_qa_llm/config.yaml中的llm_api_url字段下。
  2. 安装运行环境

    pip install -r requirements.txt --no-cache-dir
    
  3. 运行

    streamlit run webui.py
    
  4. UI Demo

  5. CLI Demo文章来源地址https://www.toymoban.com/news/detail-618835.html

🛠 所用工具
  • 文档解析:extract_office_content, rapidocr_pdf, rapidocr_onnxruntime
  • 提取特征向量:moka-ai/m3e-small
  • 向量存储:sqlite
  • 向量检索:faiss
  • UI: streamlit>=1.24.0
📂 文件结构
.
├── assets
│   ├── db                  # 存放向量数据库
│   ├── models              # 放置提取embedding的模型
│   └── raw_upload_files
├── knowledge_qa_llm
│   ├── __init__.py
│   ├── config.yaml         # 配置文件
│   ├── file_loader         # 处理各种格式的文档
│   ├── llm                 # 大模型接口,大模型需要单独部署,以接口方式调用
│   ├── utils
│   └── vector_utils        # embedding的存取和搜索
├── LICENSE
├── README.md
├── requirements.txt
├── tests
├── cli.py
└── webui.py                # 基于streamlit的UI实现
更新日志
  • 2023-07-29 v0.0.4 update:
    • 基于streamlit==1.25.0优化UI
    • 优化代码
    • 录制UI GIF demo
  • 2023-07-28 v0.0.3 update:
    • 完成文件解析部分
  • 2023-07-25 v0.0.2 update:
    • 规范现有目录结构,更加紧凑,提取部分变量到config.yaml
    • 完善说明文档

到了这里,关于Knowledge-QA-LLM: 基于本地知识库+LLM的开源问答系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LLM本地知识库问答系统(二):如何正确使用LlamaIndex索引

    LLM本地知识库问答系统(一):使用LangChain和LlamaIndex从零构建PDF聊天机器人指南        上一篇文章我们介绍了使用LlamaIndex构建PDF聊天机器人,本文将介绍一下LlamaIndex的基本概念和原理。        LlamaIndex(也称为GPT Index)是一个用户友好的界面,可将外部数据连接到大型语

    2024年02月10日
    浏览(21)
  • AIGC:【LLM(四)】——LangChain+ChatGLM:本地知识库问答方案

    LangChain+ChatGLM项目(https://github.com/chatchat-space/langchain-ChatGLM)实现原理如下图所示 (与基于文档的问答 大同小异,过程包括:1 加载文档 - 2 读取文档 - 3/4文档分割 - 5/6 文本向量化 - 8/9 问句向量化 - 10 在文档向量中匹配出与问句向量最相似的top k个 - 11/12/13 匹配出的文本作为上下

    2024年02月13日
    浏览(22)
  • 从零实现Transformer、ChatGLM-6B、LangChain+LLM的本地知识库问答

    最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代码,发现微调LLM时一般都会用到Hugging face实现的Transformers库的Trainer类 从而发现

    2024年02月08日
    浏览(24)
  • LLM本地知识库问答系统(一):使用LangChain和LlamaIndex从零构建PDF聊天机器人指南

           随着大型语言模型(LLM)(如ChatGPT和GPT-4)的兴起,现在比以往任何时候都更容易构建比普通熊更智能的智能聊天机器人,并且可以浏览堆积如山的文档,为您的输入提供准确的响应。        在本系列中,我们将探索如何使用pre-trained的LLM创建一个聊天机器人,该聊

    2024年02月11日
    浏览(27)
  • GPT学习笔记-Enterprise Knowledge Retrieval(企业知识检索)--私有知识库的集成

    openai-cookbook/apps/enterprise-knowledge-retrieval at main · openai/openai-cookbook · GitHub 终于看到对于我解决现有问题的例子代码,对于企业私有知识库的集成。 我对\\\"Retrieval\\\"重新理解了一下,源自动词\\\"retrieve\\\",其基本含义是“取回”,“恢复”,或“检索”。在不同的上下文中,\\\"retriev

    2024年02月11日
    浏览(22)
  • Quivr 基于GPT和开源LLMs构建本地知识库 (更新篇)

    自从大模型被炒的越来越火之后,似乎国内涌现出很多希望基于大模型构建本地知识库的需求,大概在5月底的时候,当时Quivr发布了第一个0.0.1版本,第一个版本仅仅只是使用LangChain技术结合OpenAI的GPT模型实现了一个最基本的架子,功能并不够完善,但可以研究研究思路,当

    2024年02月12日
    浏览(23)
  • 用好Python自然语言工具包-- 实例“基于本地知识库的自动问答”

    首先鸣谢thomas-yanxin 本问中示例来自他在GitHub上的开源项目“基于本地知识库的自动问答”,链接如下: thomas-yanxin/LangChain-ChatGLM-Webui: 基于LangChain和ChatGLM-6B的针对本地知识库的自动问答 (github.com) 目录 1. 基础知识: 2. NLTK库的使用 3. 实例代码分析 设备的定义 函数定义:从网

    2024年02月05日
    浏览(45)
  • ai聊天问答知识库机器人源码,基于gpt实现的本地知识库问答实现,聊天对话效果,发送回复以及流式输出...

    现在基于gpt做自己项目的问答机器人,效果非常的好。可以把自己的文档上传上去,让机器人根据文档来进行回答。 想要实现智能AI问答功能,现在大部分都是基于向量数据库的形式。 整体的流程就是:上传文档===openai向量接口 ==== 存入向量数据库 访客咨询:  咨询问题

    2024年02月10日
    浏览(26)
  • 使用golang 基于 OpenAI Embedding + qdrant 实现k8s本地知识库

    文章博客地址:套路猿-使用golang 基于 OpenAI Embedding + qdrant 实现k8s本地知识库 将数据集 通过 openai embedding 得到向量+组装payload,存入 qdrant 用户进行问题搜索,通过 openai embedding 得到向量,从 qdrant 中搜索相似度大于0.8的数据 从 qdrant 中取出相似度高的数据 将获取到的QA,组装成 pr

    2024年02月08日
    浏览(18)
  • AI-基于Langchain-Chatchat和chatglm3-6b部署私有本地知识库

    手把手教你搭建本地知识库问答AI机器人 LangChain-Chatchat:基于LangChain和ChatGLM2-6B构建本地离线私有化知识库 在家庭私有云上部署体验语言模型chatglm3-6b,打造私人助理 手把手教大家在本地运行ChatGLM3-6B大模型(一) 自从去年GPT模型火爆以来,降低了很多个人和企业进入人工智

    2024年02月20日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包