HKUDS/RAG-Anything
68.1
Adequate · 19 September 2026
32.3k
lines of production code
Python
primary language
1
measurement over time
What this system is
RAGAnything is a Python library for building Retrieval-Augmented Generation systems that supports multimodal document processing, including text, images, tables, audio, and video. It provides a modular architecture with batch processing capabilities, event-driven callbacks, and integration with local and cloud LLMs for embedding and generation. The system facilitates document ingestion, knowledge base insertion, and query execution, while offering tools for evaluation, offline tokenization, and media asset management.
Features
Added reproduce directory with RAGAnything integration examples and evaluation tools
The new \reproduce\ directory provides example scripts and configuration files to demonstrate integrating MinerU parsing with RAGAnything. It includes \index.py\ and \query.py\ for processing documents and performing text or multimodal queries, an \env.example\ file for configuring LLM, embedding, and reranking bindings, and \llm\_answer\_evaluator.py\ for assessing RAG output accuracy and quality.
reproduce · high confidence
Added script to cache tiktoken models for offline use
A new script, create\_tiktoken\_cache.py, has been added to the scripts directory. This utility downloads and caches the 'cl100k\_base' tiktoken encoding model into a local directory (defaulting to ./tiktoken\_cache), enabling the application to function without network access by pre-loading required tokenization resources.
scripts · high confidence
New and updated example scripts for batch processing, multimodal insertion, and local LLM integrations
The examples directory now includes several new demonstration scripts: batch\_dry\_run\_example.py and batch\_processing\_example.py show how to use the BatchParser for scanning and processing multiple documents in parallel; insert\_content\_list\_example.py demonstrates direct insertion of structured content (text, images, tables, equations) into the knowledge base; modalprocessors\_example.py illustrates using image, table, and equation processors directly; image\_format\_test.py and office\_document\_test.py provide testing scripts for image and Office document parsing via MinerU (with LibreOffice checks); enhanced\_markdown\_example.py covers markdown-to-PDF conversion with WeasyPrint and Pandoc backends. Additionally, integration examples for LM Studio, MiniMax, and Ollama have been added or updated, showing how to configure local and cloud LLM/embedding endpoints, handle model discovery failures, and manage API keys via environment variables.
examples · high confidence
RAGAnything v1.4.1 introduces modular architecture with batch processing, callbacks, and multimodal support
RAGAnything has been restructured into a modular package (v1.4.1) that adds significant new capabilities while maintaining backward compatibility. Users can now process multiple documents in parallel using the new \BatchMixin\ and \BatchParser\ classes, which support progress tracking, timeouts, and dry-run modes. A new event-driven callback system (\ProcessingCallback\, \CallbackManager\) allows users to hook into parsing, insertion, and query stages for monitoring and custom logic. The library now supports audio and video modal processing via optional \AudioModalProcessor\ and \VideoModalProcessor\ classes (requiring \faster-whisper\ and \scenedetect\ respectively). Configuration is centralized in \RAGAnythingConfig\ with environment variable support, and the package exposes a public media URL mapping system (\asset\_urls.py\) for serving local assets via CDN. The core \Parser\ class and resilience utilities (retry, circuit breaker) are also exposed, with optional features like custom parser registration and multilingual prompt management available when installed.
raganything · high confidence
Test coverage
Added test coverage for public media URL mapping, audio processing, callbacks, and core modules
This change adds a suite of new tests to the \tests/\ directory. It introduces \test\_asset\_urls.py\ to verify the public URL mapping logic for local media paths, including environment variable handling and special character encoding. New tests for the audio modal processor (\test\_audio\_processor.py\) cover file detection, initialization, and transcription formatting. The callback system is tested (\test\_callbacks.py\) to ensure event dispatching, metrics collection, and error handling work correctly. Additionally, core module tests (\test\_core\_modules.py\) validate configuration defaults, content separation, and image encoding, while other new tests cover Chinese CID font registration, event loop closure, content list alias handling, custom parser plugins, document status creation, and force multimodal reprocessing.
tests · high confidence
Dependencies
Introduce pyproject.toml and pin dependency versions
The project now uses pyproject.toml as the primary build configuration, defining the package name 'raganything' and its core dependencies: huggingface\_hub, lightrag-hku (pinned below 1.5), mineru\[core\] (pinned to \>=3.4.1), and tqdm. This change also introduces optional dependency groups for image, text, office, paddleocr, markdown, audio, video, and all features, alongside dev dependencies for testing and linting. The requirements.txt file is updated to reflect these core dependencies and includes comments explaining the mineru version constraint to avoid compatibility issues with pdftext.
(dependencies) · high confidence
Housekeeping
Initial project scaffolding and documentation
The repository has been initialized with the core project structure, including the Python package definition in setup.py, environment configuration in env.example, and comprehensive English and Chinese documentation in README.md and README\_zh.md. This initial commit also establishes development standards and build integrity through .gitignore, .pre-commit-config.yaml, MANIFEST.in, and a SECURITY.md policy.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 68.
Lenses
- Code Health 79
- Architecture 100
- Maturity 64
- Readiness 62
- Security 82
Changes since last survey
- 300 commits — 163 feature/other, 137 fixes
By area
- (repo) — 79 commits
- (root) — 56 commits
- raganything/parser.py — 41 commits
- raganything/processor.py — 24 commits
- raganything/init.py — 14 commits
- raganything/batch.py — 9 commits
- raganything/modalprocessors.py — 7 commits
- raganything/query.py — 7 commits
- raganything/resilience.py — 7 commits
- .github/workflows — 4 commits
- raganything/batch_parser.py — 4 commits
- raganything/config.py — 4 commits
- docs/batch_processing.md — 3 commits
- examples/minimax_integration_example.py — 3 commits
- examples/raganything_example.py — 3 commits
- tests/test_core_modules.py — 3 commits
- docs/offline_setup.md — 2 commits
- examples/image_format_test.py — 2 commits
- examples/insert_content_list_example.py — 2 commits
- examples/lmstudio_integration_example.py — 2 commits
Notable commits
- fix: Fix MinerU Windows unsafe paths
- fix: Fix content-list duplicate status registration
- fix: Fix lint after PR merges
- fix: Fix potential path traversal and local file read vulnerabilities
- fix: Fix: harden path traversal guards and support extra safe directories
- fix: Format content-list regression test
- fix: Implement MinerU hybrid-auto-engine compatibility fix
- fix: Merge branch 'copilot/fix-mineru-compatibility-issue' into copilot/fix-change-requirements
- fix: Merge main into MinerU timeout fix
- fix: Merge pull request #106 from liz-in-tech/fix-cleanup-warning
- fix: Merge pull request #142 from yrangana/fix/status-case-mismatch-enum
- fix: Merge pull request #162 from didier-durand/fix-typos-1
- fix: Merge pull request #182 from majiayu000/fix/inherit-model-funcs-from-lightrag
- fix: Merge pull request #197 from RinZ27/fix/path-traversal-vulnerabilities
- fix: Merge pull request #198 from wkpark/fix-docling-cmd
- fix: Merge pull request #2 from hanlianlu/copilot/fix-mineru-compatibility-issue
- fix: Merge pull request #202 from sotastack/fix/mineru-2-field-names
- fix: Merge pull request #203 from sotastack/fix/same-name-file-collision
- fix: Merge pull request #223 from syshin0116/fix/embedding-double-wrapping
- fix: Merge pull request #226 from Exploreunive/fix/chinese-cid-font-24
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
HKUDS/RAG-Anything was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 1f73f0154c48b3d616674608af98748585b856f3 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.