[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-netease-youdao--QAnything":3,"tool-netease-youdao--QAnything":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,35],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":73,"owner_location":76,"owner_email":75,"owner_twitter":75,"owner_website":77,"owner_url":78,"languages":79,"stars":111,"forks":112,"last_commit_at":113,"license":114,"difficulty_score":10,"env_os":115,"env_gpu":116,"env_ram":117,"env_deps":118,"category_tags":123,"github_topics":75,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":124,"updated_at":125,"faqs":126,"releases":155},4290,"netease-youdao\u002FQAnything","QAnything","Question and Answer based on Anything.","QAnything 是一款由网易有道开源的本地知识库问答系统，其核心理念是“基于任何内容进行问答”。它旨在解决大模型在面对私有数据、长文档或专业资料时容易产生幻觉或无法获取最新信息的问题。通过先进的检索增强生成（RAG）技术，QAnything 能够让用户上传 PDF、Word、Markdown 甚至图片等多种格式的文件，系统会自动解析并建立索引，从而实现对私有数据的精准检索与自然语言问答。\n\n这款工具特别适合企业开发者、研究人员以及需要管理大量内部文档的团队使用。无论是构建企业智能客服、个人知识助手，还是进行学术文献调研，QAnything 都能提供可靠支持。其技术亮点在于强大的多格式解析能力，尤其是对复杂排版和表格的处理效果显著；同时，2.0 版本大幅优化了系统架构，降低了资源消耗，并支持通过一条 Docker 命令实现一键部署，既适合在线服务也完全支持离线私有化运行。凭借开箱即用的便捷性和对数据隐私的严格保护，QAnything 让每个人都能轻松拥有专属的 AI 知识大脑。","\u003Cdiv align=\"center\">\n\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\">\n    \u003C!-- Please provide path to your logo here -->\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_614893f6aa49.png\" alt=\"Logo\" width=\"800\">\n  \u003C\u002Fa>\n\n# **Q**uestion and **A**nswer based on **Anything**\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FREADME.md\">English\u003C\u002Fa> |\n  \u003Ca href=\".\u002FREADME_zh.md\">简体中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n\u003Ca href=\"https:\u002F\u002Fqanything.ai\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftry%20online-qanything.ai-purple\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fread.youdao.com#\u002Fhome\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftry%20online-read.youdao.com-purple\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\n\u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0-yellow\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpulls\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-red\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002FYDopensource\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffollow-%40YDOpenSource-1DA1F2?logo=twitter&style={style}\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F5uNpPsEJz8\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1197874288963895436?style=social&logo=discord\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\n\n\n\u003C\u002Fdiv>\n\n\u003Cdetails open=\"open\">\n\u003Csummary>Table of Contents\u003C\u002Fsummary>\n\n- [What is QAnything](#what-is-qanything)\n  - [Key features](#key-features)\n  - [Architecture](#architecture)\n- [Latest Updates](#-latest-updates)\n- [Before You Start](#before-you-start)\n- [Getting Started](#getting-started)\n  - [Latest Features Table](#latest-features-table)\n  - [Version 2.0.0 adds detailed optimizations:](#version-200-adds-detailed-optimizations)\n    - [Display of data at each stage:](#display-of-data-at-each-stage)\n    - [Problem fixed](#problem-fixed)\n  - [Comparison of New and Old Parsing Effects](#comparison-of-new-and-old-parsing-effects)\n  - [Installation](#installation)\n    - [Prerequisites](#prerequisites)\n    - [step1: pull qanything repository](#step1-pull-qanything-repository)\n    - [step2: Enter the project root directory and execute the startup command.](#step2-enter-the-project-root-directory-and-execute-the-startup-command)\n    - [step3: start to experience](#step3-start-to-experience)\n    - [API](#api)\n    - [DEBUG](#debug)\n    - [Close service](#close-service)\n  - [Offline Use](#offline-use)\n  - [FAQ](#faq)\n  - [Contributing](#contributing)\n    - [Thanks to all contributors for their efforts](#thanks-to-all-contributors-for-their-efforts)\n    - [Special thanks!](#special-thanks)\n  - [Business contact information：](#business-contact-information)\n- [Roadmap & Feedback](#-roadmap--feedback)\n- [Community & Support](#community--support)\n- [License](#license)\n- [Acknowledgements](#acknowledgments)\n\n\u003C\u002Fdetails>\n\n# 🚀 Important Updates \n\u003Ch1>\u003Cspan style=\"color:red;\">Important things should be said three times.\u003C\u002Fspan>\u003C\u002Fh1>\n\n# [2024-08-23: QAnything updated to version 2.0.] \n# [2024-08-23: QAnything updated to version 2.0.]\n# [2024-08-23: QAnything updated to version 2.0.]\n\n\u003Ch2>\n\n* \u003Cspan style=\"color:green\">This update brings improvements in various aspects such as usability, resource consumption, search results, question and answer results, parsing results, front-end effects, service architecture, and usage methods.\u003C\u002Fspan>\n* \u003Cspan style=\"color:green\">At the same time, the old Docker version and Python version have been merged into a new unified version, using a single-line command with Docker Compose for one-click startup, ready to use out of the box.\u003C\u002Fspan>\n\n\u003C\u002Fh2>\n\n\n## Contributing\nWe appreciate your interest in contributing to our project. Whether you're fixing a bug, improving an existing feature, or adding something completely new, your contributions are welcome!\n### Thanks to all contributors for their efforts\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5d07d30aadd4.png\" \u002F>\n\u003C\u002Fa>\n\n### Special thanks!\n\u003Ch2>\u003Cspan style=\"color:red;\">Please note: Our list of contributors is automatically updated, so your contributions may not appear immediately on this list.\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Ch2>\u003Cspan style=\"color:red;\">Special thanks!：@ikun-moxiaofei\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Ch2>\u003Cspan style=\"color:red;\">Special thanks!：@Ianarua\u003C\u002Fspan>\u003C\u002Fh2>\n\n\n## Business contact information：\n### 010-82558901\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_89d60b3e55d6.jpeg)\n\n# What is QAnything?\n`QAnything`(**Q**uestion and **A**nswer based on **Anything**) is a local knowledge base question-answering system designed to support a wide range of file formats and databases, allowing for offline installation and use.\n\nWith `QAnything`, you can simply drop any locally stored file of any format and receive accurate, fast, and reliable answers.\n\nCurrently supported formats include: **PDF(pdf)**,**Word(docx)**,**PPT(pptx)**,**XLS(xlsx)**,**Markdown(md)**,**Email(eml)**,**TXT(txt)**,**Image(jpg，jpeg，png)**,**CSV(csv)**,**Web links(html)** and more formats coming soon…\n\n\n## Key features\n\n- Data security, supports installation and use by unplugging the network cable throughout the process. \n- Supports multiple file types, high parsing success rate, supports cross-language question and answer, freely switches between Chinese and English question and answer, regardless of the language of the file.\n- Supports massive data question and answer, two-stage vector sorting, solves the problem of degradation of large-scale data retrieval, the more data, the better the effect, no limit on the number of uploaded files, fast retrieval speed. \n- Hardware friendly, defaults to running in a pure CPU environment, and supports multiple platforms such as Windows, Mac, and Linux, with no dependencies other than Docker. \n- User-friendly, no need for cumbersome configuration, one-click installation and deployment, ready to use, each dependent component (PDF parsing, OCR, embed, rerank, etc.) is completely independent, supports free replacement. \n- Supports a quick start mode similar to Kimi, fileless chat mode, retrieval mode only, custom Bot mode.\n\n\n\n\n## Architecture\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_4b1cf0e432cd.png\" width = \"700\" alt=\"qanything_system\" align=center \u002F>\n\u003C\u002Fdiv>\n\n### Why 2 stage retrieval?\nIn scenarios with a large volume of knowledge base data, the advantages of a two-stage approach are very clear. If only a first-stage embedding retrieval is used, there will be a problem of retrieval degradation as the data volume increases, as indicated by the green line in the following graph. However, after the second-stage reranking, there can be a stable increase in accuracy, **the more data, the better the performance**.\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_74438974bb41.jpg\" width = \"500\" alt=\"two stage retrievaal\" align=center \u002F>\n\u003C\u002Fdiv>\n\nQAnything uses the retrieval component [BCEmbedding](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding), which is distinguished for its bilingual and crosslingual proficiency. BCEmbedding excels in bridging Chinese and English linguistic gaps, which achieves\n- **A high performance on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding\u002Ftree\u002Fmaster?tab=readme-ov-file#evaluate-semantic-representation-by-mteb\" target=\"_Self\">Semantic Representation Evaluations in MTEB\u003C\u002Fa>**;\n- **A new benchmark in the realm of \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding\u002Ftree\u002Fmaster?tab=readme-ov-file#evaluate-rag-by-llamaindex\" target=\"_Self\">RAG Evaluations in LlamaIndex\u003C\u002Fa>**.\n\n\n### 1st Retrieval（embedding）\n| Model | Retrieval | STS | PairClassification | Classification | Reranking | Clustering | Avg |  \n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|  \n| bge-base-en-v1.5 | 37.14 | 55.06 | 75.45 | 59.73 | 43.05 | 37.74 | 47.20 |  \n| bge-base-zh-v1.5 | 47.60 | 63.72 | 77.40 | 63.38 | 54.85 | 32.56 | 53.60 |  \n| bge-large-en-v1.5 | 37.15 | 54.09 | 75.00 | 59.24 | 42.68 | 37.32 | 46.82 |  \n| bge-large-zh-v1.5 | 47.54 | 64.73 | **79.14** | 64.19 | 55.88 | 33.26 | 54.21 |  \n| jina-embeddings-v2-base-en | 31.58 | 54.28 | 74.84 | 58.42 | 41.16 | 34.67 | 44.29 |  \n| m3e-base | 46.29 | 63.93 | 71.84 | 64.08 | 52.38 | 37.84 | 53.54 |  \n| m3e-large | 34.85 | 59.74 | 67.69 | 60.07 | 48.99 | 31.62 | 46.78 |  \n| ***bce-embedding-base_v1*** | **57.60** | **65.73** | 74.96 | **69.00** | **57.29** | **38.95** | ***59.43*** |  \n\n- More evaluation details please check [Embedding Models Evaluation Summary](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding\u002Fblob\u002Fmaster\u002FDocs\u002FEvaluationSummary\u002Fembedding_eval_summary.md)。\n\n### 2nd Retrieval（rerank）\n| Model | Reranking | Avg |  \n|:-------------------------------|:--------:|:--------:|  \n| bge-reranker-base | 57.78 | 57.78 |  \n| bge-reranker-large | 59.69 | 59.69 |  \n| ***bce-reranker-base_v1*** | **60.06** | ***60.06*** |  \n\n- More evaluation details please check [Reranker Models Evaluation Summary](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding\u002Fblob\u002Fmaster\u002FDocs\u002FEvaluationSummary\u002Freranker_eval_summary.md)\n\n### RAG Evaluations in LlamaIndex（embedding and rerank）\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_a900c7daa926.jpg\">\n\n***NOTE:***\n\n- In `WithoutReranker` setting, our `bce-embedding-base_v1` outperforms all the other embedding models.\n- With fixing the embedding model, our `bce-reranker-base_v1` achieves the best performance.\n- **The combination of `bce-embedding-base_v1` and `bce-reranker-base_v1` is SOTA**.\n- If you want to use embedding and rerank separately, please refer to [BCEmbedding](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding)\n\n### LLM\n\nThe open source version of QAnything is based on QwenLM and has been fine-tuned on a large number of professional question-answering datasets. It greatly enhances the ability of question-answering.\nIf you need to use it for commercial purposes, please follow the license of QwenLM. For more details, please refer to: [QwenLM](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen)\n\n# 🚀 Latest Updates\n\n- ***2024-08-23***: **Support quick start, front-end configuration parameters, online preview and editing of chunk blocks, greatly optimize project architecture and startup mode, greatly optimize parsing and retrieval effects.** - See More👉 [v2.0.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv2.0.0) \n- ***2024-05-20***: **Support other large model services compatible with OpenAI API, and provide an optimized powerful PDF parser.** - See More👉 [v1.4.1](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.4.1)\n- ***2024-04-26***: **Support web search, FAQ, custom bot, file traceability preview etc.** - See More👉 [v1.4.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.4.0-python)\n- ***2024-04-03***: **Support installation in a pure Python environment.Support hybrid search.** - See More👉 [v1.3.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.3.0)\n- ***2024-01-29***: **Support for custom large models, including OpenAI API and other open-source large models, with a minimum GPU requirement of GTX 1050Ti, greatly improving deployment, debugging, and user experience.** - See More👉 [v1.2.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.2.0)\n- ***2024-01-23***: **Enable rerank by default and fix various issues when starting on Windows.** - See More👉 [v1.1.1](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.1.1)\n- ***2024-01-18***: **Support one-click startup, support Windows deployment, improve PDF, XLSX, HTML parsing efficiency.** - See More👉 [v1.1.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.1.0)\n\n# Before You Start\n**Star us on GitHub, and be instantly notified for new release!**\n![star_us](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_ebe4db059ee2.png)\n* [🏄 Try QAnything Online](https:\u002F\u002Fqanything.ai)\n* [📚 Try read.youdao.com | 有道速读](https:\u002F\u002Fread.youdao.com)\n* [🛠️ Only use our BCEmbedding(embedding & rerank)](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding)\n* [📖 FAQ](FAQ_zh.md)\n* [👂️Let me hear your voice](https:\u002F\u002Fqanything.canny.io\u002Ffeature-requests)\n\n\n# Getting Started\n## Latest Features Table\n\n\n| features                                                             | python （v1.4.2） | docker （v1.2.2） | QAnything v2.0.0 | Explanation                                                                                                                                                                                                     |\n|----------------------------------------------------------------------|-----------------|-----------------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Detailed installation document                                       | ✅               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| Support API                                                          | ✅               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| Support production environment                                       | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| Support offline use                                                  | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| Support multiple concurrency                                         | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| Support multi-card inference                                         | ❌               | ✅               | ❌                | Version 2.0.0 no longer provides default local LLM. All access is through the openai interface, and users can deploy local LLM through tools such as ollama.                                                    |\n| Support Mac (M series chips)                                         | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support Linux                                                        | ✅               | ✅               | ✅                | The old version of Python defaults to using onnxruntime-gpu for cuda12 on Linux, and automatically switches to onnxruntime when glibc\u003C2.28.                                                                     |\n| Support windows                                                      | ❌               | ❌               | ✅                | Both old versions of Python and Docker require WSL environment. Version 2.0.0 can be started directly in a non-WSL environment.                                                                                 |\n| Support CPU only                                                     | ✅               | ❌               | ✅                | Version 2.0.0 Mac, Linux, Win unified no longer use GPU, completely migrated to CPU.                                                                                                                            |\n| Support hybrid search (BM25+embedding)                               | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| Support web search (need VPN)                                        | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support FAQ                                                          | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support BOT                                                          | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support Traceability                                                 | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support Log retrieval                                                | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support audio file                                                   | ✅               | ❌               | ❌                | Relying on whisper, slow speed and high resource consumption, temporarily removed.                                                                                                                              |\n| Support OpenCloudOS                                                  | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| Support interfaces compatible with Openaiapi (including ollama)      | ✅               | ✅               | ✅                | Old versions of Python and Docker require manual modification of parameters such as api_key, base_url, model, etc. In version 2.0.0, these are all changed to be automatically saved in the front end settings. |\n| PDF parsing performance improvement (including tables)               | ✅               | ❌               | ✅                | Version 1.4.2 requires manual settings, version 2.0.0 does not require manual settings, and both the PDF parsing effect and performance have been improved.                                                     |\n| User-defined configuration (Experimental: Improve speed)             | ✅               | ❌               | ✅                | v1.4.2 needs to be set manually, v2.0.0 uses the best configuration by default.                                                                                                                                 |\n| Improvement in parsing performance of other file types               | ❌               | ❌               | ✅                | Version 2.0.0 improves the parsing effect of URLs, Markdown, XLSX, DOCX, etc.                                                                                                                                   |\n| Support independent service invocation                               | ❌               | ❌               | ✅                | Version 2.0.0 independent dependent services, including embed, rerank, ocr, pdf parsing services, can be called independently (http)                                                                            |\n| Support quick start mode                                             | ❌               | ❌               | ✅                | Quick Start: No need to create a knowledge base, support for file upload and instant questioning, support for fileless Q&A.                                                                                     |\n| Support only retrieval mode                                          | ❌               | ❌               | ✅                | Only return search results, do not call the large model for question answering.                                                                                                                                 |\n| Support parsing result chunks content visualization, manual editing. | ❌               | ❌               | ✅                | Version 2.0.0 supports manually editing the contents of chunks, which take effect in real time.                                                                                                                 |\n| PDF parsing supports images, supports answering with images.         | ❌               | ❌               | ✅                |                                                                                                                                                                                                                 |\n\n\n## Version 2.0.0 adds detailed optimizations:\n\n* Support front-end configuration API_BASE, API_KEY, text chunk size, output token quantity, context message quantity, etc.\n* Optimize the instruction compliance of Bot role settings, each Bot can configure model parameters separately.\n* Support creating multiple dialogue windows and saving multiple sets of historical Q&A records at the same time.\n* Support saving question and answer records as images\n* Optimize the logic of uploading files, parse files and question-and-answer requests independently, uploading files will no longer affect question-and-answer.\n* Optimize image size, the compressed size of the old version image is 18.94GB -> the compressed size of the new version image is 4.88GB, reduced to 1\u002F4 of the original size, providing a complete Dockerfile.\n* Search optimization, chunks add fragment fusion and sorting, aggregate single document or double document.\n* Both the retrieval stage and the question-answering stage embed metadata information to improve the retrieval and question-answering effectiveness. \n\n### Display of data at each stage:\n* Display the upload progress of all files in the knowledge base.\n* Display the progress of uploading a single file in the knowledge base, and the time consumed in each stage of the upload.\n* Question and answer information statistics, including time consumption at each stage of question and answer, token consumption, model information, etc.\n* User information statistics, including total number of uploaded files, total time consumed, question and answer history records, etc.\n\n### Problem fixed\n* The xlsx file format supports parsing multiple sheets.\n* Optimize the problem of missing recognition of PDF tables.\n* Fix some parsing errors in DOCX files.\n* Optimize FAQ matching logic.\n* Support for non-UTF-8 encoded txt files. \n\n## Comparison of New and Old Parsing Effects\n* First, with regard to the parsing of large tables in documents, especially tables that span multiple pages, version 2.0 has made significant improvements. The new version's parsing logic can analyze the structure of the table, including the layout of rows and columns, and can automatically identify the table headers, placing them at the top of each table segment that is split. This improvement prevents interruptions in meaning caused by logical segmentation when parsing long tables.\n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_9048f811a206.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_68a7b61a5364.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_c40ac375e29c.png) |\n\n* In addition, version 2.0 has also been optimized for handling text columnation and cross-page layout. It can recognize double-column or multi-column layouts of text and correctly divide text blocks in accordance with human reading habits. At the same time, this version can also save images in documents to ensure the integrity of content is not lost during file parsing. As shown in the figure below, the correct arrangement should be to group the text arranged in sequence as 1, 2, 3 into a large paragraph and then segment it, rather than segmenting 1, 2, 3 separately.\n  * In version 1.4 parsing results, the cross-page text \"higher\" was chunked into the next text block, which is detrimental to large model semantic understanding. In version 2.0 parsing results, it is correctly divided, and images interspersed in text paragraphs are also parsed into corresponding chunk statements. Non-main text such as \"Figure 1 Identification and Authorization and Their Support Relationship 37\" and \"Cover Story Cover Feature\" were successfully filtered out.\n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_3a9cfd77d6f6.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_635700761acc.png)\u003Cbr\u002F>![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_47065dc3a1b5.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_0b7d524401ff.png) |\n\n* Version 2.0 has also made corresponding optimizations for parsing tables interspersed between text columns or text blocks. The parsing of the original version could not recognize tables and would only parse them in the format of text paragraphs. This not only destroys the logical structure of the tables but also adds a section of messy and useless text for large models, which would affect the accuracy of large model responses. Version 2.0 can recognize and parse these tables embedded in the text, thereby improving the quality of parsing and the accuracy of responses from large models.\n  * In version 1.4 parsing results, tables interspersed in text blocks are parsed as normal text blocks. In version 2.0, this type of table can be parsed \"elegantly\", which not only improves the quality of parsing but also increases the accuracy of large model answers.\n  * In addition, in version 2.0, when processing text under specific subheadings, priority is given to ensuring that these texts are segmented into the same chunk block to maintain logical coherence. When the text is too long and needs to be split, the parsing logic of version 2.0 will repeat the same subheading before each split text block to indicate ownership. For example, in the example, the same subheading \"European Conference: Legal Status of Robots\" was added to all three text blocks (due to the length of the text, this title was not displayed in the original file screenshot). This processing method effectively avoids the problem of incoherent semantic logic in split text blocks caused by excessively long text. \n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_dd47c813af91.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_e52b57b7f790.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_0326edabd1a7.png) |\n\n* For Excel (.xlsx) documents with complex formatting, version 2.0 has undergone a series of optimization measures to accurately identify and process row and column data, including optimized handling of merged cells and text spanning across rows or columns. Specific examples can be seen below.\n  * In version 1.4, there may be some limitations when parsing Excel documents, especially for documents with special structures or formats. The parsing results may not be satisfactory, mainly recognizing only the plain text part. This may lead to information loss or format disorder when dealing with complex data and formats. In contrast, version 2.0 has significantly improved parsing capabilities, able to better handle various complex formats of Excel documents. Although it may not be perfect yet, it can already solve the vast majority of complex situations. \n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_41d9166cc119.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_0cbe15fa798c.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_624c8517b2d3.png) |\n\n* Similarly, for simple formatted xlsx documents, version 2.0 of the parser has been optimized.\n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_ca25a3c4ce59.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_f76f9baef2c2.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5a9666724ef7.png) |\n\n* In the latest version, we have also made significant improvements to the URL parsing function. Taking the following page as an example, the old version may miss a large amount of page information during the parsing process and cannot effectively handle more complex page elements such as tables and lists. However, the new version has been optimized for these issues and can parse these contents more accurately.\n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_c317d12b299e.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_e9c52ba84293.png)\u003Cbr\u002F>![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_4723ec2a1dad.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_9ef45f2521e8.png) |\n\n* In addition, for the vast majority of files, version 2.0 has also made corresponding optimizations, including but not limited to the following points.\n  * Improved the cutting logic of chunk blocks, avoiding semantic blocks being too short or logic interruption due to blank lines or paragraphs in the document, ensuring the coherence and integrity of text blocks. \n  * The new version can more accurately identify the subheadings in the document, and locate and organize the corresponding text blocks based on these subheadings, which helps optimize the parsing effect, making the parsing structure clearer and the information hierarchy more distinct.\n  * The comparison of the analysis results is as follows: In version 1.4, the parsing logic divides the document into 10 chunks, while in version 2.0, after parsing, there are only 4 chunks. The more reasonable and fewer chunk blocks greatly improve the coherence and integrity of the content, helping to reduce semantic breaks or logical confusion caused by improper segmentation, thereby improving the overall parsing and model answering effects. \n\n| Original image | Old version parsing effect | New version parsing effect |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_783e849b65dd.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5c2bc3607395.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_f7567c6818c3.png) |\n\n### In summary, version 2.0 parsing has optimized many aspects compared to version 1.4 parsing, including but not limited to\n1. By using more reasonable chunk lengths, the semantic and logical losses caused by paragraphs being too small or incomplete are reduced. \n2. Improved recognition ability for columned text, able to intelligently determine reading order, even correctly handling paragraphs that span across pages. \n3. The new version can recognize and save images and tables within text paragraphs, ensuring that no important text information is missed. \n4. Optimized table parsing, including parsing and storage of long tables exceeding chunk limits and complex structured xlsx files. \n5. Based on the identified subheadings in the document, locate and organize corresponding text blocks to make the parsing structure clearer and the information hierarchy more distinct. \n6. Optimized parsing results for webpage URLs, converted to .md format. \n7. Support for more encoding formats of txt files and docx files.\n\n## Installation\n### Prerequisites\n| **System** | **Required item**       | **Minimum Requirement** | **Note**                                                                               |\n|------------|-------------------------|-------------------------|----------------------------------------------------------------------------------------|\n|            | RAM Memory              | >= 20GB                 |                                                                                        |\n| Linux\u002FMac  | Docker version          | >= 20.10.5              | [Docker install](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F)                              |\n| Linux\u002FMac  | docker compose  version | >= 2.23.3               | [docker compose install](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall\u002F)                     |\n| Windows    | Docker Desktop          | >= 4.26.1（131620）       | [Docker Desktop for Windows](https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002Finstall\u002Fwindows-install\u002F) |\n\n### step1: pull qanything repository\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything.git\n```\n### step2: Enter the project root directory and execute the startup command.\n* Execute the docker compose start command\n* **The startup process takes about 30 seconds. When the log outputs \"qanything backend service is ready!\", the startup is complete!** \n```shell\ncd QAnything\n# Start on Linux\ndocker compose -f docker-compose-linux.yaml up\n# Start on Mac\ndocker compose -f docker-compose-mac.yaml up\n# Start on Windows\ndocker compose -f docker-compose-win.yaml up\n```\n\n(Note) If the startup fails, you can try changing `docker compose` to `docker-compose`.\n\n### step3: start to experience\n#### Front end\nAfter successful installation, you can experience the application by entering the following addresses in your web browser.\n\n- Front end address: http:\u002F\u002Flocalhost:8777\u002Fqanything\u002F\n\n### API\nIf you want to visit API, please refer to the following address:\n- API address: http:\u002F\u002Flocalhost:8777\u002Fqanything\u002F\n- For detailed API documentation, please refer to [QAnything API documentation](docs\u002FAPI.md)\n\n### DEBUG\nIf you want to view the relevant logs, please check the log files in the `QAnything\u002Flogs\u002Fdebug_logs` directory.\n- **debug.log**\n  - User request processing log\n- **sanic_api.log**\n  - Backend service running log\n- **llm_embed_rerank_tritonserver.log**(Single card deployment)\n  - LLM embedding and rerank tritonserver service startup log\n- **llm_tritonserver.log**(Multi-card deployment)\n  - LLM tritonserver service startup log\n- **embed_rerank_tritonserver.log**(Multi-card deployment or use of the OpenAI interface.)\n  - Embedding and rerank tritonserver service startup log\n- rerank_server.log\n  - Rerank service running log\n- ocr_server.log\n  - OCR service running log\n- npm_server.log\n  - Front-end service running log \n- llm_server_entrypoint.log\n  - LLM intermediate server running log\n- fastchat_logs\u002F*.log\n  - FastChat service running log\n\n### Close service\n```shell\n# Front desk service startup mode like:\ndocker compose -f docker-compose-xxx.yaml up  # To close the service, please press Ctrl+C.\n# Backend service startup mode like: \ndocker compose -f docker-compose-xxx.yaml up -d # To close the service, please execute the following command.\ndocker compose -f docker-compose-xxx.yaml down\n```\n\n## Offline Use\nIf you want to use QAnything offline, you need to deploy the local large model (recommended to use ollama) on the offline machine in advance, and then you can start the service using the following command.\n### Install offline for windows \n```shell\n# Download the docker image on a networked machine\ndocker pull quay.io\u002Fcoreos\u002Fetcd:v3.5.5\ndocker pull minio\u002Fminio:RELEASE.2023-03-20T20-16-18Z\ndocker pull milvusdb\u002Fmilvus:v2.4.8\ndocker pull mysql:8.4\ndocker pull xixihahaliu01\u002Fqanything-win:v1.5.1  # From [https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fblob\u002Fmaster\u002Fdocker-compose-windows.yaml#L103] Get the latest version number.\n\n# pack image\ndocker save quay.io\u002Fcoreos\u002Fetcd:v3.5.5 minio\u002Fminio:RELEASE.2023-03-20T20-16-18Z milvusdb\u002Fmilvus:v2.4.8 mysql:8.4 xixihahaliu01\u002Fqanything-win:v1.5.1 -o qanything_offline.tar\n\n# download QAnything code\nwget https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Farchive\u002Frefs\u002Fheads\u002Fmaster.zip\n\n# Copy the image qanything_offline.tar and the code qany-master.zip to the offline machine \ncp QAnything-master.zip qanything_offline.tar \u002Fpath\u002Fto\u002Fyour\u002Foffline\u002Fmachine\n\n# Load image on offline machine \ndocker load -i qanything_offline.tar\n\n# Unzip the code and run it\nunzip QAnything-master.zip\ncd QAnything-master\ndocker compose -f docker-compose-win.yaml up\n``` \nSimilarly for other systems, just replace the corresponding image of the system, such as replacing mac with docker-compose-mac.yaml, and linux with docker-compose-linux.yaml.\n\n\n## FAQ\n### The most common issue at present is that the local service of Ollama has poor question and answer effects, and you can refer to the solutions in the FAQ.\n[FAQ](FAQ_zh.md)\n\n\n## Contributing\nWe appreciate your interest in contributing to our project. Whether you're fixing a bug, improving an existing feature, or adding something completely new, your contributions are welcome!\n### Thanks to all contributors for their efforts\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5d07d30aadd4.png\" \u002F>\n\u003C\u002Fa>\n\n\n# 🛣️ Roadmap & Feedback\n🔎 To learn about QAnything's future plans and progress, please see here: [QAnything Roadmap](https:\u002F\u002Fqanything.canny.io\u002F)\n\n🤬To provide feedback to QAnything, please see here: [QAnything Feedbak](https:\u002F\u002Fqanything.canny.io\u002Ffeature-requests)\n\n# Community & Support\n\n## Discord \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F5uNpPsEJz8\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1197874288963895436?style=social&logo=discord\">\u003C\u002Fa>\nWelcome to the QAnything [Discord](https:\u002F\u002Fdiscord.gg\u002F5uNpPsEJz8) community\n\n\n## WeChat\n\nWelcome to follow QAnything WeChat Official Account to get the latest information.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_37e98b6f7967.jpg\" width=\"30%\" height=\"auto\">\n\n\nWelcome to scan the code to join the QAnything discussion group.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_d9b83fae19bf.jpg\" width=\"30%\" height=\"auto\">\n\n\n## Email\nIf you need to contact our team privately, please reach out to us via the following email:\n\nqanything@rd.netease.com\n\n## GitHub issues & discussions\nReach out to the maintainer at one of the following places:\n\n- [Github issues](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fissues)\n- [Github discussions](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fdiscussions)\n- Contact options listed on [this GitHub profile](https:\u002F\u002Fgithub.com\u002Fnetease-youdao)\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fdiscussions\">\n  \u003C!-- Please provide path to your logo here -->\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_dc4349592c83.png\" alt=\"Logo\" width=\"600\">\n\u003C\u002Fa>\n\n\n# Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_869de6733b63.png)](https:\u002F\u002Fstar-history.com\u002F#netease-youdao\u002FQAnything&netease-youdao\u002FBCEmbedding&Date)\n\n\n\n# License\n\n`QAnything` is licensed under [AGPL-3.0 License](.\u002FLICENSE)\n\n# Acknowledgments\n`QAnything` adopts dependencies from the following:\n- Thanks to our [BCEmbedding](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding) for the excellent embedding and rerank model. \n- Thanks to [Qwen](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen) for strong base language models.\n- Thanks to [Triton Inference Server](https:\u002F\u002Fgithub.com\u002Ftriton-inference-server\u002Fserver) for providing great open source inference serving.\n- Thanks to [FastChat](https:\u002F\u002Fgithub.com\u002Flm-sys\u002FFastChat) for providing a fully OpenAI-compatible API server.\n- Thanks to [FasterTransformer](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FFasterTransformer) and [vllm](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm) for highly optimized LLM inference backend.\n- Thanks to [Langchain](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain) for the wonderful llm application framework. \n- Thanks to [Langchain-Chatchat](https:\u002F\u002Fgithub.com\u002Fchatchat-space\u002FLangchain-Chatchat) for the inspiration provided on local knowledge base Q&A.\n- Thanks to [Milvus](https:\u002F\u002Fgithub.com\u002Fmilvus-io\u002Fmilvus) for the excellent semantic search library.\n- Thanks to [PaddleOCR](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleOCR) for its ease-to-use OCR library.\n- Thanks to [Sanic](https:\u002F\u002Fgithub.com\u002Fsanic-org\u002Fsanic) for the powerful web service framework.\n- Thanks to [RAGFlow](https:\u002F\u002Fgithub.com\u002Finfiniflow\u002Fragflow) for providing some ideas for document parsing.\n","\u003Cdiv align=\"center\">\n\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\">\n    \u003C!-- 请在此处提供您的 logo 路径 -->\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_614893f6aa49.png\" alt=\"Logo\" width=\"800\">\n  \u003C\u002Fa>\n\n# **Q**uestion and **A**nswer based on **Anything**\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FREADME.md\">English\u003C\u002Fa> |\n  \u003Ca href=\".\u002FREADME_zh.md\">简体中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n\u003Ca href=\"https:\u002F\u002Fqanything.ai\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftry%20online-qanything.ai-purple\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fread.youdao.com#\u002Fhome\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftry%20online-read.youdao.com-purple\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\n\u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0-yellow\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpulls\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-red\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002FYDopensource\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffollow-%40YDOpenSource-1DA1F2?logo=twitter&style={style}\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F5uNpPsEJz8\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1197874288963895436?style=social&logo=discord\">\u003C\u002Fa>\n&nbsp;&nbsp;&nbsp;&nbsp;\n\n\n\n\u003C\u002Fdiv>\n\n\u003Cdetails open=\"open\">\n\u003Csummary>Table of Contents\u003C\u002Fsummary>\n\n- [What is QAnything](#what-is-qanything)\n  - [Key features](#key-features)\n  - [Architecture](#architecture)\n- [Latest Updates](#-latest-updates)\n- [Before You Start](#before-you-start)\n- [Getting Started](#getting-started)\n  - [Latest Features Table](#latest-features-table)\n  - [Version 2.0.0 adds detailed optimizations:](#version-200-adds-detailed-optimizations)\n    - [Display of data at each stage:](#display-of-data-at-each-stage)\n    - [Problem fixed](#problem-fixed)\n  - [Comparison of New and Old Parsing Effects](#comparison-of-new-and-old-parsing-effects)\n  - [Installation](#installation)\n    - [Prerequisites](#prerequisites)\n    - [step1: pull qanything repository](#step1-pull-qanything-repository)\n    - [step2: Enter the project root directory and execute the startup command.](#step2-enter-the-project-root-directory-and-execute-the-startup-command)\n    - [step3: start to experience](#step3-start-to-experience)\n    - [API](#api)\n    - [DEBUG](#debug)\n    - [Close service](#close-service)\n  - [Offline Use](#offline-use)\n  - [FAQ](#faq)\n  - [Contributing](#contributing)\n    - [Thanks to all contributors for their efforts](#thanks-to-all-contributors-for-their-efforts)\n    - [Special thanks!](#special-thanks)\n  - [Business contact information：](#business-contact-information)\n- [Roadmap & Feedback](#-roadmap--feedback)\n- [Community & Support](#community--support)\n- [License](#license)\n- [Acknowledgements](#acknowledgments)\n\n\u003C\u002Fdetails>\n\n# 🚀 Important Updates \n\u003Ch1>\u003Cspan style=\"color:red;\">Important things should be said three times.\u003C\u002Fspan>\u003C\u002Fh1>\n\n# [2024-08-23: QAnything updated to version 2.0.] \n# [2024-08-23: QAnything updated to version 2.0.]\n# [2024-08-23: QAnything updated to version 2.0.]\n\n\u003Ch2>\n\n* \u003Cspan style=\"color:green\">This update brings improvements in various aspects such as usability, resource consumption, search results, question and answer results, parsing results, front-end effects, service architecture, and usage methods.\u003C\u002Fspan>\n* \u003Cspan style=\"color:green\">At the same time, the old Docker version and Python version have been merged into a new unified version, using a single-line command with Docker Compose for one-click startup, ready to use out of the box.\u003C\u002Fspan>\n\n\u003C\u002Fh2>\n\n\n## Contributing\nWe appreciate your interest in contributing to our project. Whether you're fixing a bug, improving an existing feature, or adding something completely new, your contributions are welcome!\n### Thanks to all contributors for their efforts\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5d07d30aadd4.png\" \u002F>\n\u003C\u002Fa>\n\n### Special thanks!\n\u003Ch2>\u003Cspan style=\"color:red;\">Please note: Our list of contributors is automatically updated, so your contributions may not appear immediately on this list.\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Ch2>\u003Cspan style=\"color:red;\">Special thanks!：@ikun-moxiaofei\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Ch2>\u003Cspan style=\"color:red;\">Special thanks!：@Ianarua\u003C\u002Fspan>\u003C\u002Fh2>\n\n\n## Business contact information：\n### 010-82558901\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_89d60b3e55d6.jpeg)\n\n# What is QAnything?\n`QAnything`(**Q**uestion and **A**nswer based on **Anything**) is a local knowledge base question-answering system designed to support a wide range of file formats and databases, allowing for offline installation and use.\n\nWith `QAnything`, you can simply drop any locally stored file of any format and receive accurate, fast, and reliable answers.\n\nCurrently supported formats include: **PDF(pdf)**,**Word(docx)**,**PPT(pptx)**,**XLS(xlsx)**,**Markdown(md)**,**Email(eml)**,**TXT(txt)**,**Image(jpg，jpeg，png)**,**CSV(csv)**,**Web links(html)** and more formats coming soon…\n\n\n## Key features\n\n- Data security, supports installation and use by unplugging the network cable throughout the process. \n- Supports multiple file types, high parsing success rate, supports cross-language question and answer, freely switches between Chinese and English question and answer, regardless of the language of the file.\n- Supports massive data question and answer, two-stage vector sorting, solves the problem of degradation of large-scale data retrieval, the more data, the better the effect, no limit on the number of uploaded files, fast retrieval speed. \n- Hardware friendly, defaults to running in a pure CPU environment, and supports multiple platforms such as Windows, Mac, and Linux, with no dependencies other than Docker. \n- User-friendly, no need for cumbersome configuration, one-click installation and deployment, ready to use, each dependent component (PDF parsing, OCR, embed, rerank, etc.) is completely independent, supports free replacement. \n- Supports a quick start mode similar to Kimi, fileless chat mode, retrieval mode only, custom Bot mode.\n\n\n\n\n## Architecture\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_4b1cf0e432cd.png\" width = \"700\" alt=\"qanything_system\" align=center \u002F>\n\u003C\u002Fdiv>\n\n### 为什么采用两阶段检索？\n在知识库数据量较大的场景下，两阶段方法的优势非常明显。如果仅使用第一阶段的嵌入式检索，随着数据量的增加，会出现检索效果下降的问题，如下面图表中的绿色曲线所示。然而，在经过第二阶段的重排序之后，准确率可以稳定提升，**数据越多，性能越好**。\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_74438974bb41.jpg\" width = \"500\" alt=\"two stage retrievaal\" align=center \u002F>\n\u003C\u002Fdiv>\n\nQAnything 使用了检索组件 [BCEmbedding](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding)，该组件以其双语和跨语言能力著称。BCEmbedding 在弥合中英文语言鸿沟方面表现出色，具体体现在：\n- **在 MTEB 的语义表示评估中表现优异**；\n- **在 LlamaIndex 的 RAG 评估中树立了新的标杆**。\n\n\n### 第一阶段检索（embedding）\n| 模型 | 检索 | STS | 对比分类 | 分类 | 重排序 | 聚类 | 平均 |\n|:-------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|\n| bge-base-en-v1.5 | 37.14 | 55.06 | 75.45 | 59.73 | 43.05 | 37.74 | 47.20 |\n| bge-base-zh-v1.5 | 47.60 | 63.72 | 77.40 | 63.38 | 54.85 | 32.56 | 53.60 |\n| bge-large-en-v1.5 | 37.15 | 54.09 | 75.00 | 59.24 | 42.68 | 37.32 | 46.82 |\n| bge-large-zh-v1.5 | 47.54 | 64.73 | **79.14** | 64.19 | 55.88 | 33.26 | 54.21 |\n| jina-embeddings-v2-base-en | 31.58 | 54.28 | 74.84 | 58.42 | 41.16 | 34.67 | 44.29 |\n| m3e-base | 46.29 | 63.93 | 71.84 | 64.08 | 52.38 | 37.84 | 53.54 |\n| m3e-large | 34.85 | 59.74 | 67.69 | 60.07 | 48.99 | 31.62 | 46.78 |\n| ***bce-embedding-base_v1*** | **57.60** | **65.73** | 74.96 | **69.00** | **57.29** | **38.95** | ***59.43*** |\n\n- 更多评估详情请参阅 [Embedding Models Evaluation Summary](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding\u002Fblob\u002Fmaster\u002FDocs\u002FEvaluationSummary\u002Fembedding_eval_summary.md)。\n\n### 第二阶段检索（rerank）\n| 模型 | 重排序 | 平均 |\n|:-------------------------------|:--------:|:--------:|\n| bge-reranker-base | 57.78 | 57.78 |\n| bge-reranker-large | 59.69 | 59.69 |\n| ***bce-reranker-base_v1*** | **60.06** | ***60.06*** |\n\n- 更多评估详情请参阅 [Reranker Models Evaluation Summary](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding\u002Fblob\u002Fmaster\u002FDocs\u002FEvaluationSummary\u002Freranker_eval_summary.md)\n\n### LlamaIndex 中的 RAG 评估（embedding 和 rerank）\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_a900c7daa926.jpg\">\n\n***注：***\n\n- 在 `WithoutReranker` 设置中，我们的 `bce-embedding-base_v1` 表现优于所有其他嵌入模型。\n- 固定嵌入模型后，我们的 `bce-reranker-base_v1` 达到了最佳性能。\n- **`bce-embedding-base_v1` 和 `bce-reranker-base_v1` 的组合达到了当前最优水平**。\n- 如果您希望分别使用 embedding 和 rerank，请参考 [BCEmbedding](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding)。\n\n### LLM\n\nQAnything 的开源版本基于 QwenLM，并在大量专业问答数据集上进行了微调，从而极大地提升了问答能力。\n如果您需要将其用于商业用途，请遵守 QwenLM 的许可协议。更多详情请参阅：[QwenLM](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen)\n\n# 🚀 最新更新\n\n- ***2024-08-23***：**支持快速启动、前端配置参数、chunk 块的在线预览与编辑，大幅优化了项目架构和启动方式，显著提升了解析和检索效果。** - 查看更多👉 [v2.0.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv2.0.0)\n- ***2024-05-20***：**支持与其他兼容 OpenAI API 的大模型服务，并提供优化后的强大 PDF 解析器。** - 查看更多👉 [v1.4.1](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.4.1)\n- ***2024-04-26***：**支持网页搜索、FAQ、自定义机器人、文件溯源预览等功能。** - 查看更多👉 [v1.4.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.4.0-python)\n- ***2024-04-03***：**支持纯 Python 环境下的安装，支持混合搜索。** - 查看更多👉 [v1.3.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.3.0)\n- ***2024-01-29***：**支持自定义大模型，包括 OpenAI API 和其他开源大模型，最低 GPU 要求为 GTX 1050Ti，极大改善了部署、调试及用户体验。** - 查看更多👉 [v1.2.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.2.0)\n- ***2024-01-23***：**默认启用重排序，并修复了在 Windows 上启动时的各种问题。** - 查看更多👉 [v1.1.1](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.1.1)\n- ***2024-01-18***：**支持一键启动，支持 Windows 部署，提高了 PDF、XLSX、HTML 的解析效率。** - 查看更多👉 [v1.1.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Freleases\u002Ftag\u002Fv1.1.0)\n\n# 开始之前\n**在 GitHub 上给我们点个赞，即可第一时间获取最新发布信息！**\n![star_us](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_ebe4db059ee2.png)\n* [🏄 在线试用 QAnything](https:\u002F\u002Fqanything.ai)\n* [📚 尝试 read.youdao.com | 有道速读](https:\u002F\u002Fread.youdao.com)\n* [🛠️ 仅使用我们的 BCEmbedding（embedding 和 rerank）](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding)\n* [📖 常见问题解答](FAQ_zh.md)\n* [👂️ 欢迎提出您的建议](https:\u002F\u002Fqanything.canny.io\u002Ffeature-requests)\n\n\n# 开始使用\n## 最新功能表\n\n| 功能                                                             | Python（v1.4.2） | Docker（v1.2.2） | QAnything v2.0.0 | 说明                                                                                                                                                                                                     |\n|----------------------------------------------------------------------|-----------------|-----------------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 详细的安装文档                                       | ✅               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| 支持 API                                                          | ✅               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| 支持生产环境                                       | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| 支持离线使用                                                  | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| 支持多并发                                         | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| 支持多卡推理                                         | ❌               | ✅               | ❌                | 2.0.0 版本不再提供默认的本地大模型。所有访问均通过 OpenAI 接口进行，用户可通过 Ollama 等工具部署本地大模型。                                                    |\n| 支持 Mac（M 系列芯片）                                         | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持 Linux                                                        | ✅               | ✅               | ✅                | 旧版 Python 在 Linux 上默认使用 onnxruntime-gpu 针对 CUDA 12 进行加速，当 glibc\u003C2.28 时会自动切换到 onnxruntime。                                                                     |\n| 支持 Windows                                                      | ❌               | ❌               | ✅                | 旧版 Python 和 Docker 均需 WSL 环境。2.0.0 版本可在非 WSL 环境中直接启动。                                                                                 |\n| 支持仅 CPU 模式                                                     | ✅               | ❌               | ✅                | 2.0.0 版本中，Mac、Linux 和 Windows 统一不再使用 GPU，完全迁移至 CPU。                                                                                                                            |\n| 支持混合检索（BM25+嵌入）                               | ❌               | ✅               | ✅                |                                                                                                                                                                                                                 |\n| 支持网页搜索（需 VPN）                                        | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持 FAQ                                                          | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持 BOT                                                          | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持可追溯性                                                 | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持日志检索                                                | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持音频文件                                                   | ✅               | ❌               | ❌                | 依赖 Whisper，速度较慢且资源消耗高，暂时移除。                                                                                                                              |\n| 支持 OpenCloudOS                                                  | ✅               | ❌               | ✅                |                                                                                                                                                                                                                 |\n| 支持与 OpenAI API 兼容的接口（包括 Ollama）      | ✅               | ✅               | ✅                | 旧版 Python 和 Docker 需手动修改 api_key、base_url、model 等参数。在 2.0.0 版本中，这些参数均改为在前端设置中自动保存。 |\n| PDF 解析性能提升（包括表格）               | ✅               | ❌               | ✅                | 1.4.2 版本需要手动设置，2.0.0 版本无需手动设置，PDF 解析效果和性能均有所提升。                                                     |\n| 用户自定义配置（实验性：提升速度）             | ✅               | ❌               | ✅                | v1.4.2 需手动设置，v2.0.0 默认使用最佳配置。                                                                                                                                 |\n| 其他文件类型解析性能提升               | ❌               | ❌               | ✅                | 2.0.0 版本提升了对 URL、Markdown、XLSX、DOCX 等文件类型的解析效果。                                                                                                                                   |\n| 支持独立服务调用                               | ❌               | ❌               | ✅                | 2.0.0 版本中的嵌入、重排、OCR、PDF 解析等依赖服务均可独立调用（HTTP）。                                                                            |\n| 支持快速启动模式                                             | ❌               | ❌               | ✅                | 快速启动：无需创建知识库，支持文件上传并即时提问，也支持无文件问答。                                                                                     |\n| 支持仅检索模式                                          | ❌               | ❌               | ✅                | 仅返回检索结果，不调用大模型进行问答。                                                                                                                                 |\n| 支持解析结果分块内容可视化及手动编辑。 | ❌               | ❌               | ✅                | 2.0.0 版本支持手动编辑分块内容，更改实时生效。                                                                                                                 |\n| PDF 解析支持图片，并支持以图片形式回答。         | ❌               | ❌               | ✅                |                                                                                                                                                                                                                 |\n\n## 版本 2.0.0 增加了详细的优化：\n\n* 支持前端配置 API_BASE、API_KEY、文本分块大小、输出 token 数量、上下文消息数量等参数。\n* 优化 Bot 角色设置的指令合规性，每个 Bot 可以单独配置模型参数。\n* 支持创建多个对话窗口，并同时保存多组历史问答记录。\n* 支持将问答记录保存为图片。\n* 优化文件上传逻辑，独立解析文件和问答请求，上传文件不再影响问答过程。\n* 优化镜像大小，旧版本镜像压缩后为 18.94GB，新版本压缩后为 4.88GB，缩减至原来的四分之一，并提供完整的 Dockerfile。\n* 搜索优化，分块时增加片段融合与排序功能，支持聚合单文档或双文档内容。\n* 在检索阶段和问答阶段均嵌入元数据信息，以提升检索和问答效果。\n\n### 各阶段数据展示：\n* 展示知识库中所有文件的上传进度。\n* 展示知识库中单个文件的上传进度，以及上传各阶段所耗时间。\n* 问答信息统计，包括问答各阶段耗时、token 消耗、模型信息等。\n* 用户信息统计，包括上传文件总数、总耗时、问答历史记录等。\n\n### 已修复的问题\n* xlsx 文件格式支持解析多张工作表。\n* 优化 PDF 表格识别缺失的问题。\n* 修复 DOCX 文件中的部分解析错误。\n* 优化 FAQ 匹配逻辑。\n* 支持非 UTF-8 编码的 txt 文件。\n\n## 新旧解析效果对比\n* 首先，在处理文档中的大型表格，尤其是跨页表格时，2.0 版本有了显著提升。新版本的解析逻辑能够分析表格的结构，包括行列布局，并自动识别表头，将其放置在每个拆分后的表格段落顶部。这一改进避免了在解析长表格时因逻辑分割而导致语义中断的问题。\n\n| 原图 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_9048f811a206.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_68a7b61a5364.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_c40ac375e29c.png) |\n\n* 此外，2.0 版本还针对文本的分栏及跨页排版进行了优化。它可以识别双栏或多栏文本布局，并按照人类阅读习惯正确划分文本块。同时，该版本还能保存文档中的图片，确保文件解析过程中内容完整性不丢失。如下图所示，正确的处理方式是将按顺序排列的 1、2、3 文字归为一个大段落后再进行分割，而不是分别对 1、2、3 进行分割。\n  * 在 1.4 版本的解析结果中，跨页文本“higher”被错误地划入了下一个文本块，这不利于大模型对语义的理解。而在 2.0 版本的解析结果中，文本被正确分割，且穿插在文本段落中的图片也被解析为相应的分块语句。诸如“图 1 识别与授权及其支持关系 37”和“封面故事 封面专题”等非正文内容则被成功过滤掉。\n\n| 原图 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_3a9cfd77d6f6.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_635700761acc.png)\u003Cbr\u002F>![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_47065dc3a1b5.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_0b7d524401ff.png) |\n\n* 2.0 版本还针对穿插在文本栏或文本块之间的表格解析进行了相应优化。旧版本的解析无法识别表格，只会将其按普通文本段落的形式解析出来。这不仅破坏了表格的逻辑结构，还会为大模型添加大量杂乱无章的无用文本，从而影响大模型回答的准确性。而 2.0 版本能够识别并解析这些嵌入在文本中的表格，从而提升解析质量和大模型回答的准确度。\n  * 在 1.4 版本的解析结果中，穿插在文本块中的表格被当作普通文本块解析。而在 2.0 版本中，这类表格可以被“优雅”地解析出来，这不仅提高了解析质量，也提升了大模型回答的准确性。\n  * 此外，在 2.0 版本中，处理特定小标题下的文本时，会优先确保这些文本被分割到同一个分块中，以保持逻辑连贯性。当文本过长需要拆分时，2.0 版本的解析逻辑会在每个拆分后的文本块前重复出现相同的小标题，以标明归属。例如，在示例中，相同的子标题“欧洲会议：机器人的法律地位”被添加到了全部三个文本块中（由于文本较长，原始文件截图中未显示该标题）。这种处理方式有效避免了因文本过长导致拆分后文本块语义逻辑不连贯的问题。\n\n| 原图 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_dd47c813af91.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_e52b57b7f790.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_0326edabd1a7.png) |\n\n* 对于具有复杂格式的 Excel（.xlsx）文档，2.0 版本经过一系列优化措施，能够准确识别并处理行和列数据，包括对合并单元格以及跨行或跨列文本的优化处理。具体示例如下所示。\n  * 在 1.4 版本中，解析 Excel 文档时可能存在一些局限性，尤其是对于结构或格式特殊的文档，解析结果可能不够理想，主要只能识别纯文本部分。这可能导致在处理复杂数据和格式时出现信息丢失或格式紊乱的情况。相比之下，2.0 版本显著提升了解析能力，能够更好地应对各种复杂的 Excel 格式。尽管目前仍不完美，但已能解决绝大多数复杂场景。\n\n| 原始图片 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_41d9166cc119.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_0cbe15fa798c.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_624c8517b2d3.png) |\n\n* 同样地，对于简单格式的 xlsx 文档，解析器的 2.0 版本也进行了优化。\n\n| 原始图片 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_ca25a3c4ce59.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_f76f9baef2c2.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5a9666724ef7.png) |\n\n* 在最新版本中，我们还对 URL 解析功能进行了重大改进。以下面这个页面为例，旧版本在解析过程中可能会遗漏大量页面信息，并且无法有效处理表格、列表等较为复杂的页面元素。而新版本针对这些问题进行了优化，能够更准确地解析这些内容。\n\n| 原始图片 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_c317d12b299e.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_e9c52ba84293.png)\u003Cbr\u002F>![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_4723ec2a1dad.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_9ef45f2521e8.png) |\n\n* 此外，对于绝大多数文件类型，2.0 版本也进行了相应的优化，包括但不限于以下几点：\n  * 改进了分块逻辑，避免因文档中的空行或段落导致语义块过短或逻辑中断，从而确保文本块的连贯性和完整性。\n  * 新版本能够更准确地识别文档中的小标题，并根据这些小标题定位和组织相应的文本块，有助于优化解析效果，使解析结构更加清晰，信息层次更加分明。\n  * 分析结果对比：在 1.4 版本中，解析逻辑将文档划分为 10 个块；而在 2.0 版本中，解析后仅剩下 4 个块。更为合理且数量更少的分块方式极大地提高了内容的连贯性和完整性，有助于减少因不当分割而导致的语义断裂或逻辑混乱，从而提升整体解析及模型回答的效果。\n\n| 原始图片 | 旧版本解析效果 | 新版本解析效果 |\n|:----:|:--------------------------------------------:|:---------------------------------------------------------------------------------------------:|\n| ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_783e849b65dd.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5c2bc3607395.png) | ![image.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_f7567c6818c3.png) |\n\n\n\n### 总结而言，与 1.4 版本相比，2.0 版本的解析在多个方面都进行了优化，包括但不限于：\n1. 通过采用更合理的分块长度，减少了因段落过小或不完整而导致的语义和逻辑损失。\n2. 提升了对多栏文本的识别能力，能够智能判断阅读顺序，甚至正确处理跨页段落。\n3. 新版本可以识别并保存文本段落中的图片和表格，确保不会遗漏任何重要文本信息。\n4. 优化了表格解析，包括对超出分块限制的长表格以及复杂结构的 xlsx 文件的解析与存储。\n5. 根据文档中识别出的小标题，定位并组织相应的文本块，使解析结构更加清晰，信息层次更加分明。\n6. 针对网页 URL 的解析结果进行了优化，并将其转换为 .md 格式。\n7. 支持更多编码格式的 txt 文件和 docx 文件。\n\n## 安装\n### 前置条件\n| **系统** | **所需项目**       | **最低要求** | **备注**                                                                               |\n|------------|-------------------------|-------------------------|----------------------------------------------------------------------------------------|\n|            | 内存（RAM）              | >= 20GB                 |                                                                                        |\n| Linux\u002FMac  | Docker 版本          | >= 20.10.5              | [Docker 安装指南](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F)                              |\n| Linux\u002FMac  | docker compose 版本   | >= 2.23.3               | [docker compose 安装指南](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall\u002F)                     |\n| Windows    | Docker Desktop        | >= 4.26.1（131620）       | [Windows 版 Docker Desktop 安装指南](https:\u002F\u002Fdocs.docker.com\u002Fdesktop\u002Finstall\u002Fwindows-install\u002F) |\n\n### 步骤1：拉取 qanything 仓库\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything.git\n```\n### 步骤2：进入项目根目录并执行启动命令。\n* 执行 docker compose start 命令\n* **启动过程大约需要 30 秒。当日志输出“qanything backend service is ready!”时，即表示启动完成！** \n```shell\ncd QAnything\n# Linux 上启动\ndocker compose -f docker-compose-linux.yaml up\n# Mac 上启动\ndocker compose -f docker-compose-mac.yaml up\n# Windows 上启动\ndocker compose -f docker-compose-win.yaml up\n```\n\n（注）如果启动失败，可以尝试将 `docker compose` 改为 `docker-compose`。\n\n### 步骤3：开始体验\n#### 前端\n安装成功后，您可以通过在浏览器中输入以下地址来体验该应用。\n\n- 前端地址：http:\u002F\u002Flocalhost:8777\u002Fqanything\u002F\n\n### API\n如果您想访问 API，请参考以下地址：\n- API 地址：http:\u002F\u002Flocalhost:8777\u002Fqanything\u002F\n- 详细的 API 文档请参阅 [QAnything API 文档](docs\u002FAPI.md)\n\n### DEBUG\n如果您想查看相关日志，请检查 `QAnything\u002Flogs\u002Fdebug_logs` 目录下的日志文件。\n- **debug.log**\n  - 用户请求处理日志\n- **sanic_api.log**\n  - 后端服务运行日志\n- **llm_embed_rerank_tritonserver.log**（单卡部署）\n  - LLM 嵌入和重排序 TritonServer 服务启动日志\n- **llm_tritonserver.log**（多卡部署）\n  - LLM TritonServer 服务启动日志\n- **embed_rerank_tritonserver.log**（多卡部署或使用 OpenAI 接口时）\n  - 嵌入和重排序 TritonServer 服务启动日志\n- rerank_server.log\n  - 重排序服务运行日志\n- ocr_server.log\n  - OCR 服务运行日志\n- npm_server.log\n  - 前端服务运行日志\n- llm_server_entrypoint.log\n  - LLM 中间服务器运行日志\n- fastchat_logs\u002F*.log\n  - FastChat 服务运行日志\n\n### 关闭服务\n```shell\n# 前台服务启动方式如：\ndocker compose -f docker-compose-xxx.yaml up  # 要关闭服务，请按 Ctrl+C。\n# 后端服务启动方式如：\ndocker compose -f docker-compose-xxx.yaml up -d # 要关闭服务，请执行以下命令。\ndocker compose -f docker-compose-xxx.yaml down\n```\n\n## 离线使用\n如果您想离线使用 QAnything，需要提前在离线机器上部署本地大模型（推荐使用 Ollama），然后可以使用以下命令启动服务。\n### Windows 系统的离线安装\n```shell\n# 在联网机器上下载 Docker 镜像\ndocker pull quay.io\u002Fcoreos\u002Fetcd:v3.5.5\ndocker pull minio\u002Fminio:RELEASE.2023-03-20T20-16-18Z\ndocker pull milvusdb\u002Fmilvus:v2.4.8\ndocker pull mysql:8.4\ndocker pull xixihahaliu01\u002Fqanything-win:v1.5.1  # 从 [https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fblob\u002Fmaster\u002Fdocker-compose-windows.yaml#L103] 获取最新版本号。\n\n# 打包镜像\ndocker save quay.io\u002Fcoreos\u002Fetcd:v3.5.5 minio\u002Fminio:RELEASE.2023-03-20T20-16-18Z milvusdb\u002Fmilvus:v2.4.8 mysql:8.4 xixihahaliu01\u002Fqanything-win:v1.5.1 -o qanything_offline.tar\n\n# 下载 QAnything 代码\nwget https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Farchive\u002Frefs\u002Fheads\u002Fmaster.zip\n\n# 将镜像 qanything_offline.tar 和代码 qany-master.zip 复制到离线机器\ncp QAnything-master.zip qanything_offline.tar \u002Fpath\u002Fto\u002Fyour\u002Foffline\u002Fmachine\n\n# 在离线机器上加载镜像\ndocker load -i qanything_offline.tar\n\n# 解压代码并运行\nunzip QAnything-master.zip\ncd QAnything-master\ndocker compose -f docker-compose-win.yaml up\n``` \n其他系统类似，只需替换相应系统的镜像，例如 Mac 替换为 docker-compose-mac.yaml，Linux 替换为 docker-compose-linux.yaml。\n\n\n## 常见问题解答\n### 目前最常见的问题是 Ollama 的本地服务问答效果较差，您可以参考 FAQ 中的解决方案。\n[FAQ](FAQ_zh.md)\n\n\n## 贡献\n我们非常感谢您对本项目的贡献。无论您是修复 bug、改进现有功能，还是添加全新的内容，您的贡献都将受到欢迎！\n### 感谢所有贡献者的努力\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_5d07d30aadd4.png\" \u002F>\n\u003C\u002Fa>\n\n\n# 🛣️ 路线图 & 反馈\n🔎 想了解 QAnything 的未来计划和进展，请查看这里：[QAnything 路线图](https:\u002F\u002Fqanything.canny.io\u002F)\n\n🤬 如果您想向 QAnything 提供反馈，请查看这里：[QAnything 反馈](https:\u002F\u002Fqanything.canny.io\u002Ffeature-requests)\n\n# 社区与支持\n\n## Discord \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F5uNpPsEJz8\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1197874288963895436?style=social&logo=discord\">\u003C\u002Fa>\n欢迎加入 QAnything [Discord](https:\u002F\u002Fdiscord.gg\u002F5uNpPsEJz8) 社区\n\n\n## 微信\n\n欢迎关注 QAnything 微信公众号，获取最新资讯。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_37e98b6f7967.jpg\" width=\"30%\" height=\"auto\">\n\n\n欢迎扫描二维码加入 QAnything 讨论群。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_d9b83fae19bf.jpg\" width=\"30%\" height=\"auto\">\n\n\n## 邮箱\n如果您需要私下联系我们的团队，请通过以下邮箱与我们联系：\n\nqanything@rd.netease.com\n\n## GitHub 问题与讨论\n您可以通过以下途径联系维护者：\n\n- [GitHub 问题](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fissues)\n- [GitHub 讨论](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fdiscussions)\n- 请参阅 [此 GitHub 个人主页](https:\u002F\u002Fgithub.com\u002Fnetease-youdao) 上列出的联系方式。\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fdiscussions\">\n  \u003C!-- 请在此处提供您的 logo 路径 -->\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_dc4349592c83.png\" alt=\"Logo\" width=\"600\">\n\u003C\u002Fa>\n\n\n# 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_readme_869de6733b63.png)](https:\u002F\u002Fstar-history.com\u002F#netease-youdao\u002FQAnything&netease-youdao\u002FBCEmbedding&Date)\n\n\n\n# 许可证\n\n`QAnything` 采用 [AGPL-3.0 许可证](.\u002FLICENSE)\n\n# 致谢\n`QAnything` 使用了以下依赖项：\n- 感谢我们的 [BCEmbedding](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FBCEmbedding) 提供的优秀嵌入和重排序模型。\n- 感谢 [Qwen](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen) 提供的强大基础语言模型。\n- 感谢 [Triton 推理服务器](https:\u002F\u002Fgithub.com\u002Ftriton-inference-server\u002Fserver) 提供的优秀开源推理服务。\n- 感谢 [FastChat](https:\u002F\u002Fgithub.com\u002Flm-sys\u002FFastChat) 提供的完全兼容 OpenAI 的 API 服务器。\n- 感谢 [FasterTransformer](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FFasterTransformer) 和 [vllm](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm) 提供的高度优化的 LLM 推理后端。\n- 感谢 [Langchain](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain) 提供的优秀 LLM 应用框架。\n- 感谢 [Langchain-Chatchat](https:\u002F\u002Fgithub.com\u002Fchatchat-space\u002FLangchain-Chatchat) 在本地知识库问答方面的启发。\n- 感谢 [Milvus](https:\u002F\u002Fgithub.com\u002Fmilvus-io\u002Fmilvus) 提供的优秀语义搜索库。\n- 感谢 [PaddleOCR](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleOCR) 易于使用的 OCR 库。\n- 感谢 [Sanic](https:\u002F\u002Fgithub.com\u002Fsanic-org\u002Fsanic) 强大的 Web 服务框架。\n- 感谢 [RAGFlow](https:\u002F\u002Fgithub.com\u002Finfiniflow\u002Fragflow) 在文档解析方面提供的一些思路。","# QAnything 快速上手指南\n\nQAnything (Question and Answer based on Anything) 是由网易有道开源的本地知识库问答系统。它支持多种文件格式（PDF、Word、PPT、Markdown 等），具备离线安装、数据隐私安全、两阶段检索（Embedding + Rerank）等核心特性，旨在提供准确、快速的本地文档问答体验。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Windows、macOS 或 Linux\n- **硬件配置**：\n  - **默认模式**：纯 CPU 运行，对硬件友好，无需独立显卡。\n  - **加速模式**（可选）：若需更高性能，支持 NVIDIA GPU（最低 GTX 1050Ti 即可运行自定义大模型）。\n- **内存建议**：建议至少 8GB 可用内存（处理大量文档时建议 16GB+）。\n\n### 前置依赖\n- **Docker**：必须安装 Docker Desktop 或 Docker Engine。\n- **Docker Compose**：通常随 Docker Desktop 自动安装，Linux 用户需单独安装。\n\n> **注意**：QAnything v2.0+ 已统一架构，不再区分 Python 版和 Docker 版，仅需 Docker 环境即可一键启动。\n\n## 安装步骤\n\n### 第一步：拉取项目代码\n打开终端（Terminal 或 PowerShell），执行以下命令克隆仓库：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything.git\n```\n\n> **国内加速建议**：如果访问 GitHub 较慢，可使用国内镜像源（如 Gitee 镜像，若有官方提供）或通过代理加速克隆。\n\n### 第二步：进入目录并启动服务\n进入项目根目录，使用 Docker Compose 一键启动：\n\n```bash\ncd QAnything\ndocker compose up -d\n```\n\n*注：`-d` 参数表示后台运行。首次启动会自动拉取所需镜像，根据网络情况可能需要几分钟。*\n\n### 第三步：验证启动\n等待服务初始化完成（可通过 `docker compose logs -f` 查看日志）。当看到类似 `QAnything backend service started` 的提示时，表示启动成功。\n\n## 基本使用\n\n### 1. 访问 Web 界面\n在浏览器中打开以下地址：\n\n```text\nhttp:\u002F\u002Flocalhost:8777\n```\n\n### 2. 创建知识库\n1. 点击界面上的 **“新建知识库”**。\n2. 输入知识库名称（例如：`我的文档库`）。\n3. 点击确认创建。\n\n### 3. 上传文件\n1. 进入刚创建的知识库。\n2. 点击 **“上传文件”** 按钮。\n3. 选择本地文件支持格式包括：`PDF`, `Word(docx)`, `PPT(pptx)`, `Excel(xlsx)`, `Markdown(md)`, `TXT`, `图片(jpg\u002Fpng)`, `HTML` 等。\n4. 上传后系统将自动进行解析、分块和向量化（可在界面查看处理进度）。\n\n### 4. 开始问答\n1. 文件状态变为“就绪”后，在对话框中输入问题。\n2. 系统基于两阶段检索（召回 + 重排序）生成答案，并展示引用来源。\n3. 支持中英文混合提问，无论文档是何种语言，均可自由切换问答语言。\n\n### 5. 停止服务\n如需关闭服务，在项目根目录执行：\n\n```bash\ndocker compose down\n```\n\n---\n**提示**：更多高级功能（如自定义 Bot、API 调用、断网离线使用等）请参考官方完整文档。","某大型律所的知识产权团队每天需处理数百份跨语言的专利文档、技术白皮书及内部案件记录，急需从中快速提取关键信息以应对客户的紧急咨询。\n\n### 没有 QAnything 时\n- 律师助理需人工逐份打开 PDF、Word 或扫描件，耗时数小时手动查找特定技术参数或法律条款，效率极低。\n- 面对中英文混合的非结构化文档，传统关键词搜索无法理解语义，常遗漏关键上下文或返回大量无关结果。\n- 不同格式的文件（如图片型 PDF、表格复杂的 Excel）需要预先进行繁琐的格式转换和清洗，否则无法被检索系统识别。\n- 新人培训成本高，资深律师的经验难以沉淀，导致回答客户问题时标准不一，且无法追溯答案的具体出处。\n\n### 使用 QAnything 后\n- 团队将海量异构文档一键导入 QAnything，系统自动解析并建立索引，律师可通过自然语言提问，秒级获得精准答案。\n- 凭借强大的多语言语义理解能力，QAnything 能准确跨越中英文障碍，直接定位到包含特定技术细节的段落，无需担心术语差异。\n- 无需预处理，QAnything 原生支持 PDF、图片、Markdown 等多种格式，自动提取表格和图文内容，大幅减少数据清洗工作。\n- 生成的每一个答案都附带明确的原文引用链接，律师可立即核对源文件，既保证了回复的准确性，又实现了知识的高效传承。\n\nQAnything 将原本需要数小时的人工检索工作压缩至分钟级，让法律团队能从繁琐的文档挖掘中解放出来，专注于高价值的策略分析。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnetease-youdao_QAnything_4983619f.png","netease-youdao","NetEase Youdao","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fnetease-youdao_86654dba.png",null,"Beijing","http:\u002F\u002Fwww.youdao.com","https:\u002F\u002Fgithub.com\u002Fnetease-youdao",[80,84,88,92,96,100,104,108],{"name":81,"color":82,"percentage":83},"Python","#3572A5",64.1,{"name":85,"color":86,"percentage":87},"Vue","#41b883",26.9,{"name":89,"color":90,"percentage":91},"TypeScript","#3178c6",6.8,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0.8,{"name":97,"color":98,"percentage":99},"SCSS","#c6538c",0.7,{"name":101,"color":102,"percentage":103},"HTML","#e34c26",0.5,{"name":105,"color":106,"percentage":107},"JavaScript","#f1e05a",0.1,{"name":109,"color":110,"percentage":107},"Dockerfile","#384d54",13927,1343,"2026-04-05T16:50:08","AGPL-3.0","Linux, macOS, Windows","非必需。默认在纯 CPU 环境下运行；若使用自定义大模型，最低支持 GTX 1050Ti。","未说明",{"notes":119,"python":117,"dependencies":120},"v2.0 版本后统一使用 Docker Compose 一键启动，无需单独配置 Python 环境。支持断网离线使用。若需替换或自定义大模型（如 QwenLM），需遵循相应模型的许可协议及硬件要求。",[121,122],"Docker","Docker Compose",[35,14,16],"2026-03-27T02:49:30.150509","2026-04-06T15:55:34.741431",[127,132,137,142,147,151],{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},19527,"使用 cloud 模式或特定显卡时遇到“获取算力出错”或找不到显卡型号的问题怎么办？","该问题通常是因为旧版本脚本无法自动识别某些显卡型号。解决方法有两种：\n1. 手动获取显卡算力：使用 CUDA 工具获取显卡的算力值，然后按照格式将其填入本地的算力 JSON 配置文件中。\n2. 修改脚本：在 bash 启动脚本中，将检测算力的函数直接写死为你的显卡算力结果。\n注意：维护者表示在新版本中已优化此逻辑，更新到最新版本通常可自动解决。","https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fissues\u002F245",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},19528,"启动服务时一直等待后端服务启动，或者报 Milvus 连接超时错误如何解决？","这通常是由于系统内存不足导致的。QAnything 包含多个组件（如 rerank, embedding, ocr, llm 等），对内存要求较高。\n建议将可用内存提升至 20GB 以上。根据用户实测，一次性模式下各组件总内存占用约为 24.47GB。如果只有 16GB 内存，可能会频繁出现连接超时或服务无法启动的情况。请尝试增加物理内存或调整 Docker 容器的内存限制。","https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fissues\u002F517",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},19529,"在使用 `run_for_cloud_option.sh` 对接外部 OpenAI 兼容接口时，为什么还需要检查 FastChat 的校验和？","这是旧版本脚本的一个冗余检查。实际上，当使用 `run_for_cloud_option.sh` 对接云端或外部大模型服务时，并不依赖本地的 FastChat 模块。\n维护者已确认：在最新版本中，FastChat 的依赖和相关校验步骤已被移除。如果您遇到此问题，建议直接升级到最新版本的 QAnything 即可解决，无需手动修改脚本。","https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fissues\u002F101",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},19530,"Docker Compose 部署完成后，日志提示找不到 PyTorch 或 TensorFlow，模型不可用是怎么回事？","如果日志中出现 \"None of PyTorch, TensorFlow >= 2.0, or Flax have been found\" 但服务端口（如 8777）已正常启动，这通常是因为该日志来自仅负责 API 转发的轻量级容器，而非推理核心容器。\n只要 Sanic 服务显示 \"Goin' Fast\" 且状态为 production mode，说明 API 层已就绪。真正的模型推理是在其他专用容器（如 Triton Server 或 LLM 容器）中进行的。请检查其他容器的日志确认模型加载状态，若其他容器正常则忽略此警告。","https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fissues\u002F4",{"id":148,"question_zh":149,"answer_zh":150,"source_url":141},19531,"如何在局域网内通过 `run_for_cloud_option.sh` 调用已部署的 Qwen14B 或 Qwen72B 模型？","可以通过配置 One-API 或直接修改模型配置文件来实现。如果您的内网已经部署了支持 OpenAI 协议的大模型服务（如通过 vLLM 或 FastChat 部署的 Qwen 模型），可以在 QAnything 的配置文件中指定该服务的 API Base URL 和 API Key。\n具体操作是找到模型配置文件（通常在 config 目录下），将模型提供商设置为自定义 OpenAI 兼容接口，并填入内网服务的地址。新版脚本已移除了不必要的本地依赖，更便于此类集成。",{"id":152,"question_zh":153,"answer_zh":154,"source_url":136},19532,"Windows 和 Linux 下使用 docker-compose 启动时遇到 MySQL 远程访问权限错误或后端卡住怎么办？","这个问题往往是由资源不足引发的连锁反应。虽然报错显示 MySQL 权限问题，但根本原因通常是内存不足导致数据库容器初始化失败或响应超时，进而引发后续服务的连接等待。\n解决方案：\n1. 优先检查并增加宿主机内存至 20GB 以上。\n2. 确保 Docker Desktop (Windows) 或 Docker Engine (Linux) 分配了足够的资源给容器。\n3. 如果是权限问题残留，可尝试重置 MySQL 容器数据卷后重新启动。",[156,161,166,171,176,181,186,191,196],{"id":157,"version":158,"summary_zh":159,"released_at":160},117609,"v2.0.0","# 🎉🎉🎉QAnything v2.0.0 发布！\n\n## 全新发布v2.0.0\n\n## 新特性\n### 合并Docker与Python版-[qanything-v2分支](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Ftree\u002Fqanything-v2)\n* 前端大更新：支持更新信息展示，全部问答及解析参数配置，解析结果预览及编辑\n    * 信息展示包括：上传文件进度，解析各阶段耗时，失败原因，问答各阶段耗时，问答日志，数据统计等等\n* 解析效果提升：xlsx，pdf，docx，html等均有优化，详见[新旧解析效果对比](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fblob\u002Fqanything-v2\u002FREADME_zh.md#%E6%96%B0%E6%97%A7%E8%A7%A3%E6%9E%90%E6%95%88%E6%9E%9C%E5%AF%B9%E6%AF%94)\n* 检索效果提升：metadata信息嵌入，chunks切片逻辑优化，检索结果自动融合并排序\n* 支持快速开始模式：类似kimi，文件即传即问，支持无文件问答\n* 支持仅检索模式：仅返回检索结果，不调用大模型\n* 上传文件逻辑优化，解析文件与问答请求独立处理\n* Bot指令遵循能力优化\n* 支持多对话窗口\n* 启动方式优化，不再依赖脚本，改为docker compose命令行启动\n* Docker镜像大小优化，mac下仅有4GB，linux\u002Fwindows下9GB\n* windows可直接启动，不再依赖WSL\n\n## 新贡献者\n* @Ianarua 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F475进行了首次贡献","2024-08-30T09:26:41",{"id":162,"version":163,"summary_zh":164,"released_at":165},117610,"v1.4.2","# 🎉🎉🎉QAnything v1.4.2 发布！\n\n## 全新发布v1.4.2\n\n## 新特性\n### Python版本-[qanything-python分支](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Ftree\u002Fqanything-python)\n* 添加更便捷的启动方法（需提供openai，ollama等LLM服务的api-key），只需要一行代码就可以自动配置conda虚拟环境并启动项目，（WIN（WSL）、Mac、LInux下所有启动脚本合并为两个：run_for_CPU.sh\u002Frun_for_GPU.sh，支持python2环境）\n* 优化控制台日志输出，可以在终端输出更详细的日志\n* 将一部分常用参数的值调整至根目录配置文件（config.py）下统一管理，增加更多可自定义的参数\n* 将pdf格式转markdown格式的模块独立为子模块，在执行pip install -e .命令后可以在本地独立使用\n* 修复联网检索模块在检索到的数据内容过长时会导致本地知识库内容无法正常获取的问题\n* 优化联网检索的文档分割效果，并优化上传失败文档的错误信息展示。\n* 修复了表格解析报错，rerank重复执行，opencv安装失败，rerank执行出错，单次前端问答多次调用后端问答接口等一系列bug。\n\n## 新贡献者\n* @ikun-moxiaofei 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F384 进行了首次贡献（共17PR）\n* @glorialucheng 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F447 进行了首次贡献","2024-08-15T03:02:23",{"id":167,"version":168,"summary_zh":169,"released_at":170},117611,"v1.4.1","# 🎉🎉🎉QAnything v1.4.1 发布！\n\n## 全新发布v1.4.1\n\n## 新特性\n### Docker版本-[master分支](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Ftree\u002Fmaster)\n* 支持其他与OpenAI-API兼容的大模型服务，包含Ollama、通义千问DashScope等\n* 支持多卡推理\n* 修复使用OpenAI-API时提示找不到whl文件的问题\n### Python版本-[qanything-python分支](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Ftree\u002Fqanything-python)\n* 支持其他与OpenAI-API兼容的大模型服务，包含Ollama、通义千问DashScope等\n* PDF文件解析效果优化（包含表格效果）\n* 修复部分Linux系统（比如CentOS 7）glibc版本过低时无法启动的问题（onnxruntime-gpu[CUDA 12.x]自动切换为onnxruntime）\n* 修复Mac下embedding和rerank速度异常慢的问题\n* 修复部分问答无数据来源的问题\n* 前端支持联网检索结果直接点击跳转\n* 优化OCR，速度和效果提升；且首次启动时无需下载OCR模型，启动时间优化至60秒内\n* 支持无显卡Linux机器启动纯CPU版，优化使用CPU模式或OpenAI-API接口调用大模型时的资源占用\n\n## 新贡献者\n* @WuErPing 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F322 进行了首次贡献","2024-05-20T03:27:06",{"id":172,"version":173,"summary_zh":174,"released_at":175},117612,"v1.4.0-python","# 🎉🎉🎉QAnything v1.4.0-python 发布!\n\n## 全新发布qanything-python分支作为v1.4.0-python\n\n## 新特性\n* 支持联网搜索\n* 支持FAQ问答\n* 支持自定义Bot\n* 支持语音文件\n* 支持文件溯源预览\n* 支持问答日志检索\n* 支持国产OS（OpenCloudOS）\n\n变更内容\n[@cunhanfeng](https:\u002F\u002Fgithub.com\u002Fcunhanfeng) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F259 增加了语音文件支持\n[@dliting](https:\u002F\u002Fgithub.com\u002Fdliting) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F209 更新了 README_zh.md\n[@xixihahaliu](https:\u002F\u002Fgithub.com\u002Fxixihahaliu) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F244 修复了已知问题\n[@xixihahaliu](https:\u002F\u002Fgithub.com\u002Fxixihahaliu) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F264 开发了 v1.3.1 版本\n[@successren](https:\u002F\u002Fgithub.com\u002Fsuccessren) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F297 开发了 v1.3.1 版本\n新贡献者\n[@cunhanfeng](https:\u002F\u002Fgithub.com\u002Fcunhanfeng) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F259 进行了首次贡献\n[@dliting](https:\u002F\u002Fgithub.com\u002Fdliting) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F209 进行了首次贡献\n完整更新日志: [https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.3.3…v1.4.0-python](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.3.3%E2%80%A6v1.4.0-python)\n\n\n\n\n\n# 🎉🎉🎉QAnything v1.4.0-python released!\n\n## New release of qanything-python branch for v1.4.0-python\n\n## What's New\n* Support web search\n* Support FAQ Q&A\n* Support custom bot\n* Support audio files\n* Support file traceability preview\n* Support Q&A log retrieval\n* Support Chinese domestic OS (OpenCloudOS)\n\n## What's Changed\n* Add audio support by @cunhanfeng in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F259\n* Update README_zh.md by @dliting in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F209\n* Fix known issues by @xixihahaliu in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F244\n* Develop for v1.3.1 by @xixihahaliu in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F264\n* Develop for v1.3.1 by @successren in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F297\n\n## New Contributors\n* @cunhanfeng made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F259\n* @dliting made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F209\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.3.3...v1.4.0-python","2024-04-26T08:49:36",{"id":177,"version":178,"summary_zh":179,"released_at":180},117613,"v1.3.3","# 🎉🎉🎉QAnything v1.3.3 发布!\n\n## 新特性\n- 解决跨域问题，加载前端静态资源即可访问页面，启动更快\n- 解决ES权限问题\n- mysql连接数增大到32\n- 不再限制N卡型号，废弃显卡型号查表，使用pycuda查询显卡算力\n- 读取excel文件中所有sheet\n- 文档更新\n- 其他bug修复\n\n## 变更内容\n* 解决跨域问题 #44 #188 #121 ，加载前端静态资源即可访问页面，启动更快 by @xixihahaliu @successren in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F237\n* adds documentation for debugging in IDE by @sai-krishna-raparthi in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F219\n* Update QAnything_Startup_Usage_README.md by @yy307 in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F214\n* Update QAnything_Startup_Usage_README.md by @eltociear in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F210\n* Read all sheets from excel file by @Ma-Dan in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F200\n* fixed question Comment by @denvey in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F172\n* 修复milvus查询到的source document中，expand doc score为字符串的问题 by @liuyijiang1994 in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F166\n\n## 新贡献者\n* @sai-krishna-raparthi made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F219\n* @yy307 made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F214\n* @Ma-Dan made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F200\n* @denvey made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F172\n* @liuyijiang1994 made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F166\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.3.0...v1.3.3\n\n\n\n\n# 🎉🎉🎉QAnything v1.3.3 released!\n\n## What's New\n- resolve cross-origin issues, load frontend static resources to access the page without the need to start the frontend service, resulting in faster startup.\n- Address ES (Elasticsearch) permission problems.\n- Increase the MySQL connection pool size to 32.\n- Remove restrictions on Nvidia GPU types, abandon the use of a lookup table for GPU types, and use PyCuda to query GPU computing power.\n- Read all sheets in the Excel file\n- Document update\n- Other bug fixes\n\n\n## What's Changed\n* resolve cross-origin issues  #44 #188 #121 , load frontend static resources to access the page without the need to start the frontend service, resulting in faster startup. by @xixihahaliu  @successren in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F237\n* adds documentation for debugging in IDE by @sai-krishna-raparthi in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F219\n* Update QAnything_Startup_Usage_README.md by @yy307 in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F214\n* Update QAnything_Startup_Usage_README.md by @eltociear in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F210\n* Read all sheets from excel file by @Ma-Dan in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F200\n* fixed question Comment by @denvey in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F172\n* 修复milvus查询到的source document中，expand doc score为字","2024-04-09T10:12:05",{"id":182,"version":183,"summary_zh":184,"released_at":185},117614,"v1.3.0","# 🎉🎉🎉QAnything v1.3.0 发布！\r\n## 新特性\r\n1. 支持在纯Python环境中安装，可以在MAC上运行，也可以在纯CPU机器上运行。[详见：纯Python环境安装教程](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fblob\u002Fqanything-python-v1.3.1\u002FREADME_zh.md#%E7%BA%AFpython%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B)\r\n2. 支持混合检索（BM25+Embedding）。\r\n3. 当系统命令缺失时，下载提示更清晰。\r\n4. 自动检测显卡的计算能力和内存大小，并根据情况自动调整默认启动参数，以提供用户最佳体验，并给予相关提示。\r\n5. 更新前置条件，最低支持 GTX1050Ti，支持更多显卡型号。\r\n6. 提示用户代码仓库是否为最新，仅适用于主分支。\r\n7. 优化启动流程，自动查询相关日志并在前端显示错误消息，避免连续输出 'waiting for coffee'。\r\n8. 在前端添加英文版本。\r\n9. 修复已知的错误，优化用户体验。（在 Milvus 插入失败时，请记得删除根目录下的 \"volumes\" 文件夹。）\r\n\r\n## 变更内容\r\n* 修复启动脚本已知问题。由 [@xixihahaliu](https:\u002F\u002Fgithub.com\u002Fxixihahaliu) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F92\r\n* 修复已知问题，优化用户体验。由 [@xixihahaliu](https:\u002F\u002Fgithub.com\u002Fxixihahaliu) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F102\r\n* Milvus增加用户名、密码、数据库名支持。由 [@cklogic](https:\u002F\u002Fgithub.com\u002Fcklogic) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F97\r\n* feat_#114: 为 NVIDIA GeForce RTX 4090D 添加 GPU 兼容性检查。由 [@johnymoo](https:\u002F\u002Fgithub.com\u002Fjohnymoo) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F115\r\n* 修复：由 [@pinkcxy](https:\u002F\u002Fgithub.com\u002Fpinkcxy) 提交的轮次控制问题。https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F131\r\n* 问题修复：调用api\u002Fapi\u002Flocal_doc_qa\u002Flocal_doc_chat返回数据为None。由 [@leehom0123](https:\u002F\u002Fgithub.com\u002Fleehom0123) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F137\r\n* 优化解析 csv 和 xlsx 文件的逻辑。此外，现在支持离线运行 Docker 镜像。由 [@xixihahaliu](https:\u002F\u002Fgithub.com\u002Fxixihahaliu) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F139\r\n* 混合搜索。由 [@shenlei1020](https:\u002F\u002Fgithub.com\u002Fshenlei1020) 提交于 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F194\r\n\r\n新贡献者\r\n[@pinkcxy](https:\u002F\u002Fgithub.com\u002Fpinkcxy) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F100 中首次贡献\r\n[@cklogic](https:\u002F\u002Fgithub.com\u002Fcklogic) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F97 中首次贡献\r\n[@johnymoo](https:\u002F\u002Fgithub.com\u002Fjohnymoo) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F115 中首次贡献\r\n[@leehom0123](https:\u002F\u002Fgithub.com\u002Fleehom0123) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F137 中首次贡献\r\n[@shenlei1020](https:\u002F\u002Fgithub.com\u002Fshenlei1020) 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F194 中首次贡献\r\n\r\n完整变更记录：[https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.2.0…v1.3.0](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.2.0%E2%80%A6v1.3.0)\r\n\r\n\r\n\r\n\r\n\r\n\r\n# 🎉🎉🎉QAnything v1.3.0 released!\r\n\r\n## What's New\r\n1. Support installation in a pure Python environment, which can run on MAC or other CPU only machine。 [see: Pure Python Environment Installation Guid](https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fblob\u002Fqanything-python-v1.3.1\u002FREADME.md#pure-python-environment-installation-guide)\r\n2. Support hybrid search（BM25+Embedding）\r\n3. When the system command is missing, the download prompt is clearer。\r\n4. Automatically detect the computing power and memory size of the graphics card, and automatically adjust the default startup parameters accordingly to provide users with the best experience, and give relevant prompts。\r\n5. Update Prerequi","2024-04-03T12:59:35",{"id":187,"version":188,"summary_zh":189,"released_at":190},117615,"v1.2.0","# 🎉🎉🎉QAnything v1.2.0发布！\n\n## 新特性\n\n* 支持自定义LLM：\n  - 支持本地LLM和云LLM切换，云LLM支持openai chatgpt API。\n  - 支持三种LLM推理运行后端，包括FasterTransformer（默认）、huggingface和vllm。\n  - 通过FastChat Server API支持加载各种开源大语言模型。\n  - 发布了微调后的千问7B的模型：https:\u002F\u002Fhuggingface.co\u002Fnetease-youdao\u002FQwen-7B-QAnything\n* 修复两个安全漏洞：\n  - 多个函数中的SQL注入漏洞，漏洞名称：SQL注入 - CWE-89\n  - LocalFile类中的文件上传漏洞，漏洞名称：文件上传 - CWE-434\n* 适配更多显卡：\n  - 在使用huggingface transformers作为LLM运行后端时，理论上支持Nvidia显卡的计算能力为6.0及以上。\n* 更加用户友好：\n  - 将所有日志文件放在一个目录中，便于调试。\n  - 添加了一些启动提示信息。\n* 其他更新\n\n## 更新内容\n\n* 支持QAnything中的公共LLM和OpenAI API作为LLM服务。由 @songkq 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F78 中贡献\n* 提供了QAnything启动命令和LLM接口的详细使用方法。由 @songkq 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F78 中贡献\n* 修复了SQL注入和文件名注入的安全漏洞。由 @xixihahaliu 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F76 中贡献\n* 优化日志信息显示，便于调试。由 @xixihahaliu 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F76 中贡献\n* 添加了一些启动提示信息。由 @xixihahaliu 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F77 中贡献\n* 修复: 上传失败时提示失败。由 @dongfeng3692 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F72 中贡献\n* 更新最大上传文件大小的注释 由 @dongfeng3692 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F71中贡献\n* 修复: 在windows下使用git bash运行 by @yorelog 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F61中贡献\n* linux 1. 解决网络不通导致npm安装异常问题 2. 解决swagger外网拉取慢的问题  由 @01000100GT 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F69中贡献\n\n## 新贡献者\n\n* @xixihahaliu 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F76 中首次贡献\n* @songkq 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F78 中首次贡献\n* @mvlttt 报告了关于SQL注入和文件名注入的两个安全漏洞\n* @dongfeng3692 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F72 中首次贡献\n* @01000100GT 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F69 中首次贡献\n\n完整变更记录: https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.1.1...v1.2.0\n\n\n\n\n\n\n# 🎉🎉🎉QAnything v1.2.0 released!\n\n## What's New\n\n* Custom LLMs is supported:\n  - Local LLMs and cloud LLMs switching is supported, cloud LLMs support openai chatgpt API.\n  - Supports three LLM inference runtime backends, include FasterTransformer(default), huggingface and vllm.\n  - Supports loading various public large language models via the FastChat Server API.\n  - Our finetuned Qwen 7B model is released at https:\u002F\u002Fhuggingface.co\u002Fnetease-youdao\u002FQwen-7B-QAnything\n* Fixed two security vulnerabilities:\n  - SQL injection in multiple functions，Vulnerability name: SQL injection - CWE-89\n  - File upload in LocalFile class, Vulnerability name: File upload - CWE-434\n* Adapted for more GPUs:\n  - Theoretically supports Nvidia GPUs with a compute capability of 6.0 and above when using huggingface transformers as the LLM runtime backend.\n* More user-friendly :\n  - Put all log files in one directory for easy debugging.\n  - Add some startup prompt messages.\n  - The front-end page will return results in a streaming manner.\n* Other updates\n\n## What's Changed\n\n* Support public LLMs and OpenAI API as a LLM service in QAnything. b","2024-01-30T09:12:28",{"id":192,"version":193,"summary_zh":194,"released_at":195},117616,"v1.1.1","## 变更内容\n* 更新 README.md，由 @eltociear 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F35 中完成\n* 更新 README，添加邮箱信息，由 @successren 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F48 中完成\n* 更新 SECURITY.md，添加邮箱信息，由 @successren 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F49 中完成\n* 常见问题：Windows 下端口不可用错误，由 @yorelog 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F52 中解决\n* 修复：在 Windows 下使用 Git Bash 运行的问题，由 @yorelog 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F51 中修复\n* 修复：默认开启重排序功能，由 @successren 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F59 中完成\n\n## 新贡献者\n* @eltociear 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F35 中完成了首次贡献\n* @successren 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F48 中完成了首次贡献\n* @yorelog 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F52 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcompare\u002Fv1.1.0...v1.1.1","2024-01-23T10:10:40",{"id":197,"version":198,"summary_zh":199,"released_at":200},117617,"v1.1.0","# 🎉🎉🎉QAnything v1.1.0发布！\n\n## 新特性\n\n* 优化启动流程以支持一键初始化：执行 \"bash run.sh\" 即可启动。\n* 增强安装过程的交互性，提供更友好的用户提示。\n* 提高显存利用率以支持多GPU部署，目前支持单卡或双卡部署，双卡设置的显存使用量分别为 *11GB 和 5GB。\n* 将矢量库的体积减少到原来的三分之一。\n* 优化xlsx和html文件的分块处理，防止因块过大而导致解析失败。\n* 当知识库仅包含单个文档时，提高回答的有效性。\n* 提高PDF解析的有效性和速度。\n* 提供原始未修改的DockerFile。\n\n## 变更内容\n* @jsoncode 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F7 添加了Windows平台的启动脚本\n* @jsoncode 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F11 优化了前端构建逻辑\n* @jsoncode 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F12 更新了front_end package.json\n* @jsoncode 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F14 更新了front_end配置和代理\n\n## 新贡献者\n* @jsoncode 在 https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F7 做出了他们的首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcommits\u002Fv1.1.0\n\n# 🎉🎉🎉QAnything v1.1.0 released!\n## Features\n* Optimize the startup process to support one-click initialization: execute \"bash run.sh\" to start.\n* Enhance the interactivity of the installation process, providing more user-friendly prompts.\n* Improve VRAM utilization to support multi-GPU deployment, currently supporting single or dual card deployment with VRAM usage of * 11GB and 5GB for dual-card setups, respectively.\n* Reduce the footprint of the vector library to one third of its original size.\n* Optimize chunking of xlsx and html files to prevent parsing failure caused by oversized chunks.\n* Enhance the effectiveness of answering when the knowledge base contains only a single document.\n* Improve PDF parsing effectiveness and speed.\n* Provide the original unmodified DockerFile.\n\n\n## What's Changed\n* Add startup script on windows platform by @jsoncode in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F7\n* Optimize front-end construction logic by @jsoncode in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F11\n* feat: update front_end package.json by @jsoncode in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F12\n* update front_end config and proxy by @jsoncode in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F14\n\n## New Contributors\n* @jsoncode made their first contribution in https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fpull\u002F7\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fnetease-youdao\u002FQAnything\u002Fcommits\u002Fv1.1.0","2024-01-18T14:08:50"]