OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  BishengJDK Minicpm OCR WebUI — 面向视觉理解与 OCR 的轻量演示项目

BishengJDK Minicpm OCR WebUI — 面向视觉理解与 OCR 的轻量演示项目

 
  system ·  2026-07-30 11:00:20 · 15 次点击  · 0 条评论  
Logo # **Q**uestion and **A**nswer based on **Anything** (基于任何内容的问答系统)

English | 简体中文 | 日本語

                             
目录 - [QAnything 是什么?](#qanything-是什么) - [核心特性](#核心特性) - [架构](#架构) - [最新更新](#-最新更新) - [开始前须知](#开始前须知) - [快速开始](#快速开始) - [环境要求](#环境要求) - [安装(纯 Python 环境)](#安装纯-python-环境) - [安装(Docker)](#安装docker) - [离线安装](#离线安装) - [常见问题](#常见问题) - [使用指南](#使用指南) - [API 文档](#api-文档) - [路线图与反馈](#%EF%B8%8F-路线图与反馈) - [社区与支持](#社区与支持) - [许可证](#许可证) - [致谢](#致谢)

🚀 重要更新

重要的事情说三遍。

2024-05-17:最新的安装与使用文档

2024-05-17:最新的安装与使用文档

2024-05-17:最新的安装与使用文档

商务联系方式:

010-82558901

QAnything 是什么?

QAnythingQuestion and Answer based on Anything)是一个本地知识库问答系统,旨在支持多种文件格式和数据库,支持离线安装和使用。

使用 QAnything,您只需放入任何格式的本地文件,即可获得准确、快速、可靠的答案。

当前支持的文件格式包括:PDF(pdf)Word(docx)PPT(pptx)XLS(xlsx)Markdown(md)Email(eml)TXT(txt)图片(jpg, jpeg, png)CSV(csv)网页链接(html)。更多格式即将推出...

核心特性

  • 数据安全:支持全程拔网线安装和使用。
  • 跨语言问答支持:无论文档是什么语言,都可以自由切换中英文问答。
  • 支持海量数据问答:两阶段检索排序,解决大规模数据检索性能下降问题;数据越多,性能越好。
  • 高性能生产级系统:可直接部署用于企业应用。
  • 用户友好:无需繁琐配置,一键安装部署,开箱即用。
  • 多知识库问答:支持选择多个知识库进行问答。

架构

qanything_system

为什么采用两阶段检索?

在知识库数据量大的场景下,两阶段方法的优势非常明显。如果仅使用第一阶段 embedding 检索,随着数据量增加会出现检索性能下降的问题(如下图中绿线所示)。但在第二阶段重排序(rerank)后,准确率能够稳定提升,数据越多,效果越好

two stage retrievaal

QAnything 使用检索组件 BCEmbedding,其以双语和跨语言能力著称。BCEmbedding 擅长弥合中英文语言差异,它实现了:

  • 在 MTEB 语义表示评估中取得高性能
  • 在 LlamaIndex 的 RAG 评估中树立了新标杆

第一阶段检索(embedding)

Model Retrieval STS PairClassification Classification Reranking Clustering Avg
bge-base-en-v1.5 37.14 55.06 75.45 59.73 43.05 37.74 47.20
bge-base-zh-v1.5 47.60 63.72 77.40 63.38 54.85 32.56 53.60
bge-large-en-v1.5 37.15 54.09 75.00 59.24 42.68 37.32 46.82
bge-large-zh-v1.5 47.54 64.73 79.14 64.19 55.88 33.26 54.21
jina-embeddings-v2-base-en 31.58 54.28 74.84 58.42 41.16 34.67 44.29
m3e-base 46.29 63.93 71.84 64.08 52.38 37.84 53.54
m3e-large 34.85 59.74 67.69 60.07 48.99 31.62 46.78
bce-embedding-base_v1 57.60 65.73 74.96 69.00 57.29 38.95 59.43

第二阶段检索(rerank)

Model Reranking Avg
bge-reranker-base 57.78 57.78
bge-reranker-large 59.69 59.69
bce-reranker-base_v1 60.06 60.06

LlamaIndex 中的 RAG 评估(embedding 和 rerank)

