一、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.4docker 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_nameconv_templateSupported Pulic LLM List
Qwen-7B-QAnythingqwen-7b-qanythingQwen-7B-QAnything
Qwen-1_8B-Chat/Qwen-7B-Chat/Qwen-14B-Chatqwen-7b-chatQwen
Baichuan2-7B-Chat/Baichuan2-13B-Chatbaichuan2-chatBaichuan2
MiniChat-2-3BminichatMiniChat
deepseek-llm-7b-chatdeepseek-chatDeepseek
Yi-6B-ChatYi-34b-chatYi
chatglm3-6bchatglm3ChatGLM3

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问答演示

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