一、QAnything介绍
(一)简介
QAnything 是网易有道开源的一个问答系统框架,支持私有化部署和SaaS服务两种调用形式。它能够支持多种格式的文件或数据库,提供准确、快速和可靠的问答体验。目前已支持的文件格式包括PDF、Word、PPT、Markdown、Eml、TXT、图片(jpg、png等)以及网页链接等。
(二)特点
- 数据安全,支持全程拔网线安装使用。
- 支持跨语种问答,中英文问答随意切换,无所谓文件是什么语种。
- 支持海量数据问答,两阶段向量排序,解决了大规模数据检索退化的问题,数据越多,效果越好。
- 高性能生产级系统,可直接部署企业应用。
- 易用性,无需繁琐的配置,一键安装部署,拿来就用。
- 支持选择多知识库问答。
(三)架构图
QAnything项目是基于langchain,fastchat,transformer,fasttransformer等一系列框架实现的。它有四部分组成:
- 前端服务
- 检索模型服务
- 大模型问答服务
- 知识库实现
整体框架是基于docker运行的, 不管是windows还是linux , 都是基于docker运行。
二、离线部署(以Linux系统为例)
(一)部署 条件
确保你的电脑或服务器满足以下要求:
必要项 | 最低要求 | 备注 |
---|---|---|
NVIDIA GPU Memory | >= 16GB | 推荐NVIDIA 3090 |
NVIDIA Driver 版本 | >= 525.105.17 | |
CUDA 版本 | >= 12.0 | |
docker compose 版本 | >=1.27.4 | docker compose 安装教程 |
(二)打包镜像
1.先在联网机器上下载docker镜像
docker pull quay.io/coreos/etcd:v3.5.5
docker pull minio/minio:RELEASE.2023-03-20T20-16-18Z
docker pull milvusdb/milvus:v2.3.4
docker pull mysql:latest
docker pull freeren/qanything:v1.2.1
2.打包镜像
docker save quay.io/coreos/etcd:v3.5.5 minio/minio:RELEASE.2023-03-20T20-16-18Z milvusdb/milvus:v2.3.4 mysql:latest freeren/qanything:v1.2.1 -o qanything_offline.tar
3.将镜像压缩包复制到断网机器上,并且在断网机器上加载镜像
docker load -i qanything_offline.tar
(三)下载本项目
git clone https://github.com/netease-youdao/QAnything
(四)下载大模型
1.大模型支持列表
model_name | conv_template | Supported Pulic LLM List |
---|---|---|
Qwen-7B-QAnything | qwen-7b-qanything | Qwen-7B-QAnything |
Qwen-1_8B-Chat/Qwen-7B-Chat/Qwen-14B-Chat | qwen-7b-chat | Qwen |
Baichuan2-7B-Chat/Baichuan2-13B-Chat | baichuan2-chat | Baichuan2 |
MiniChat-2-3B | minichat | MiniChat |
deepseek-llm-7b-chat | deepseek-chat | Deepseek |
Yi-6B-Chat | Yi-34b-chat | Yi |
chatglm3-6b | chatglm3 | ChatGLM3 |
2.下载大模型(以qwen为例)
切换到assets/custom_models下面
cd assets/custom_models/
去魔搭社区下载Qweb-7B-QAnything
(五)运行代码
运行阿里qwen模型, 如果要换其他模型,可以查阅docs/QAnything_Startup_Usage_README.md 这个文档。
bash ./run.sh -c local -i 0 -b hf -m Qwen-7B-QAnything -t qwen-7b-qanything
运行过程要输入参数(7B) , remote 或local (我选的是remote) , 最后是ip。
remote 和local的区别在于是不是在远程服务器上运行代码,如果是的话,就选择remote,然后年后输入远程服务器ip地址,这样就能够在别的主机上访问。
在运行的过程中,可能会遇到一些前端报错的情况,不需要处理,等运行完就好。
(六)测试
安装成功后,可以在浏览器中输入以下地址进行体验:
- 前端地址:
http://{your_host}:5052/qanything
- API地址:
http://{your_host}:5052/api/
三、效果
最后我们展示下网易qanything的问答效果。
网易qanything问答演示