注意:

  • WithoutReranker 设置中,我们的 bce-embedding-base_v1 优于所有其他 embedding 模型。
  • 在固定 embedding 模型的情况下,我们的 bce-reranker-base_v1 取得了最佳性能。
  • bce-embedding-base_v1bce-reranker-base_v1 的组合是当前最优方案 (SOTA)
  • 如果您想单独使用 embedding 和 rerank,请参考 BCEmbedding

LLM

QAnything 的开源版本基于 QwenLM,并在大量专业问答数据集上进行了微调,极大地增强了问答能力。
如果您需要将其用于商业目的,请遵循 QwenLM 的许可证。更多详情请参考:QwenLM

🚀 最新更新

  • 2024-05-20支持与 OpenAI API 兼容的其他大模型服务,并提供优化的强大 PDF 解析器。 - 查看更多👉 v1.4.1
  • 2024-04-26支持联网搜索、FAQ、自定义机器人、文件溯源预览等。 - 查看更多👉 v1.4.0
  • 2024-04-03支持纯 Python 环境安装。支持混合搜索。 - 查看更多👉 v1.3.0
  • 2024-01-29支持自定义大模型,包括 OpenAI API 和其他开源大模型,最低 GPU 要求为 GTX 1050Ti,大大提升了部署、调试和用户体验。 - 查看更多👉 v1.2.0
  • 2024-01-23默认启用重排序,并修复了 Windows 启动时的各种问题。 - 查看更多👉 v1.1.1
  • 2024-01-18支持一键启动,支持 Windows 部署,提升了 PDF、XLSX、HTML 的解析效率。 - 查看更多👉 v1.1.0

开始前须知

在 GitHub 上为我们加星,以便在发布新版本时立即收到通知!
star_us

快速开始

安装方法

我们提供两个版本:Python 版本和 Docker 版本。
Python 版本适合快速体验新功能,Docker 版本适合二次开发和实际生产环境使用,暂时不支持新功能。

不同安装方法对应的功能如下:

功能 Python 版本 Docker 版本 说明
详细安装文档 详情 详情
支持 API 详情 详情
支持生产环境
支持离线安装(私有部署) 详情
支持多并发 详情 Python 版本在使用 API 而非本地大模型时,可以手动设置。 详情
支持多卡推理 详情
支持 Mac(M 系列芯片) 目前在 Mac 上运行本地 LLM 依赖于 llamacpp,问答速度较慢。建议使用 OpenAI API 调用模型服务。
支持 Linux Python 版本在 Linux 上默认使用 onnxruntime-gpu,当 glibc<2.28 时自动切换到 onnxruntime。
支持 Windows WSL
支持纯 CPU 详情
支持混合搜索(BM25+embedding)
支持联网搜索(需要 VPN) 详情 Docker 版本计划中。
支持 FAQ 详情 Docker 版本计划中。
支持机器人 详情 Docker 版本计划中。
支持溯源 详情 Docker 版本计划中。
支持通过 API 检索日志 详情 Docker 版本计划中。
支持音频文件 Docker 版本计划中,上传文件将支持 mp3 和 wav 格式文件。
支持 OpenCloudOS 详情
支持兼容 OpenAI API 的接口(包括 ollama) 详情 详情 需要手动设置 api_key, base_url, model 等参数。
PDF 解析性能提升(包括表格) 详情
用户自定义配置(实验性:提升速度) 详情
其他文件类型解析性能提升 预计下个版本发布,约 15 天后。

安装(纯 Python 环境)

如果您不想使用 Docker 安装,我们提供了一份纯 Python 安装指南。纯 Python 环境仅用于演示目的,不建议在生产环境中部署。

  • 支持仅 CPU 安装(检索运行在 CPU 上,LLM 调用在线 API)。
  • 支持在 Mac 上安装。

安装(Docker)

环境要求

对于 Linux

系统 所需项目 最低要求 备注
Linux NVIDIA GPU 内存 >= 4GB (使用 OpenAI API) 最低:GTX 1050Ti (使用 OpenAI API)
推荐:RTX 3090
NVIDIA 驱动版本 >= 525.105.17
Docker 版本 >= 20.10.5 Docker 安装
docker compose 版本 >= 2.23.3 docker compose 安装
git-lfs git-lfs 安装

