当前位置: 首页 > news >正文

【大模型实战项目】基于Langchain与ChatGLM等语言模型的本地知识库问答项目(附教程)

基于ChatGLM等大语言模型与Langchain等应用框架实现,开源、可离线部署的搜索增强生成(RAG)大模型知识库项目。

一种利用langchain思想实现的基于本地知识库的问答应用,目标是建立一套针对中文场景与开源模型支持模式、可离线运行的知识库问答解决方案。

💡 受GanymedeNil的项目document.ai和AlexZhangji创建了ChatGLM-6B Pull Request指令,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中通过使用FastChat接入Vicuna、Alpaca、 LLaMA、Koala、RWKV 等模型,依托于langchain框架通过支持基于FastAPI提供的API调用服务,或使用基于Streamlit的WebUI进行操作。

✅ 依托于本项目支持的LLM与嵌入模型,项目可实现全部使用开源模型离线部署。同时,本项目也支持OpenAI GPT API的调用,附加在后续持续补充对开源模型及模型 API 的接入。

👉CSDN大礼包🎁:此项目已打包《基于Langchain与ChatGLM等语言模型的本地知识库问答》免费分享(安全链接,放心点击)👈

⛓️本项目实现原理如下图所示,流程包括加载文件 -> 读取文本 -> 文本分割 -> 文本支撑化 -> 问句支撑化 -> 在文本支撑中匹配出与问句支撑最相似的top k个-> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

在这里插入图片描述
从文档处理角度来看,实现流程如下:
在这里插入图片描述
🚩本项目未涉及强度、训练过程,但可利用力矩或对本项目效果进行优化。

🌐 AutoDL 镜像中0.2.10

使用代码的版本已更新至本项目v0.2.10版本。

🐳 Docker镜像已经更新到0.2.7版本。

🌲一行命令运行 Docker :

docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7

🧩本项目有一个非常完整的Wiki,README只是一个简单的介绍,_ 针对入门教程,能够基础运行_。如果你想更深入的了解本项目,或者想对本项目做出贡献。

解决的痛点

该项目是一个可以实现__本地化__推理的知识库增强方案,重点解决数据完全安全保护、私有域化部署的企业痛点。本开源方案采用Apache License,可以免费使用,无需付费。

我们支持主流的本地大语言模型和嵌入模型,支持开源的本地管理数据库。

快速上手

1.环境配置

  • 首先,确保你的机器安装了Python 3.8 - 3.11(我们强烈推荐使用Python3.11)。
$ python --version
Python 3.11.7

接下来,创建一个虚拟环境,并在虚拟环境内安装项目的依赖项

拉取仓库

# 拉取仓库
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git# 进入目录
$ cd Langchain-Chatchat# 安装全部依赖
$ pip install -r requirements.txt 
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt  # 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。

请注意,LangChain-Chachat0.2.x系列是针对Langchain0.0.x系列版本的,如果您使用的是Langchain0.1.x 系列版本,需要降级您的Langchain版本。

2, 模型下载

若要在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常是开源LLM 与 Embedding 模型可以从HuggingFace下载。

以本项目中默认使用的LLM模型THUDM/ChatGLM3-6B与Embedding模型BAAI/bge-large-zh为例:

下载模型需要先安装 Git LFS ,然后运行

$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b
$ git clone https://huggingface.co/BAAI/bge-large-zh

3.初始化知识库和配置文件

按照以下方式初始化自己的知识库和简单的复制配置文件

$ python copy_config_example.py
$ python init_database.py --recreate-vs

4. 一键启动

按照以下命令启动项目

$ python startup.py -a

5. 启动界面示例

如果正常启动,您将看到以下界面

  • FastAPI 文档 界面

在这里插入图片描述

  • Web UI启动界面示例:
  • 1.Web UI界面:
    在这里插入图片描述
    Web UI知识库管理页面:
    在这里插入图片描述

项目

2023年4月:Langchain-ChatGLM 0.1.0发布,支持基于ChatGLM-6B模型的本地知识库问答。

2023年8月:Langchain-ChatGLM改名为Langchain-Chatchat,0.2.0发布,用作fastchat模型加载方案,支持更多的模型和数据库。

2023年10月:Langchain-Chatchat 0.2.5发布、推出代理内容、开源项目在Founder Park & Zhipu AI & Zilliz 举办的黑客马拉松中获得三等奖。

2023年12月:Langchain-Chatchat开源项目获得超过20K星。

2024年1月:LangChain 0.1.x推出,Langchain-Chatchat 0.2.x发布稳定版本0.2.10 后将停止更新和技术支持,全力研发具有更强应用性的Langchain-Chatchat 0.3.x。

👉CSDN大礼包🎁:此项目已打包《基于Langchain与ChatGLM等语言模型的本地知识库问答》免费分享(安全链接,放心点击)👈


http://www.mrgr.cn/news/66754.html

相关文章:

  • 从0开始学PHP面向对象内容之(类,对象,构造/析构函数)
  • Power Pivot综合业务分析系统与高级分析功能
  • 人工智能学习--ANN模型、SVR模型
  • okcc呼叫中心语音通知模式播放的语音是否可以被录音?
  • Android -- [SelfView] 自定义圆盘指针时钟
  • Spring Cloud数据库从MySQL切换到OceanBase
  • go语言环境配置
  • 计算机毕业找什么工作,计算机就业指南(非常详细)零基础入门到精通,收藏这篇就够了
  • 鲲鹏生态繁荣的“幕后推手”:虹信软件扛起“智改数转”大旗
  • 基于Spring Boot的药品管理系统的设计与实现,LW+源码+讲解
  • ssm+jsp653基于Javaweb的网上花店系统的设计与实现
  • 【AIStarter】共创未来:AI赛道一起创业!
  • Mysql海量数据经常有下面这些操作,离被开除就不远了(持续更新)
  • Mysql执行一模一样的语句,一个报错,一个成功
  • rclone挂载后如何优化性能?
  • 【9700】基于springboot+vue的就业信息管理系统
  • Agilent U2004A功率传感器,是德KEYSIGHT U2004A功率探头
  • learn C++ NO.31——类型转换
  • 自动化细胞核分割与特征分析
  • 基于Java SpringBoot和Vue美容美发管理系统设计
  • 微信小程序开发,诗词鉴赏app,诗词搜索实现(三)
  • pip镜像源问题
  • 输入两个整数求a~~b整数的和(c基础)
  • 灵信LED屏
  • C++和JAVA中的sort详解
  • 大模型落地一年后,这十个方向先跑起来