前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源、离线、免费商用的大模型知识库来袭!快速搭建个人和企业私有智能知识库!

开源、离线、免费商用的大模型知识库来袭!快速搭建个人和企业私有智能知识库!

作者头像
释然
发布2024-04-26 14:09:47
3170
发布2024-04-26 14:09:47
举报
文章被收录于专栏:释然IT杂谈释然IT杂谈

你是否也有这样的桌面?为了方便找材料,全部放到了桌面,最后结果就是“用起一时爽,找起火葬场”。

(图片来源于网络)

你是否也是盘即个人电脑磁使再怎么不够用,也舍不得删除几年前做的运维方案、架构方案、设计方案文档?最后即使文档都保存了,存云盘了,到用的时候依旧发现找不到,找的也不是想要的。

|大模型知识库来袭

现在不用再担心了找不到材料文档了,GitHub开源了一款可离线,支持检索增强生成(RAG)大模型的知识库项目。虽然开源时间不长,但是势头很猛,已经斩获25K Star。具备以下特点:

项目利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案;项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入;项目方案采用Apache License,可以免费商用,无需付费。

  • 项目利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案;
  • 项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入;
  • 项目方案采用Apache License,可以免费商用,无需付费。

总结下重点就是:

  • 支持中文,可私有化部署,免费商用!
  • 支持中文,可私有化部署,免费商用!
  • 支持中文,可私有化部署,免费商用!

重要的事情说三遍

代码语言:javascript
复制
项目名称:Langchain-Chatchat
项目地址:https://github.com/chatchat-space/Langchain-Chatchat

📺 原理介绍视频(点击可看视频)

从文档处理角度来看,实现流程如下:

技术路线图:

  • Langchain 应用
    • 基础React形式的Agent实现,包括调用计算器等
    • Langchain 自带的Agent实现和调用
    • 智能调用不同的数据库和联网知识
    • Bing 搜索
    • DuckDuckGo 搜索
    • Metaphor 搜索
    • 接入非结构化文档
    • 结构化数据接入
    • 分词及召回
    • .txt, .rtf, .epub, .srt
    • .eml, .msg
    • .html, .xml, .toml, .mhtml
    • .json, .jsonl
    • .md, .rst
    • .docx, .doc, .pptx, .ppt, .odt
    • .enex
    • .pdf
    • .jpg, .jpeg, .png, .bmp
    • .py, .ipynb
    • .csv, .tsv
    • .xlsx, .xls, .xlsd
    • 接入不同类型 TextSplitter
    • 优化依据中文标点符号设计的 ChineseTextSplitter
    • 本地数据接入
    • 搜索引擎接入
    • Agent 实现
  • LLM 模型接入
    • 支持通过调用 FastChat api 调用 llm
    • 支持 ChatGLM API 等 LLM API 的接入
    • 支持 Langchain 框架支持的LLM API 接入
  • Embedding 模型接入
    • 支持调用 HuggingFace 中各开源 Emebdding 模型
    • 支持 OpenAI Embedding API 等 Embedding API 的接入
    • 支持 智谱AI、百度千帆、千问、MiniMax 等在线 Embedding API 的接入
  • 基于 FastAPI 的 API 方式调用
  • Web UI
    • 基于 Streamlit 的 Web UI

|大模型知识库来袭

Docker 部署

一行代码搞定,但是建议网速不好的同学不要尝试

代码语言:javascript
复制
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7

常规模式本地部署方案

1. 环境配置

代码语言:javascript
复制
# 首先,确信你的机器安装了 Python 3.8 - 3.10 版本
$ python --version
Python 3.8.13

# 如果低于这个版本,可使用conda安装环境
$ conda create -p /your_path/env_name python=3.8

# 激活环境
$ source activate /your_path/env_name

# 或,conda安装,不指定路径, 注意以下,都将/your_path/env_name替换为env_name
$ conda create -n env_name python=3.8
$ conda activate env_name # Activate the environment

# 更新py库
$ pip3 install --upgrade pip

# 关闭环境
$ source deactivate /your_path/env_name

# 删除环境
$ conda env remove -p  /your_path/env_name

接着,开始安装项目的依赖

代码语言:javascript
复制
# 拉取仓库
$ git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git

# 进入目录
$ cd Langchain-Chatchat

# 安装全部依赖
$ pip install -r requirements.txt

# 默认依赖包括基本运行环境(FAISS向量库)。以下是可选依赖:
- 如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
- 如果要开启 OCR GPU 加速,请安装 rapidocr_paddle[gpu]
- 如果要使用在线 API 模型,请安装对用的 SDK
代码语言:javascript
复制

此外,为方便用户 API 与 webui 分离运行,可单独根据运行需求安装依赖包。

  • 如果只需运行 API,可执行:
代码语言:javascript
复制
$ pip install -r requirements_api.txt

# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
  • 如果只需运行 WebUI,可执行:
代码语言:javascript
复制
$ pip install -r requirements_webui.txt

2. 模型下载

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

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

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

代码语言:javascript
复制
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b
$ git clone https://huggingface.co/BAAI/bge-large-zh

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

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

代码语言:javascript
复制
$ python copy_config_example.py
$ python init_database.py --recreate-vs

4. 一键启动

按照以下命令启动项目

代码语言:javascript
复制
$ python startup.py -a

最轻模式本地部署方案

该模式的配置方式与常规模式相同,但无需安装 torch 等重依赖,通过在线API实现 LLM 和 Ebeddings 相关功能,适合没有显卡的电脑使用。

代码语言:javascript
复制
$ pip install -r requirements_lite.txt
$ python startup.py -a --lite

Demo示例

  • Web UI 对话界面:
  • Web UI 知识库管理页面:
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 技术路线图:
  • Docker 部署
  • 常规模式本地部署方案
    • 1. 环境配置
      • 2. 模型下载
        • 3. 初始化知识库和配置文件
          • 按照下列方式初始化自己的知识库和简单的复制配置文件
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档