对于带有 WSL Ubuntu 子系统的 Windows

系统 所需项目 最低要求 备注
带有 WSL Ubuntu 子系统的 Windows NVIDIA GPU 内存 >= 4GB (使用 OpenAI API) 最低:GTX 1050Ti (使用 OpenAI API)
推荐:RTX 3090
GEFORCE EXPERIENCE >= 546.33 GEFORCE EXPERIENCE 下载
Docker Desktop >= 4.26.1(131620) 适用于 Windows 的 Docker Desktop
git-lfs git-lfs 安装

懒人安装步骤,请点击此处。

第一步:克隆 QAnything 仓库

git clone https://github.com/netease-youdao/QAnything.git

第二步:进入项目根目录并执行启动脚本

cd QAnything
bash run.sh  # 默认在 GPU 0 上启动。
(注意) 如果自动下载失败,您可以从以下三个地址之一手动下载模型。 modelscope: https://modelscope.cn/models/netease-youdao/QAnything wisemodel: https://wisemodel.cn/models/Netease_Youdao/qanything huggingfase: https://huggingface.co/netease-youdao/QAnything
(可选) 指定 GPU 启动
cd QAnything
bash ./run.sh -c local -i 0 -b default  # gpu id 0
(可选) 指定 GPU 启动 - 适用于 Windows10/Windows11 WSL2 用户
# 对于 Windows 操作系统:需要进入 **WSL2** 环境。
# 第一步:下载公开的 LLM 模型(例如 Qwen-7B-QAnything)并保存到 "/path/to/QAnything/assets/custom_models"
# (可选) 从 ModelScope 下载 Qwen-7B-QAnything:https://www.modelscope.cn/models/netease-youdao/Qwen-7B-QAnything
# (可选) 从 Huggingface 下载 Qwen-7B-QAnything:https://huggingface.co/netease-youdao/Qwen-7B-QAnything
cd QAnything/assets/custom_models
git clone https://huggingface.co/netease-youdao/Qwen-7B-QAnything

# 第二步:执行服务启动命令。这里使用 "-b hf" 指定 Huggingface transformers 后端。
cd ../../
bash ./run.sh -c local -i 0 -b hf -m Qwen-7B-QAnything -t qwen-7b-qanything
(可选) 指定 GPU 启动 - 适用于 GPU 计算能力 >= 8.6 且显存 >= 24GB
# GPU 计算能力:https://developer.nvidia.com/cuda-gpus
# 第一步:下载公开的 LLM 模型(例如 Qwen-7B-QAnything)并保存到 "/path/to/QAnything/assets/custom_models"
# (可选) 从 ModelScope 下载 Qwen-7B-QAnything:https://www.modelscope.cn/models/netease-youdao/Qwen-7B-QAnything
# (可选) 从 Huggingface 下载 Qwen-7B-QAnything:https://huggingface.co/netease-youdao/Qwen-7B-QAnything
cd QAnything/assets/custom_models
git clone https://huggingface.co/netease-youdao/Qwen-7B-QAnything

# 第二步:执行服务启动命令。这里使用 "-b vllm" 指定 vllm 后端。
cd ../../
bash ./run.sh -c local -i 0 -b vllm -m Qwen-7B-QAnything -t qwen-7b-qanything -p 1 -r 0.85
(可选) 指定多 GPU 启动
cd QAnything
bash ./run.sh -c local -i 0,1 -b default  # gpu ids: 0,1,请确认可用 GPU 数量。最多支持两张卡启动。

第三步:开始体验

前端

安装成功后,您可以在 Web 浏览器中输入以下地址进行体验。

  • 前端地址:http://your_host:8777/qanything/

API

如果您想访问 API,请参考以下地址:

调试

