[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Alibaba-NLP--ViDoRAG":3,"tool-Alibaba-NLP--ViDoRAG":62},[4,18,26,36,46,54],{"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 真正成长为懂上",160411,2,"2026-04-18T23:33:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":77,"owner_website":77,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":77,"difficulty_score":92,"env_os":93,"env_gpu":94,"env_ram":93,"env_deps":95,"category_tags":106,"github_topics":77,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":108,"updated_at":109,"faqs":110,"releases":151},9490,"Alibaba-NLP\u002FViDoRAG","ViDoRAG","[EMNLP 2025] ViDoRAG: Visual Document Retrieval-Augmented Generation via Dynamic Iterative Reasoning Agents","ViDoRAG 是一款专为视觉丰富文档（如扫描版 PDF、图表报告）设计的检索增强生成（RAG）框架。它主要解决了传统 AI 在处理包含大量图片、复杂排版文档时，难以精准定位信息且容易受噪声干扰的痛点，特别擅长应对需要跨页或多步骤推理的复杂问答任务。\n\n该工具非常适合人工智能研究人员、开发者以及需要构建企业级文档知识库的技术团队使用。其核心亮点在于引入了“动态迭代推理智能体”机制，采用多智能体协作的“演员 - 评论家”范式，让模型能像人类专家一样反复思考、验证检索结果，从而显著提升答案的准确性与鲁棒性。此外，ViDoRAG 创新性地结合了高斯混合模型（GMM），实现了文本与视觉特征的高效混合检索，确保不遗漏关键图像信息。项目还开源了专用的 ViDoSeek 基准数据集，支持用户灵活集成不同的嵌入模型来定制检索器，为视觉文档理解领域树立了新的技术标杆。","\n\u003C!-- # \u003Cdiv align=\"center\">ViDoRAG: Visual Document Retrieval-Augmented Generation via Dynamic Iterative Reasoning Agents\u003Cdiv> -->\n\u003C!-- # \u003Cdiv align=\"center\">ViDoRAG\u003Cdiv>\n\u003Cdiv align=\"center\">\n\u003Cstrong>\n\u003Ch3>Visual Document Retrieval-Augmented Generation via Dynamic Iterative Reasoning Agents\u003C\u002Fh3>\n\u003C\u002Fstrong>\n\u003C\u002Fdiv> -->\n\n# ViDoRAG: Visual Document Retrieval-Augmented Generation via Dynamic Iterative Reasoning Agents\n\n\n\u003Cdiv align=\"center\">\n\u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fautumncc\u002FViDoSeek'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Datasets-green'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.18017'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPaper-arXiv-red'>\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003C!-- \u003Cp align=\"center\">•\n \u003Ca href=\"#-Overview\"> 🚀Overview \u003C\u002Fa> •\n \u003Ca href=\"#-visrag-pipeline\">✨ VisRAG Pipeline\u003C\u002Fa> •\n \u003Ca href=\"#%EF%B8%8F-setup\">⚙️ Setup\u003C\u002Fa> •\n \u003Ca href=\"#%EF%B8%8F-training\">⚡️ Training\u003C\u002Fa> \n\u003C\u002Fp> -->\n\n\u003Cdiv align=\"center\">\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAlibaba-NLP_ViDoRAG_readme_75d8ede69773.jpg\" width=\"65%\" height=\"50%\" \u002F>\n\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n## 🔥 News\n- 🎉 We have released the evaluation code, allowing you to customize your own evaluation pipeline.\n- 🎉 Our framework integrates various embedding models, enabling you to create your own retriever.\n- 🎉 We have released the ViDoSeek dataset, which is suitable for Retrieval-augmented Generation in the large visually rich document collection.\n\n## 🚀Overview\n- We introduce **ViDoSeek**, a benchmark specifically designed for visually rich document retrieval-reason-answer, fully suited for evaluation of RAG within large document corpus.\n- We propose **ViDoRAG**, a novel RAG framework that utilizes a multi-agent, actor-critic paradigm for iterative reasoning, enhancing the noise robustness of generation models. \n- We introduce a GMM-based multi-modal hybrid retrieval strategy to effectively integrate visual and textual pipelines.\n- Extensive experiments demonstrate the effectiveness of our method. ViDoRAG significantly outperforms strong baselines, achieving over 10% improvement, thus establishing a new state-of-the-art on ViDoSeek.\n\n## 🔍ViDoSeek Dataset\n\nWe release our ViDoSeek dataset which designed for visually rich document retrieval-reason-answer. In ViDoSeek, each query has a unique answer and specific reference pages.\n\nThe provided JSON structure includes a unique identifier (uid) to distinguish queries, the query content (query), a reference answer (reference_answer), and metadata (meta_info) containing the original file name (file_name), reference page numbers (reference_page), data source type (source_type), and query type (query_type):\n```json\n{\n    \"uid\": \"04d8bb0db929110f204723c56e5386c1d8d21587_2\",\n    \"query\": \"What is the temperature of Steam explosion of Pretreatment for Switchgrass and Sugarcane bagasse preparation?\", \n    \"reference_answer\": \"195-205 Centigrade\", \n    \"meta_info\": {\n        \"file_name\": \"Pretreatment_of_Switchgrass.pdf\", \n        \"reference_page\": [10, 11], \n        \"source_type\": \"Text\", \n        \"query_type\": \"Multi-Hop\" \n    }\n}\n```\nYou can use Git LFS to download annotation files and original documents from Hugging Face or ModelScope. The format of the files can refer to `.\u002Fdata\u002FExampleDataset`.\n\n### Download the dataset\n```bash\nbash scripts\u002FViDoSeek_down.sh\n```\n\nThen, you can use the following script to convert the original file into images:\n```python\npython .\u002Fscripts\u002Fpdf2images.py\n```\n\nOptionally, you can use OCR models or Vision-Language Models (VLMs) to recognize text within images:\n```python\n## triditional OCR models\npython .\u002Fscripts\u002Focr_triditional.py \n## VLMs as ocr models (Optional)\npython .\u002Fscripts\u002Focr_vlms.py \n```\n\n\n## 💻 Running ViDoRAG\nViDoRAG is a novel multi-agent RAG framework tailored for complex reasoning across visual documents. ViDoRAG employs a Gaussian Mixture Model (GMM)-based hybrid strategy to effectively handle multi-modal retrieval.\n\n\u003Cdiv align=\"center\">\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAlibaba-NLP_ViDoRAG_readme_abab436c6809.jpg\" width=\"80%\" height=\"50%\" \u002F>\n\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\n### Dependencies\n```bash\n# Create environment\nconda create -n vidorag python=3.10\n# Clone project\ngit clone https:\u002F\u002Fgithub.com\u002Falibaba-nlp\u002FViDoRAG.git\ncd ViDoRAG\n# Install requirements\npip install -r requirements.txt\n```\nOr you can use `uv` to install the dependencies:\n```bash\npip install uv\nuv venv -p 3.10\nuv sync\n```\n\nWe recommend following the guidance of the [Colpali-engine](https:\u002F\u002Fgithub.com\u002Filluin-tech\u002Fcolpali) and the [Transformer](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) library to install the most suitable version.\n\u003C!-- > ⚠️ During our code review process, we discovered that the latest versions of Transformer, Llama Index, Copali Engine, and Qwen 2.5 are incompatible with each other. We recommend setting up separate environments for retriever and generation tasks. Detailed guidelines will be provided later. -->\n\nBelow is a step-by-step guide to help you run the entire framework on your own dataset. You can also use individual modules independently:  \n\n### Step1. Build the Index Database\nOur framework is built on the foundation of the Llama-Index. We preprocess the corpus in advance and then establish an index database. \n\nBefore embedding the whole dataset, you can run `.\u002Fllms\u002Fvl_embedding.py` to check whether the embedding model is loaded correctly:\n```python\npython .\u002Fllms\u002Fvl_embedding.py\n```\nThen, you can run `ingestion.py` to embedding the whole dataset:\n```python\n# Document ingestion and Multi-Modal Embedding\npython .\u002Fingestion.py\n```\n### Step2. Run Multi-Modal Retriever\nTry using the basic single-modal search engine:\n```python\nfrom search_engine import SearchEngine\n# initial engine\nsearch_engine = SearchEngine(dataset='ViDoSeek', node_dir_prefix='colqwen_ingestion',embed_model_name='vidore\u002Fcolqwen2-v1.0')\n# Retrieve some results\nrecall_results = search_engine.search('some query')\n```\n\nTry using the dynamic single-modal search engine with GMM:\n```python\nfrom search_engine import SearchEngine\n# initial engine\nsearch_engine = SearchEngine(dataset='ViDoSeek', node_dir_prefix='colqwen_ingestion',embed_model_name='vidore\u002Fcolqwen2-v1.0')\n# Set parameters of dynamic retriever\nsearch_engine.gmm = True\nsearch_engine.input_gmm = 20 # The default setting is K\n# Retrieve some results using dynamic recall\nrecall_results = search_engine.search('some query')\n```\n\nTry using the dynamic hybrid multi-modal search engine:\n```python\nfrom search_engine import HybridSearchEngine\n# initial engine\nhybrid_search_engine = HybridSearchEngine(dataset='ViDoSeek', embed_model_name_vl='vidore\u002Fcolqwen2-v0.1', embed_model_name_text='BAAI\u002Fbge-m3', gmm=True)\n# Retrieve some results using dynamic recall\nhybrid_recall_results = hybrid_search_engine.search('some query')\n```\n\nOptionally, you can choose to test these features in `search_engine.py`.\n\n### Step3. Run Multi-Agent Generation\nYou can directly use our script for generation in `vidorag_agents.py`, or you can integrate it into your own framework:\n```python\nfrom llms.llm import LLM\nvlm = LLM('qwen-vl-max')\nagent = ViDoRAG_Agents(vlm)\nanswer=agent.run_agent(query='Who is Tim?', images_path=['.\u002Fdata\u002FExampleDataset\u002Fimg\u002F00a76e3a9a36255616e2dc14a6eb5dde598b321f_1.jpg','.\u002Fdata\u002FExampleDataset\u002Fimg\u002F00a76e3a9a36255616e2dc14a6eb5dde598b321f_2.jpg'])\nprint(answer)\n```\n\n### Step4. Run Evaluation \nFor our end-to-end evaluation, we employed a LLM-based assessment:\n```bash\npython eval.py \\\n  --experiment_type retrieval_infer ## choose from retrieval_infer\u002Fdynamic_hybird_retrieval_infer\u002Fvidorag\n  --dataset ViDoSeek ## dataset folder name \n  --embed_model_name_vl ## vl embedding model name\n  --embed_model_name_text ## text embedding model name\n  --embed_model_name ## only for single embedding model eval, when you need not use vl or text above\n  --generate_vlm ## VLMs name eg. gpt-4o\u002Fqwen-max-vl\n\n```\n\n\n## 📝 Citation\n\n```bigquery\n@article{wang2025vidorag,\n  title={ViDoRAG: Visual Document Retrieval-Augmented Generation via Dynamic Iterative Reasoning Agents},\n  author={Wang, Qiuchen and Ding, Ruixue and Chen, Zehui and Wu, Weiqi and Wang, Shihang and Xie, Pengjun and Zhao, Feng},\n  journal={arXiv preprint arXiv:2502.18017},\n  year={2025}\n}\n```","\u003C!-- # \u003Cdiv align=\"center\">ViDoRAG：基于动态迭代推理智能体的视觉文档检索增强生成\u003Cdiv> -->\n\u003C!-- # \u003Cdiv align=\"center\">ViDoRAG\u003Cdiv>\n\u003Cdiv align=\"center\">\n\u003Cstrong>\n\u003Ch3>基于动态迭代推理智能体的视觉文档检索增强生成\u003C\u002Fh3>\n\u003C\u002Fstrong>\n\u003C\u002Fdiv> -->\n\n# ViDoRAG：基于动态迭代推理智能体的视觉文档检索增强生成\n\n\n\u003Cdiv align=\"center\">\n\u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fautumncc\u002FViDoSeek'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Datasets-green'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.18017'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPaper-arXiv-red'>\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003C!-- \u003Cp align=\"center\">•\n \u003Ca href=\"#-Overview\"> 🚀概述 \u003C\u002Fa> •\n \u003Ca href=\"#-visrag-pipeline\">✨ VisRAG 流程\u003C\u002Fa> •\n \u003Ca href=\"#%EF%B8%8F-setup\">⚙️ 设置\u003C\u002Fa> •\n \u003Ca href=\"#%EF%B8%8F-training\">⚡️ 训练\u003C\u002Fa> \n\u003C\u002Fp> -->\n\n\u003Cdiv align=\"center\">\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAlibaba-NLP_ViDoRAG_readme_75d8ede69773.jpg\" width=\"65%\" height=\"50%\" \u002F>\n\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n## 🔥 新闻\n- 🎉 我们已发布评估代码，允许您自定义专属的评估流程。\n- 🎉 我们的框架集成了多种嵌入模型，使您可以构建自己的检索器。\n- 🎉 我们发布了 ViDoSeek 数据集，该数据集适用于大型富含视觉信息的文档集合中的检索增强生成任务。\n\n## 🚀概述\n- 我们推出了 **ViDoSeek**，这是一个专为富含视觉信息的文档检索—推理—回答设计的基准，完全适用于大规模文档语料库中 RAG 模型的评估。\n- 我们提出了 **ViDoRAG**，一种新颖的 RAG 框架，采用多智能体、演员—评论家范式进行迭代推理，从而提升生成模型的抗噪能力。\n- 我们引入了一种基于 GMM 的多模态混合检索策略，以有效整合视觉与文本两条检索路径。\n- 大量实验表明我们的方法非常有效。ViDoRAG 显著优于强大的基线模型，性能提升了超过 10%，从而在 ViDoSeek 基准上树立了新的最先进水平。\n\n## 🔍ViDoSeek 数据集\n\n我们发布了 ViDoSeek 数据集，该数据集专为富含视觉信息的文档检索—推理—回答任务而设计。在 ViDoSeek 中，每个查询都有唯一的答案和特定的参考页码。\n\n提供的 JSON 结构包括一个唯一标识符（uid），用于区分查询；查询内容（query）；参考答案（reference_answer）；以及元数据（meta_info），其中包含原始文件名（file_name）、参考页码（reference_page）、数据来源类型（source_type）和查询类型（query_type）：\n```json\n{\n    \"uid\": \"04d8bb0db929110f204723c56e5386c1d8d21587_2\",\n    \"query\": \"制备柳枝稷和甘蔗渣预处理过程中蒸汽爆炸的温度是多少？\", \n    \"reference_answer\": \"195-205 摄氏度\", \n    \"meta_info\": {\n        \"file_name\": \"Pretreatment_of_Switchgrass.pdf\", \n        \"reference_page\": [10, 11], \n        \"source_type\": \"文本\", \n        \"query_type\": \"多跳\" \n    }\n}\n```\n您可以通过 Git LFS 从 Hugging Face 或 ModelScope 下载标注文件和原始文档。文件格式可参考 `.\u002Fdata\u002FExampleDataset`。\n\n### 下载数据集\n```bash\nbash scripts\u002FViDoSeek_down.sh\n```\n\n然后，您可以使用以下脚本将原始文件转换为图像：\n```python\npython .\u002Fscripts\u002Fpdf2images.py\n```\n\n可选地，您还可以使用 OCR 模型或视觉—语言模型（VLMs）来识别图像中的文字：\n```python\n## 传统 OCR 模型\npython .\u002Fscripts\u002Focr_triditional.py \n## VLMs 作为 OCR 模型（可选）\npython .\u002Fscripts\u002Focr_vlms.py \n```\n\n\n## 💻 运行 ViDoRAG\nViDoRAG 是一种新颖的多智能体 RAG 框架，专为跨视觉文档的复杂推理任务而设计。ViDoRAG 采用基于高斯混合模型（GMM）的混合策略，以有效处理多模态检索任务。\n\n\u003Cdiv align=\"center\">\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAlibaba-NLP_ViDoRAG_readme_abab436c6809.jpg\" width=\"80%\" height=\"50%\" \u002F>\n\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\n### 依赖项\n```bash\n# 创建环境\nconda create -n vidorag python=3.10\n# 克隆项目\ngit clone https:\u002F\u002Fgithub.com\u002Falibaba-nlp\u002FViDoRAG.git\ncd ViDoRAG\n# 安装依赖\npip install -r requirements.txt\n```\n或者您也可以使用 `uv` 来安装依赖：\n```bash\npip install uv\nuv venv -p 3.10\nuv sync\n```\n\n我们建议遵循 [Colpali-engine](https:\u002F\u002Fgithub.com\u002Filluin-tech\u002Fcolpali) 和 [Transformer](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) 库的指导，以安装最适合的版本。\n\u003C!-- > ⚠️ 在代码审查过程中，我们发现 Transformer、Llama Index、Copali Engine 和 Qwen 2.5 的最新版本彼此不兼容。我们建议为检索和生成任务分别设置独立的环境。详细指南将在稍后提供。 -->\n\n以下是帮助您在自己的数据集上运行整个框架的分步指南。您也可以单独使用各个模块：\n\n### 第一步：构建索引数据库\n我们的框架建立在 Llama-Index 的基础上。我们会预先对语料库进行处理，然后建立索引数据库。\n\n在对整个数据集进行嵌入之前，您可以先运行 `.\u002Fllms\u002Fvl_embedding.py` 来检查嵌入模型是否正确加载：\n```python\npython .\u002Fllms\u002Fvl_embedding.py\n```\n之后，您可以运行 `ingestion.py` 对整个数据集进行嵌入：\n```python\n# 文档摄取与多模态嵌入\npython .\u002Fingestion.py\n```\n\n### 第二步：运行多模态检索器\n尝试使用基础的单模态搜索引擎：\n```python\nfrom search_engine import SearchEngine\n# 初始化引擎\nsearch_engine = SearchEngine(dataset='ViDoSeek', node_dir_prefix='colqwen_ingestion',embed_model_name='vidore\u002Fcolqwen2-v1.0')\n# 检索一些结果\nrecall_results = search_engine.search('某个查询')\n```\n\n尝试使用带有 GMM 的动态单模态搜索引擎：\n```python\nfrom search_engine import SearchEngine\n# 初始化引擎\nsearch_engine = SearchEngine(dataset='ViDoSeek', node_dir_prefix='colqwen_ingestion',embed_model_name='vidore\u002Fcolqwen2-v1.0')\n# 设置动态检索参数\nsearch_engine.gmm = True\nsearch_engine.input_gmm = 20 # 默认设置为 K\n# 使用动态召回检索一些结果\nrecall_results = search_engine.search('某个查询')\n```\n\n尝试使用动态混合多模态搜索引擎：\n```python\nfrom search_engine import HybridSearchEngine\n# 初始化引擎\nhybrid_search_engine = HybridSearchEngine(dataset='ViDoSeek', embed_model_name_vl='vidore\u002Fcolqwen2-v0.1', embed_model_name_text='BAAI\u002Fbge-m3', gmm=True)\n# 使用动态召回检索一些结果\nhybrid_recall_results = hybrid_search_engine.search('某个查询')\n```\n\n可选地，您可以在 `search_engine.py` 中测试这些功能。\n\n### 步骤3. 运行多智能体生成\n您可以直接使用 `vidorag_agents.py` 中的脚本进行生成，也可以将其集成到您自己的框架中：\n```python\nfrom llms.llm import LLM\nvlm = LLM('qwen-vl-max')\nagent = ViDoRAG_Agents(vlm)\nanswer=agent.run_agent(query='谁是蒂姆？', images_path=['.\u002Fdata\u002FExampleDataset\u002Fimg\u002F00a76e3a9a36255616e2dc14a6eb5dde598b321f_1.jpg','.\u002Fdata\u002FExampleDataset\u002Fimg\u002F00a76e3a9a36255616e2dc14a6eb5dde598b321f_2.jpg'])\nprint(answer)\n```\n\n### 步骤4. 运行评估\n对于我们的端到端评估，我们采用基于大语言模型的评估方法：\n```bash\npython eval.py \\\n  --experiment_type retrieval_infer ## 可选值为 retrieval_infer\u002Fdynamic_hybird_retrieval_infer\u002Fvidorag\n  --dataset ViDoSeek ## 数据集文件夹名称 \n  --embed_model_name_vl ## 视觉-语言嵌入模型名称\n  --embed_model_name_text ## 文本嵌入模型名称\n  --embed_model_name ## 仅用于单一嵌入模型评估，当不需要使用视觉-语言或文本嵌入时\n  --generate_vlm ## 视觉-语言模型名称，例如 gpt-4o\u002Fqwen-max-vl\n\n```\n\n\n## 📝 引用\n\n```bigquery\n@article{wang2025vidorag,\n  title={ViDoRAG：基于动态迭代推理智能体的视觉文档检索增强生成},\n  author={王秋晨、丁瑞雪、陈泽辉、吴伟琪、王世航、谢鹏俊、赵峰},\n  journal={arXiv 预印本 arXiv:2502.18017},\n  year={2025}\n}\n```","# ViDoRAG 快速上手指南\n\nViDoRAG 是一个基于动态迭代推理智能体的视觉文档检索增强生成（RAG）框架，专为处理视觉丰富文档（如 PDF、图表混合文档）的复杂推理任务而设计。\n\n## 环境准备\n\n- **操作系统**: Linux \u002F macOS (推荐 Ubuntu 20.04+)\n- **Python 版本**: 3.10\n- **硬件要求**: 建议配备 NVIDIA GPU 以加速嵌入模型和 VLM 推理\n- **前置依赖**:\n  - Conda 或 uv (包管理工具)\n  - Git LFS (用于下载大型数据集文件)\n\n> **注意**：由于 Transformer、Llama Index、Colpali Engine 和 Qwen 2.5 的最新版本可能存在兼容性问题，建议为检索任务和生成任务分别创建独立的虚拟环境。\n\n## 安装步骤\n\n### 1. 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Falibaba-nlp\u002FViDoRAG.git\ncd ViDoRAG\n```\n\n### 2. 创建环境并安装依赖\n\n**方式一：使用 Conda (推荐)**\n```bash\nconda create -n vidorag python=3.10\nconda activate vidorag\npip install -r requirements.txt\n```\n\n**方式二：使用 uv (更快速)**\n```bash\npip install uv\nuv venv -p 3.10\nsource .venv\u002Fbin\u002Factivate  # Linux\u002FmacOS\n# source .venv\\Scripts\\activate  # Windows\nuv sync\n```\n\n> **提示**：安装完成后，建议参考 [Colpali-engine](https:\u002F\u002Fgithub.com\u002Filluin-tech\u002Fcolpali) 和 [Transformer](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) 官方文档确认版本兼容性。国内用户可使用清华或阿里镜像源加速 pip 安装：\n> ```bash\n> pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 3. 下载数据集 (可选)\n如果需要运行官方基准测试，可下载 ViDoSeek 数据集：\n```bash\nbash scripts\u002FViDoSeek_down.sh\n```\n\n将 PDF 转换为图像：\n```python\npython .\u002Fscripts\u002Fpdf2images.py\n```\n\n(可选) 使用 OCR 提取文本：\n```python\n# 传统 OCR\npython .\u002Fscripts\u002Focr_triditional.py \n# 或使用 VLM 作为 OCR\npython .\u002Fscripts\u002Focr_vlms.py \n```\n\n## 基本使用\n\n以下是运行 ViDoRAG 核心流程的最简示例，包含索引构建、检索和生成三个关键步骤。\n\n### 第一步：构建索引数据库\n在嵌入整个数据集前，先验证嵌入模型是否加载正常：\n```python\npython .\u002Fllms\u002Fvl_embedding.py\n```\n\n执行数据摄入和多模态嵌入：\n```python\npython .\u002Fingestion.py\n```\n\n### 第二步：运行多模态检索\n你可以选择单模态、动态单模态或动态混合多模态检索。以下是最常用的**动态混合多模态检索**示例：\n\n```python\nfrom search_engine import HybridSearchEngine\n\n# 初始化混合搜索引擎\n# 参数说明:\n# dataset: 数据集名称\n# embed_model_name_vl: 视觉 - 语言嵌入模型 (如 vidore\u002Fcolqwen2-v0.1)\n# embed_model_name_text: 文本嵌入模型 (如 BAAI\u002Fbge-m3)\n# gmm: 启用基于高斯混合模型的动态检索策略\nhybrid_search_engine = HybridSearchEngine(\n    dataset='ViDoSeek', \n    embed_model_name_vl='vidore\u002Fcolqwen2-v0.1', \n    embed_model_name_text='BAAI\u002Fbge-m3', \n    gmm=True\n)\n\n# 执行检索\nquery = \"What is the temperature of Steam explosion?\"\nrecall_results = hybrid_search_engine.search(query)\n\n# 打印结果查看\nprint(recall_results)\n```\n\n### 第三步：运行多智能体生成\n利用检索到的图像和查询进行推理生成：\n\n```python\nfrom llms.llm import LLM\nfrom vidorag_agents import ViDoRAG_Agents\n\n# 初始化 VLM (例如使用阿里云 Qwen-VL-Max)\nvlm = LLM('qwen-vl-max')\n\n# 初始化智能体\nagent = ViDoRAG_Agents(vlm)\n\n# 运行推理\n# images_path 为检索步骤返回的相关图片路径列表\nanswer = agent.run_agent(\n    query='Who is Tim?', \n    images_path=[\n        '.\u002Fdata\u002FExampleDataset\u002Fimg\u002F00a76e3a9a36255616e2dc14a6eb5dde598b321f_1.jpg',\n        '.\u002Fdata\u002FExampleDataset\u002Fimg\u002F00a76e3a9a36255616e2dc14a6eb5dde598b321f_2.jpg'\n    ]\n)\n\nprint(answer)\n```\n\n### 第四步：端到端评估 (可选)\n对整个流程进行自动化评估：\n\n```bash\npython eval.py \\\n  --experiment_type vidorag \\\n  --dataset ViDoSeek \\\n  --embed_model_name_vl vidore\u002Fcolqwen2-v0.1 \\\n  --embed_model_name_text BAAI\u002Fbge-m3 \\\n  --generate_vlm qwen-vl-max\n```","某生物能源研究团队需要从数千页包含复杂图表、公式和实验数据的 PDF 技术报告中，快速定位特定生物质预处理工艺的关键参数。\n\n### 没有 ViDoRAG 时\n- **多跳推理断裂**：面对需要跨页面关联信息的复杂问题（如结合第 10 页的蒸汽爆炸温度与第 11 页的催化剂用量），传统检索只能返回单一片段，导致答案支离破碎。\n- **视觉信息丢失**：关键数据往往存在于表格或流程图中，纯文本检索引擎无法识别图片内容，导致大量高价值文档被忽略。\n- **噪声干扰严重**：检索结果常包含大量无关的相似术语段落，研究人员需人工逐页筛选，耗时且容易遗漏正确证据。\n- **静态检索局限**：一旦初始检索未命中核心页面，系统缺乏自我修正机制，无法根据初步结果动态调整搜索策略。\n\n### 使用 ViDoRAG 后\n- **动态迭代推理**：ViDoRAG 利用多智能体协作进行多步推理，自动拆解复杂问题，精准串联分散在不同页面的“蒸汽爆炸温度”与“原料类型”信息。\n- **图文混合检索**：基于高斯混合模型（GMM）的策略同时理解文本与视觉特征，直接从图表中提取出\"195-205 摄氏度”等关键数值。\n- **抗噪生成增强**：通过“演员 - 评论家”范式过滤无关片段，仅将高置信度的证据送入生成模型，显著提升了回答的准确性。\n- **自适应搜索优化**：若首轮检索证据不足，ViDoRAG 能自主规划新的搜索路径，动态锁定参考页码，无需人工干预即可完成闭环。\n\nViDoRAG 通过将动态迭代推理与多模态检索深度融合，让 AI 真正具备了在海量视觉文档中像专家一样“看图、推理、找答案”的能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAlibaba-NLP_ViDoRAG_16ac1f08.png","Alibaba-NLP","Tongyi Lab, Alibaba Group","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FAlibaba-NLP_4756c6c9.png","Our team at Tongyi Lab is dedicated to pioneer advancements in AI search technologies.",null,"yongjiang.jy@alibaba-inc.com","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",99.1,{"name":86,"color":87,"percentage":88},"Shell","#89e051",0.9,656,50,"2026-04-17T06:28:30",4,"未说明","需要 NVIDIA GPU (隐含需求，因使用视觉语言模型 VLM、OCR 及 ColPali 引擎)，具体显存和 CUDA 版本未说明",{"notes":96,"python":97,"dependencies":98},"1. 建议使用 conda 或 uv 创建 Python 3.10 独立环境。\n2. 官方警告：最新版本的 Transformers、Llama Index、Colpali Engine 和 Qwen 2.5 之间存在兼容性问题，建议为检索（retriever）和生成（generation）任务分别设置独立的环境。\n3. 需预先下载 ViDoSeek 数据集并将 PDF 转换为图像。\n4. 支持多种嵌入模型（如 colqwen2, bge-m3）和生成模型（如 qwen-vl-max, gpt-4o），需根据所选模型配置相应 API 密钥或本地权重。","3.10",[99,100,101,102,103,104,105],"torch","transformers","llama-index","colpali-engine","qwen-vl","bge-m3","uv",[35,15,14,13,107],"其他","2026-03-27T02:49:30.150509","2026-04-19T15:27:48.745374",[111,116,121,126,131,136,141,146],{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},42561,"下载 vidore\u002Fcolqwen2-v1.0 模型时出现 OSError，提示找不到模型文件（如 pytorch_model.bin），如何解决？","这通常是因为网络问题导致无法完整下载模型。解决方法有两种：\n1. 确保能够访问 Hugging Face，程序会自动下载 base model（之前可能只手动下载了 adapter_model，是不完整的）。\n2. 如果在国内网络环境下，可以在代码文件开头添加以下配置使用镜像源：\nimport os\nos.environ[\"HF_ENDPOINT\"] = \"https:\u002F\u002Fhf-mirror.com\"\n此外，也可以尝试升级 transformers 库来解决兼容性问题。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F8",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},42562,"运行项目时遇到 colpali_engine 与 transformers 或 Qwen2.5 的版本兼容性问题怎么办？","这是一个已知的版本适配问题。推荐的解决方案是安装特定版本的库：\n- 设置 `colpali_engine==0.3.2`\n- 配合 `transformers==4.45.2`\n这样可以同时正常运行 colpali 和 NV-Embed-v2。维护者也表示最新的 transformers 版本已经修复了此问题，建议优先尝试更新到最新版。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F6",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},42563,"ViDoSeek 和 SlideVQA 数据集应该如何准备和使用？","ViDoSeek 数据集可以直接从 Hugging Face 获取（地址：https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fautumncc\u002FViDoSeek）。关于具体使用方式，项目脚本 `.\u002Fscripts\u002Fpdf2images.py` 中已配置了相关数据集加载逻辑。对于显存需求，加载 `vidore\u002Fcolqwen2-v1.0` 模型通常需要 12G 到 24G 的显存。相关问题已通过 PR 合并解决，请参考最新代码。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F9",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},42564,"运行 ocr_triditional.py 处理 Vidoseek 数据集时报错，怀疑是 fastdeploy 版本问题，该如何解决？","建议不要纠结于旧版的 fastdeploy 配置，而是直接尝试使用最新的 PPOCR3.0 版本进行处理。PPOCR3.0 在功能和稳定性上都有显著提升，可以访问其官方 GitHub 仓库（https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleOCR）获取最新安装和使用指南。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F28",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},42565,"Seeker 和 Inspector 阶段出现图像缓冲区为 0 或超过 20 张导致报错，这是正常现象吗？","1. 关于缓冲区为 0：这通常是因为嵌入模型未能召回正确的页面（golden page），或者查询对 VLM 来说太难。建议使用更强大的视觉语言模型（如 qwen-vl-max）来减少这种情况。\n2. 关于缓冲区超过 20 张：这是一个已修复的 Bug，维护者已在后续更新中解决了 Inspector 缓冲区未清空的问题。请确保拉取最新代码。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F14",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},42566,"混合检索的评估标准是什么？文本和图像检索是如何融合排序的？","1. 检索单位：检索是以“页”为单位，每一页作为一个 chunk。\n2. 评估标准：以是否命中参考页（reference_page）为准。如果是 Top-K 检索，只要结果中包含参考页即视为召回成功。对于动态方法（dynamic with GMM），由于每次检索的 chunk 数量不确定，因此计算平均检索页数。\n3. 融合方式：文本管道（text pipeline）和视觉管道（visual pipeline）存在互补关系。文本检索在文字密集场景表现更好，而视觉检索在其他场景更有优势。混合检索旨在特征维度获得最佳效果，具体融合排序可参考 `search_engine.py` 中集成的 llama-index 实现。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F12",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},42567,"使用 ingestion.py 处理图片时，生成的 node 文件中 node_id 始终相同且内容一致，如何处理图片嵌入？","这个问题可能是因为 `SimpleFileNodeParser()` 默认不支持直接读取图片，导致 image_path 传参错误或解析失败。虽然用户反馈即使对齐了 requirements 版本仍只能处理 PP-OCR 而无法直接处理 img 文件，但这表明当前流程可能需要先通过 OCR 脚本将图片转换为文本或特定的中间格式，再进行嵌入生成。建议检查输入路径是否正确，并确认是否需先运行 OCR 预处理步骤。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F31",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},42568,"检索系统是针对所有 PDF 进行检索还是单个 PDF？为什么 Seeker Agent 似乎只接受图片？","检索是以页面为单位进行的，混合检索（文本 + 图像）是为了在特征维度获得最好的检索效果。虽然最终结果包含文本和图像检索的内容，但 Seeker Agent 主要关注视觉信息是因为在多模态场景下，视觉特征往往能提供更直观的页面定位能力。文本管道和视觉管道的召回集合存在互斥和互补关系，结合两者可以提高整体准确率。","https:\u002F\u002Fgithub.com\u002FAlibaba-NLP\u002FViDoRAG\u002Fissues\u002F20",[]]