如果您想查看相关日志,请检查 QAnything/logs/debug_logs 目录下的日志文件。

  • debug.log
  • 用户请求处理日志
  • sanic_api.log
  • 后端服务运行日志
  • llm_embed_rerank_tritonserver.log(单卡部署)
  • LLM embedding 和 rerank tritonserver 服务启动日志
  • llm_tritonserver.log(多卡部署)
  • LLM tritonserver 服务启动日志
  • embed_rerank_tritonserver.log(多卡部署或使用 OpenAI 接口时)
  • Embedding 和 rerank tritonserver 服务启动日志
  • rerank_server.log
  • Rerank 服务运行日志
  • ocr_server.log
  • OCR 服务运行日志
  • npm_server.log
  • 前端服务运行日志
  • llm_server_entrypoint.log
  • LLM 中间服务运行日志
  • fastchat_logs/*.log
  • FastChat 服务运行日志

关闭服务

如果您在 Windows11 系统上:需要进入 WSL 环境。

bash close.sh

离线安装

如果您想离线安装 QAnything,可以使用以下命令启动服务。

Windows 离线安装

# 在一台联网的机器上下载 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-win:v1.2.x  # 从 [https://github.com/netease-youdao/QAnything/blob/master/docker-compose-windows.yaml#L103] 获取最新版本号。

# 打包镜像
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-win:v1.2.1 -o qanything_offline.tar

# 下载 QAnything 代码
wget https://github.com/netease-youdao/QAnything/archive/refs/heads/master.zip

# 将镜像 qanything_offline.tar 和代码 qany-master.zip 复制到离线机器上
cp QAnything-master.zip qanything_offline.tar /path/to/your/offline/machine

# 在离线机器上加载镜像
docker load -i qanything_offline.tar

# 解压代码并运行
unzip QAnything-master.zip
cd QAnything-master
bash run.sh

Linux 离线安装

# 在一台联网的机器上下载 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.x  # 从 [https://github.com/netease-youdao/qanything/blob/master/docker-compose-linux.yaml#L104] 获取最新版本号。

# 打包镜像
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

# 下载 QAnything 代码
wget https://github.com/netease-youdao/QAnything/archive/refs/heads/master.zip

# 将镜像 qanything_offline.tar 和代码 qany-master.zip 复制到离线机器上
cp QAnything-master.zip qanything_offline.tar /path/to/your/offline/machine

# 在离线机器上加载镜像
docker load -i qanything_offline.tar

# 解压代码并运行
unzip QAnything-master.zip
cd QAnything-master
bash run.sh

常见问题

FAQ

使用指南

跨语言:多篇英文论文问答

信息提取

多种文件

网页问答

API 文档

如果您需要访问 API,请参考 QAnything API 文档

贡献

我们感谢您对本项目的贡献兴趣。无论是修复错误、改进现有功能还是添加全新的功能,都欢迎您的贡献!

感谢所有贡献者的努力



🛣️ 路线图与反馈

🔎 要了解 QAnything 的未来计划和进度,请参阅:QAnything 路线图

🤬 要向 QAnything 提供反馈,请参阅:QAnything 反馈

社区与支持

Discord

欢迎加入 QAnything Discord 社区

微信

欢迎关注 QAnything 微信公众号获取最新信息。

欢迎扫码加入 QAnything 讨论群。

邮件

如果您需要私下联系我们的团队,请通过以下电子邮件与我们联系:

qanything@rd.netease.com

GitHub issues & discussions

通过以下方式之一联系维护者:


Logo

Star 历史

Star History Chart

许可证

QAnything 使用 Apache 2.0 许可证

致谢

QAnything 采用了以下依赖:

  • 感谢我们的 BCEmbedding 提供了优秀的 embedding 和 rerank 模型。
  • 感谢 Qwen 提供了强大的基础语言模型。
  • 感谢 Triton Inference Server 提供了出色的开源推理服务。
  • 感谢 FastChat 提供了完全兼容 OpenAI 的 API 服务。
  • 感谢 FasterTransformervllm 提供了高度优化的 LLM 推理后端。
  • 感谢 Langchain 提供了优秀的 LLM 应用框架。
  • 感谢 Langchain-Chatchat 在本地知识库问答方面提供的灵感。
  • 感谢 Milvus 提供了优秀的语义搜索库。
  • 感谢 PaddleOCR 提供了易用的 OCR 库。
  • 感谢 Sanic 提供了强大的 Web 服务框架。
  • 感谢 RAGFlow 提供了一些文档解析的思路。
15 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 49 ms
Developed with Cursor