AI Slop Code RIsk Monitor

HKUDS/RAG-Anything

"RAG-Anything: All-in-One RAG Framework"

37.6 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for HKUDS/RAG-Anything, a Python project with 23,515 GitHub stars. SynthScan examined 40,144 lines of code across 115 source files, recording 1059 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 37.6 (High pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

37.6
Adjusted Signal
37.6
Raw Pattern Score
100%
Time Factor
2026-10-06
Last Push
23.5K
Stars
Python
Language
40.1K
Lines of Code
115
Files
1.1K
Pattern Hits
2026-10-12
Scan Date
0.48
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 67.8/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 737 finding(s).

Hallucinated Dependency & Supply Chain Risk 12.8/100 · LOW

Are imports declared and package/API names verified? 57 finding(s).

Agent Over-Engineering Ratio 73.0/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 812 finding(s).

PR Review Velocity Impact 85.7/100 · CRITICAL

Which changes need focused human review? 1059 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 55MEDIUM 115LOW 889

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1059 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers542 hits · 561 pts
SeverityFileLineSnippetContext
LOWREADME.md476async def process_multimodal_content():CODE
LOWREADME.md603 async def process_multimodal_content(self, modal_content, content_type, file_path, entity_name):STRING
LOWREADME.md821async def insert_content_list_example():CODE
LOWREADME_zh.md456async def process_multimodal_content():CODE
LOWREADME_zh.md585 async def process_multimodal_content(self, modal_content, content_type, file_path, entity_name):STRING
LOWREADME_zh.md802async def insert_content_list_example():CODE
LOWreproduce/llm_answer_evaluator.py46 def get_accuracy_evaluation_prompt(CODE
LOWreproduce/llm_answer_evaluator.py491 async def evaluate_multiple_results(CODE
LOWreproduce/llm_answer_evaluator.py848 async def evaluate_standard_rag_results(CODE
LOWreproduce/llm_answer_evaluator.py1058 def generate_evaluation_report(self, total_time: float):CODE
LOWreproduce/llm_answer_evaluator.py1489 def load_existing_evaluations(self):CODE
LOWreproduce/llm_answer_evaluator.py1544 def update_evaluation_results_list(self, new_results: List[Dict[str, Any]]):CODE
LOWreproduce/llm_answer_evaluator.py1566 def persist_single_evaluation(self, evaluation_result: Dict[str, Any]):CODE
LOWreproduce/llm_answer_evaluator.py89 def get_comprehensive_evaluation_prompt(STRING
LOWreproduce/llm_answer_evaluator.py213 def create_fallback_evaluation(self, response: str) -> Dict[str, Any]:STRING
LOWtests/test_media_file_routing.py78async def test_audio_file_becomes_single_audio_item(tmp_path, ext):CODE
LOWtests/test_media_file_routing.py97async def test_video_file_becomes_single_video_item(tmp_path, ext):CODE
LOWtests/test_media_file_routing.py110async def test_media_items_classify_as_multimodal(tmp_path):CODE
LOWtests/test_media_file_routing.py123async def test_replacing_media_bytes_changes_doc_id(tmp_path):CODE
LOWtests/test_media_file_routing.py140async def test_media_parse_is_cached(tmp_path):CODE
LOWtests/test_media_file_routing.py153async def test_non_media_files_still_use_the_parser(tmp_path):CODE
LOWtests/test_full_entities_merge.py10def _load_merge_logic_function_source():CODE
LOWtests/test_full_entities_merge.py52def test_implementation_preserves_existing_metadata_fields():CODE
LOWtests/test_full_entities_merge.py59def test_create_new_full_entities_entry():CODE
LOWtests/test_full_entities_merge.py74def test_preserves_existing_fields_when_merging_multimodal_entities():CODE
LOWtests/test_full_entities_merge.py95def test_deduplicates_new_entity_names_without_reordering_existing_ones():CODE
LOWtests/test_callbacks.py36 def on_multimodal_item_complete(CODE
LOWtests/test_callbacks.py64 def test_register_and_dispatch(self):CODE
LOW⚡tests/test_callbacks.py90 def test_register_rejects_non_callback(self):CODE
LOW⚡tests/test_callbacks.py95 def test_dispatch_handles_callback_errors(self):CODE
LOW⚡tests/test_callbacks.py105 def test_dispatch_unknown_event(self):CODE
LOW⚡tests/test_callbacks.py113 def test_event_log_disabled_by_default(self):CODE
LOWtests/test_callbacks.py184 def test_process_document_emits_callbacks(self, monkeypatch, tmp_path):CODE
LOWtests/test_callbacks.py255 def test_query_emits_callbacks(self, monkeypatch):CODE
LOWtests/test_image_caption_string_normalization.py69async def test_string_captions_are_not_joined_per_character(processor):CODE
LOWtests/test_image_caption_string_normalization.py92async def test_list_captions_keep_working(processor):CODE
LOWtests/test_image_caption_string_normalization.py111def test_context_extractor_string_caption_is_not_joined_per_character():CODE
LOWtests/test_multimodal_chunks_list_merge.py32def _install_minimal_lightrag_stubs():CODE
LOWtests/test_multimodal_chunks_list_merge.py93def test_merge_appends_new_chunk_ids_and_updates_count():CODE
LOWtests/test_multimodal_chunks_list_merge.py108def test_reprocessing_same_ids_does_not_duplicate():CODE
LOWtests/test_multimodal_chunks_list_merge.py122def test_partial_overlap_appends_only_missing_ids():CODE
LOWtests/test_multimodal_chunks_list_merge.py137def test_missing_record_warns_instead_of_silently_skipping():CODE
LOWtests/test_vlm_query_flags.py29 async def _ensure_lightrag_initialized(self):CODE
LOWtests/test_vlm_query_flags.py72async def test_retrieval_only_returns_unmodified_lightrag_result(CODE
LOWtests/test_vlm_query_flags.py103async def test_answer_queries_still_send_retrieved_images_to_vision(CODE
LOWtests/test_vlm_query_flags.py119async def test_explicit_false_flags_preserve_text_fallback(harness, entrypoint):CODE
LOWtests/test_initialization_lifecycle.py57 async def initialize_pipeline_status():CODE
LOWtests/test_initialization_lifecycle.py90async def test_concurrent_initialization_waits_for_ready_storages(CODE
LOWtests/test_initialization_lifecycle.py124async def test_failed_cache_initialization_is_retried(CODE
LOWtests/test_mineru_content.py416def test_layout_option_isolated_in_parse_cache_key(tmp_path):CODE
LOWtests/test_mineru_content.py442def test_parse_pdf_wires_layout_option_to_output_reader(tmp_path):CODE
LOWtests/test_mineru_content.py457def test_parse_image_wires_layout_option_to_output_reader(tmp_path):CODE
LOWtests/test_parse_options.py7def test_processor_uses_the_shared_whitelist():CODE
LOWtests/test_parse_options.py11def test_processor_normalisation_delegates_to_shared_helper():CODE
LOWtests/test_resilience.py22 def test_retries_on_transient_error(self):CODE
LOWtests/test_resilience.py40 def test_raises_after_max_attempts(self):CODE
LOWtests/test_resilience.py52 def test_does_not_retry_non_retryable(self):CODE
LOWtests/test_resilience.py95 def test_jitter_respects_max_delay(self, monkeypatch):CODE
LOWtests/test_resilience.py136 async def test_retries_on_transient_error(self):CODE
LOWtests/test_resilience.py155 async def test_raises_after_max_attempts(self):CODE
482 more matches not shown…
Modern AI Meta-Vocabulary55 hits · 170 pts
SeverityFileLineSnippetContext
MEDIUMrequirements.txt3# <1.5 is permanent: RAG-Anything was merged upstream into LightRAG 1.5+, andCOMMENT
MEDIUMREADME.md7# 🚀 RAG-Anything: All-in-One RAG FrameworkCOMMENT
MEDIUMREADME.md1010written to the old one — see [#154](https://github.com/HKUDS/RAG-Anything/issues/154).CODE
MEDIUMREADME.md1107- See **[docs/multimodal_rag_failure_modes.md](docs/multimodal_rag_failure_modes.md)** for a short checklist of common pCODE
MEDIUMREADME.md1120After parsing, each non-empty `img_path`, `table_img_path`, or `equation_img_path` may gain a sibling field `*_public_urCODE
MEDIUMREADME.md1362 <span style="color: #00d9ff; font-size: 18px;">Thank you for visiting RAG-Anything!</span>CODE
MEDIUMREADME_zh.md7# 🚀 RAG-Anything: All-in-One RAG SystemCOMMENT
MEDIUMREADME_zh.md986默认情况下,`process_document_complete` 和 `insert_content_list` 会跳过已标记为"完全处理完成"文档的多模态(图像/表格/公式)处理,以避免重复的 LLM 调用。如果您切换到了**新的**图CODE
MEDIUMreproduce/query.py315 # Process with RAGCOMMENT
MEDIUMreproduce/index.py263 # Process with RAGCOMMENT
MEDIUM⚡reproduce/llm_answer_evaluator.py1419 # Check the RAG hybrid result error.COMMENT
MEDIUM⚡reproduce/llm_answer_evaluator.py1426 # Check the RAG mix result error.COMMENT
MEDIUM⚡reproduce/llm_answer_evaluator.py1433 # Check the RAG naive result error.COMMENT
MEDIUMreproduce/llm_answer_evaluator.py472 # Load RAG evaluation results.COMMENT
MEDIUMreproduce/llm_answer_evaluator.py1465 # RAG errors.COMMENT
MEDIUMreproduce/llm_answer_evaluator.py1743 # Support multiple result-file inputs (RAG/VLM), which can coexist with the QA directory option.COMMENT
MEDIUMreproduce/llm_answer_evaluator.py616 else: # RAG resultsCODE
MEDIUMdocs/offline_setup.md1# Running RAG-Anything in an Offline EnvironmentCOMMENT
MEDIUMdocs/batch_processing.md102### Integration with RAG-AnythingCOMMENT
MEDIUMdocs/batch_processing.md120### Process Documents with RAG IntegrationCOMMENT
MEDIUMdocs/batch_processing.md123# Process documents in batch and then add them to RAGCOMMENT
MEDIUMdocs/enhanced_markdown.md294## Integration with RAG-AnythingCOMMENT
MEDIUMdocs/enhanced_markdown.md301# Initialize RAG-AnythingCOMMENT
MEDIUMdocs/enhanced_markdown.md314# before being processed by the RAG systemCOMMENT
MEDIUMdocs/multimodal_rag_failure_modes.md1# Multimodal RAG: common failure modes and quick checksCOMMENT
MEDIUMdocs/multimodal_rag_failure_modes.md5It is meant to stay small and easy to maintain (see discussion in [#207](https://github.com/HKUDS/RAG-Anything/issues/20CODE
MEDIUMdocs/multimodal_rag_failure_modes.md59- [#48](https://github.com/HKUDS/RAG-Anything/issues/48) style: large PDFs and OCR are inherently heavy—batch size and hCODE
MEDIUMdocs/vllm_integration.md1# vLLM Integration Guide for RAG-AnythingCOMMENT
MEDIUMdocs/vllm_integration.md94### Qwen 2.5 (Recommended for RAG)COMMENT
MEDIUMdocs/vllm_integration.md148# RAG chunks are typically <4K tokens; 8192 is often sufficientCOMMENT
MEDIUMraganything/modalprocessors.py163 # Check if item is within context window and matches filter criteriaCOMMENT
MEDIUMraganything/omml_extractor.py534 # equation searchable for downstream RAG even when the operator isCOMMENT
MEDIUM⚡raganything/batch.py386 # Step 2: Process with RAGCOMMENT
MEDIUM⚡raganything/batch.py387 # Initialize RAG systemCOMMENT
MEDIUM⚡raganything/batch.py394 # Then, process each successful file with RAGCOMMENT
MEDIUM⚡raganything/batch.py402 # Process files with RAG (this could be parallelized in the future)COMMENT
MEDIUM⚡raganything/batch.py405 # Process the successfully parsed file with RAGCOMMENT
MEDIUM⚡raganything/batch.py414 # This would require additional tracking in the RAG systemCOMMENT
MEDIUMexamples/ollama_integration_example.py19 ollama pull nomic-embed-text # embedding model (768-dim)STRING
MEDIUMexamples/ollama_integration_example.py39# RAG-Anything importsCOMMENT
MEDIUMexamples/raganything_example.py317 # Process with RAGCOMMENT
MEDIUM⚡examples/batch_processing_example.py245 # Initialize RAG-Anything with temporary storageCOMMENT
MEDIUMexamples/batch_processing_example.py262 # Demonstrate batch processing with RAG integrationCOMMENT
MEDIUMexamples/batch_processing_example.py265 # Use the RAG-integrated batch processingCOMMENT
MEDIUMexamples/batch_processing_example.py281 # Demonstrate batch processing with full RAG integrationCOMMENT
MEDIUMexamples/batch_processing_example.py515 # RAG integrationCOMMENT
MEDIUMexamples/vllm_integration_example.py45# RAG-Anything importsCOMMENT
MEDIUMexamples/vllm_integration_example.py110 # RAG-Anything configurationCOMMENT
MEDIUMexamples/vllm_integration_example.py331 # Initialize RAGCOMMENT
MEDIUMexamples/minimax_integration_example.py44# RAG-Anything importsCOMMENT
MEDIUMexamples/minimax_integration_example.py57# Embedding configuration (MiniMax does not provide an embedding model;COMMENT
MEDIUMexamples/minimax_integration_example.py137 # RAG-Anything configurationCOMMENT
MEDIUMexamples/lmstudio_integration_example.py31# RAG-Anything importsCOMMENT
MEDIUMexamples/lmstudio_integration_example.py88 # RAG-Anything configurationCOMMENT
MEDIUMexamples/lmstudio_integration_example.py318 # Initialize RAGCOMMENT
Excessive Try-Catch Wrapping176 hits · 153 pts
SeverityFileLineSnippetContext
LOWreproduce/query.py270 except Exception as e:CODE
LOWreproduce/index.py218 except Exception as e:CODE
MEDIUM⚡reproduce/llm_answer_evaluator.py1810 print(f"Error: result file does not exist: {file_path}")CODE
MEDIUMreproduce/llm_answer_evaluator.py1797 print("Error: an OpenAI API key is required")CODE
LOWreproduce/llm_answer_evaluator.py442 except Exception as e:CODE
LOWreproduce/llm_answer_evaluator.py1518 except Exception as e:CODE
LOWreproduce/llm_answer_evaluator.py1601 except Exception as e:CODE
LOWreproduce/llm_answer_evaluator.py1621 except Exception:CODE
LOWreproduce/llm_answer_evaluator.py1868 except Exception as e:CODE
LOWreproduce/llm_answer_evaluator.py209 except Exception as e:STRING
LOW⚡tests/test_close_event_loop.py37 except Exception:CODE
LOW⚡tests/test_close_event_loop.py41 except Exception:CODE
LOWtests/testparser_kwargs.py77 except Exception:CODE
LOWtests/test_text_chunk_page_idx.py138 except Exception: # split_by_character_only piece over the limitCODE
LOWdocs/enhanced_markdown.md487 except Exception as e:CODE
LOWraganything/modalprocessors.py116 except Exception as e:CODE
LOWraganything/modalprocessors.py450 except Exception as e:CODE
LOWraganything/modalprocessors.py517 except Exception:CODE
LOWraganything/modalprocessors.py1014 except Exception as e:CODE
LOWraganything/modalprocessors.py1081 except Exception as e:CODE
LOWraganything/modalprocessors.py1214 except Exception as e:CODE
LOWraganything/modalprocessors.py1276 except Exception as e:CODE
LOWraganything/modalprocessors.py1402 except Exception as e:CODE
LOWraganything/modalprocessors.py1459 except Exception as e:CODE
LOWraganything/modalprocessors.py1576 except Exception as e:CODE
LOWraganything/modalprocessors.py1622 except Exception as e:CODE
LOWraganything/raganything.py187 except Exception:CODE
LOWraganything/raganything.py191 except Exception:CODE
LOWraganything/raganything.py401 except Exception as e:CODE
LOWraganything/raganything.py475 except Exception as e:CODE
LOWraganything/raganything.py480 except Exception as e:CODE
LOW⚡raganything/raganything.py533 except Exception as e:CODE
LOWraganything/raganything.py632 except Exception as e:CODE
LOWraganything/raganything.py670 except Exception as e:CODE
LOWraganything/omml_extractor.py197 except Exception as e: # pragma: no cover - defensiveCODE
LOWraganything/query.py198 except Exception as exc:CODE
LOWraganything/query.py320 except Exception as e:CODE
LOWraganything/query.py365 except Exception as e:CODE
LOWraganything/query.py378 except Exception as e:CODE
LOWraganything/query.py507 except Exception as e:CODE
LOWraganything/query.py544 except Exception as e:CODE
LOWraganything/query.py696 except Exception:CODE
LOWraganything/query.py706 except Exception:CODE
LOWraganything/query.py740 except Exception as e:CODE
LOWraganything/query.py864 except Exception as e:CODE
LOW⚡raganything/batch.py417 except Exception as e:CODE
LOWraganything/batch.py144 except Exception as e:CODE
LOWraganything/batch.py298 except Exception:CODE
LOW⚡raganything/processor.py183 except Exception:CODE
LOWraganything/processor.py316 except Exception as exc:CODE
LOWraganything/processor.py549 except Exception as e:CODE
LOWraganything/processor.py604 except Exception as e:CODE
LOWraganything/processor.py794 except Exception as e:CODE
LOWraganything/processor.py934 except Exception as e:CODE
LOWraganything/processor.py971 except Exception as e:CODE
LOWraganything/processor.py1065 except Exception as e:CODE
LOWraganything/processor.py1137 except Exception:CODE
LOWraganything/processor.py1224 except Exception as e:CODE
LOWraganything/processor.py1470 except Exception as e:CODE
LOWraganything/processor.py1490 except Exception as e:CODE
116 more matches not shown…
Empty Error Handlers30 hits · 150 pts
SeverityFileLineSnippetContext
HIGHreproduce/llm_answer_evaluator.py278except ValueError:CODE
HIGHtests/test_close_event_loop.py41except Exception:CODE
HIGHtests/test_close_event_loop.py37except Exception:CODE
HIGHtests/testparser_kwargs.py77except Exception:CODE
HIGHraganything/modalprocessors.py517except Exception:CODE
HIGHraganything/raganything.py191except Exception:CODE
HIGHraganything/raganything.py187except Exception:CODE
HIGHraganything/query.py696except Exception:CODE
HIGHraganything/__init__.py15except ImportError:CODE
HIGHraganything/__init__.py26except ModuleNotFoundError:CODE
HIGHraganything/__init__.py29except ImportError:CODE
HIGHraganything/__init__.py41except ModuleNotFoundError:CODE
HIGHraganything/__init__.py43except ImportError:CODE
HIGHraganything/__init__.py52except ImportError:CODE
HIGHraganything/__init__.py62except ImportError:CODE
HIGHraganything/__init__.py75except ModuleNotFoundError:CODE
HIGHraganything/__init__.py77except ImportError:CODE
HIGHraganything/parser.py1428except Empty:CODE
HIGHraganything/parser.py1442except Empty:CODE
HIGHraganything/parser.py571except Exception:CODE
HIGHraganything/parser.py1387except Empty:CODE
HIGHraganything/parser.py1403except Empty:CODE
HIGHraganything/parser.py2804except Exception:CODE
HIGHraganything/parser.py2003except Exception:CODE
HIGHraganything/parser.py2949except Exception:CODE
HIGHraganything/resilience.py43except ImportError:CODE
HIGHraganything/resilience.py55except ImportError:CODE
HIGHexamples/vllm_integration_example.py154except Exception:CODE
HIGHexamples/vllm_integration_example.py185except Exception:CODE
HIGHexamples/lmstudio_integration_example.py171except Exception:CODE
Decorative Section Separators40 hits · 142 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_close_event_loop.py15# ── Replicate the close() logic under test ──────────────────────────────COMMENT
MEDIUM⚡tests/test_close_event_loop.py45# ── Tests ──────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_md_image_blocks.py150# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_md_image_blocks.py153# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_queued_text_insert.py286# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_queued_text_insert.py288# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_core_modules.py118# ── Content Separation Tests ─────────────────────────────────────COMMENT
MEDIUM⚡tests/test_core_modules.py177# ── Image Encoding Tests ─────────────────────────────────────────COMMENT
MEDIUMtests/test_core_modules.py23# ── DocStatus Tests ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_core_modules.py44# ── RAGAnythingConfig Tests ──────────────────────────────────────COMMENT
MEDIUMtests/test_core_modules.py201# ── Image Validation Tests ───────────────────────────────────────COMMENT
MEDIUMtests/test_core_modules.py258# ── Processor Type Mapping Tests ─────────────────────────────────COMMENT
MEDIUMtests/test_core_modules.py309# ── BatchProcessingResult Tests ──────────────────────────────────COMMENT
MEDIUMtests/test_core_modules.py372# ── BatchParser Initialization Tests ─────────────────────────────COMMENT
MEDIUM⚡tests/test_minimax_integration.py167# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_minimax_integration.py169# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_minimax_integration.py367# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_minimax_integration.py369# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_minimax_integration.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_minimax_integration.py23# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_minimax_integration.py113# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_minimax_integration.py115# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_minimax_integration.py282# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_minimax_integration.py284# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_text_chunk_page_idx.py101# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_text_chunk_page_idx.py103# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_text_chunk_page_idx.py274# --------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_text_chunk_page_idx.py276# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_text_chunk_page_idx.py395# --------------------------------------------------------------------------COMMENT
MEDIUMtests/test_text_chunk_page_idx.py397# --------------------------------------------------------------------------COMMENT
MEDIUM⚡raganything/batch.py30 # ==========================================COMMENT
MEDIUM⚡raganything/batch.py32 # ==========================================COMMENT
MEDIUMraganything/batch.py179 # ==========================================COMMENT
MEDIUMraganything/batch.py181 # ==========================================COMMENT
MEDIUMraganything/callbacks.py71 # ── Parsing stage ─────────────────────────────────────────────COMMENT
MEDIUMraganything/callbacks.py90 # ── Text insertion stage ──────────────────────────────────────COMMENT
MEDIUMraganything/callbacks.py101 # ── Multimodal processing stage ───────────────────────────────COMMENT
MEDIUMraganything/callbacks.py126 # ── Query stage ───────────────────────────────────────────────COMMENT
MEDIUMraganything/callbacks.py149 # ── Document complete ─────────────────────────────────────────COMMENT
MEDIUMraganything/callbacks.py168 # ── Batch processing ──────────────────────────────────────────COMMENT
Magic Placeholder Names16 hits · 78 pts
SeverityFileLineSnippetContext
HIGHREADME.md338 api_key = "your-api-key"CODE
HIGHREADME.md478 api_key = "your-api-key"CODE
HIGHREADME.md696 api_key = "your-api-key"CODE
HIGHREADME.md823 api_key = "your-api-key"CODE
HIGHREADME.md1058python examples/raganything_example.py path/to/document.pdf --api-key YOUR_API_KEY --parser mineruCODE
HIGHREADME.md1061python examples/modalprocessors_example.py --api-key YOUR_API_KEYCODE
HIGHREADME_zh.md316 api_key = "your-api-key"CODE
HIGHREADME_zh.md458 api_key = "your-api-key"CODE
HIGHREADME_zh.md677 api_key = "your-api-key"CODE
HIGHREADME_zh.md804 api_key = "your-api-key"CODE
HIGHREADME_zh.md1031python examples/raganything_example.py path/to/document.pdf --api-key YOUR_API_KEY --parser mineruCODE
HIGHREADME_zh.md1034python examples/modalprocessors_example.py --api-key YOUR_API_KEYCODE
HIGHexamples/minimax_integration_example.py29 export MINIMAX_API_KEY=your-api-keySTRING
HIGHexamples/minimax_integration_example.py72 "Set it with: export MINIMAX_API_KEY=your-api-key"CODE
HIGHexamples/minimax_integration_example.py154 print(" Set it with: export MINIMAX_API_KEY=your-api-key")CODE
HIGHexamples/minimax_integration_example.py266 " MINIMAX_API_KEY=your-api-key\n"CODE
Deep Nesting72 hits · 48 pts
SeverityFileLineSnippetContext
LOWsetup.py14CODE
LOWreproduce/query.py90CODE
LOWreproduce/llm_answer_evaluator.py159CODE
LOWreproduce/llm_answer_evaluator.py213CODE
LOWreproduce/llm_answer_evaluator.py286CODE
LOWreproduce/llm_answer_evaluator.py491CODE
LOWreproduce/llm_answer_evaluator.py759CODE
LOWreproduce/llm_answer_evaluator.py848CODE
LOWreproduce/llm_answer_evaluator.py1058CODE
LOWtests/test_full_entities_merge.py10CODE
LOWtests/test_resilience.py474CODE
LOWtests/test_close_event_loop.py18CODE
LOWraganything/modalprocessors.py68CODE
LOWraganything/modalprocessors.py139CODE
LOWraganything/modalprocessors.py179CODE
LOWraganything/modalprocessors.py212CODE
LOWraganything/modalprocessors.py246CODE
LOWraganything/modalprocessors.py287CODE
LOWraganything/modalprocessors.py666CODE
LOWraganything/raganything.py161CODE
LOWraganything/raganything.py319CODE
LOWraganything/omml_extractor.py112CODE
LOWraganything/omml_extractor.py219CODE
LOWraganything/query.py59CODE
LOWraganything/query.py221CODE
LOWraganything/query.py518CODE
LOWraganything/query.py632CODE
LOWraganything/query.py751CODE
LOWraganything/query.py661CODE
LOWraganything/processor.py451CODE
LOWraganything/processor.py607CODE
LOWraganything/processor.py850CODE
LOWraganything/processor.py982CODE
LOWraganything/processor.py1365CODE
LOWraganything/processor.py1588CODE
LOWraganything/processor.py1677CODE
LOWraganything/processor.py2463CODE
LOWraganything/parser.py3209CODE
LOWraganything/parser.py150CODE
LOWraganything/parser.py252CODE
LOWraganything/parser.py297CODE
LOWraganything/parser.py467CODE
LOWraganything/parser.py723CODE
LOWraganything/parser.py846CODE
LOWraganything/parser.py1230CODE
LOWraganything/parser.py1602CODE
LOWraganything/parser.py1776CODE
LOWraganything/parser.py1862CODE
LOWraganything/parser.py2047CODE
LOWraganything/parser.py2240CODE
LOWraganything/parser.py2520CODE
LOWraganything/parser.py2784CODE
LOWraganything/parser.py2901CODE
LOWraganything/parser.py2933CODE
LOWraganything/parser.py2796CODE
LOWraganything/enhanced_markdown.py370CODE
LOWraganything/enhanced_markdown.py403CODE
LOWraganything/utils.py175CODE
LOWraganything/utils.py703CODE
LOWraganything/batch_parser.py636CODE
12 more matches not shown…
Self-Referential Comments10 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUM⚡reproduce/llm_answer_evaluator.py1813 # Create the configuration.COMMENT
MEDIUM⚡reproduce/llm_answer_evaluator.py1816 # Create the evaluator.COMMENT
MEDIUMraganything/query.py74 # Create a normalized representation of the query parametersCOMMENT
MEDIUMraganything/processor.py482 # Create a content signatureCOMMENT
MEDIUMraganything/parser.py192 # Create a temporary file with the correct extensionCOMMENT
MEDIUMraganything/batch_parser.py193 # Create a deterministic, file-specific output directory. The pathCOMMENT
MEDIUM⚡examples/batch_processing_example.py323 # Create a directory structure with nested filesCOMMENT
MEDIUM⚡examples/batch_processing_example.py326 # Create main directory filesCOMMENT
MEDIUMscripts/create_tiktoken_cache.py4# Define the directory where you want to store the cacheCOMMENT
MEDIUMscripts/create_tiktoken_cache.py8# Create the directory if it doesn't existCOMMENT
Unused Imports41 hits · 32 pts
SeverityFileLineSnippetContext
LOWtests/test_asset_urls.py3CODE
LOWtests/test_raganything_example.py1CODE
LOWtests/test_lmstudio_integration_example.py1CODE
LOWtests/test_modalprocessors_config.py11CODE
LOWtests/test_omml_extractor.py8CODE
LOWraganything/omml_extractor.py40CODE
LOWraganything/batch.py16CODE
LOWraganything/prompt_manager.py18CODE
LOWraganything/__init__.py1CODE
LOWraganything/__init__.py2CODE
LOWraganything/__init__.py5CODE
LOWraganything/__init__.py9CODE
LOWraganything/__init__.py9CODE
LOWraganything/__init__.py9CODE
LOWraganything/__init__.py9CODE
LOWraganything/__init__.py21CODE
LOWraganything/__init__.py21CODE
LOWraganything/__init__.py21CODE
LOWraganything/__init__.py35CODE
LOWraganything/__init__.py35CODE
LOWraganything/__init__.py35CODE
LOWraganything/__init__.py35CODE
LOWraganything/__init__.py48CODE
LOWraganything/__init__.py48CODE
LOWraganything/__init__.py58CODE
LOWraganything/__init__.py58CODE
LOWraganything/__init__.py68CODE
LOWraganything/__init__.py68CODE
LOWraganything/__init__.py68CODE
LOWraganything/__init__.py68CODE
LOWraganything/__init__.py68CODE
LOWraganything/processor.py7CODE
LOWraganything/processor.py31CODE
LOWraganything/parser.py24CODE
LOWraganything/asset_urls.py14CODE
LOWraganything/utils.py7CODE
LOWraganything/callbacks.py23CODE
LOWraganything/prompts_zh.py11CODE
LOWraganything/prompt.py8CODE
LOWraganything/resilience.py11CODE
LOWraganything/mineru_content.py9CODE
Cross-File Repetition6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHreproduce/query.py0example script demonstrating parser integration with raganything this example shows how to: 1. process documents with raSTRING
HIGHreproduce/index.py0example script demonstrating parser integration with raganything this example shows how to: 1. process documents with raSTRING
HIGHexamples/raganything_example.py0example script demonstrating parser integration with raganything this example shows how to: 1. process documents with raSTRING
HIGHreproduce/query.py0process document with raganything args: file_path: path to the document output_dir: output directory for rag results apiSTRING
HIGHreproduce/index.py0process document with raganything args: file_path: path to the document output_dir: output directory for rag results apiSTRING
HIGHexamples/raganything_example.py0process document with raganything args: file_path: path to the document output_dir: output directory for rag results apiSTRING
Redundant / Tautological Comments18 hits · 28 pts
SeverityFileLineSnippetContext
LOWreproduce/query.py305 # Check if API key is providedCOMMENT
LOWreproduce/index.py253 # Check if API key is providedCOMMENT
LOWraganything/modalprocessors.py163 # Check if item is within context window and matches filter criteriaCOMMENT
LOWraganything/query.py151 # Check if VLM enhanced query should be usedCOMMENT
LOWraganything/query.py679 # Check if it's in the current working directory or subdirectoriesCOMMENT
LOWraganything/processor.py909 # Check if multimodal content is already processedCOMMENT
LOWraganything/parser.py2264 # Check if input is a URLCOMMENT
LOWraganything/enhanced_markdown.py36 # Check if pandoc module exists (not used directly, just for detection)COMMENT
LOWraganything/enhanced_markdown.py104 # Check if pandoc is installed on systemCOMMENT
LOWraganything/enhanced_markdown.py511 # Check if input file is providedCOMMENT
LOWraganything/utils.py537 # Check if file exists and is not a symlink (for security)COMMENT
LOWexamples/office_document_test.py55 # Check if file exists and is a supported Office formatCOMMENT
LOWexamples/raganything_example.py307 # Check if API key is providedCOMMENT
LOWexamples/batch_processing_example.py162 # Display resultsCOMMENT
LOW⚡examples/batch_processing_example.py220 # Display resultsCOMMENT
LOW⚡examples/image_format_test.py60 # Check if file exists and is a supported image formatCOMMENT
LOWexamples/insert_content_list_example.py415 # Check if API key is providedCOMMENT
LOWexamples/text_format_test.py43 # Check if file exists and is a supported text formatCOMMENT
Verbosity Indicators12 hits · 17 pts
SeverityFileLineSnippetContext
LOW⚡raganything/batch.py386 # Step 2: Process with RAGCOMMENT
LOWraganything/batch.py374 # Step 1: Parse documents in batchCOMMENT
LOW⚡raganything/processor.py2020 # Step 1: Parse documentCOMMENT
LOW⚡raganything/processor.py2029 # Step 2: Separate text and multimodal contentCOMMENT
LOWraganything/processor.py2055 # Step 3: Insert pure text content with all parametersCOMMENT
LOWraganything/processor.py2104 # Step 4: Process multimodal content (using specialized processors)COMMENT
LOWraganything/processor.py2312 # Step 1: Parse documentCOMMENT
LOWraganything/processor.py2355 # Step 2: Separate text and multimodal contentCOMMENT
LOWraganything/processor.py2383 # Step 3: Insert pure text content and multimodal content with all parametersCOMMENT
LOWraganything/processor.py2550 # Step 1: Separate text and multimodal contentCOMMENT
LOWraganything/processor.py2576 # Step 2: Insert pure text content with all parametersCOMMENT
LOWraganything/processor.py2624 # Step 3: Process multimodal content (using specialized processors)COMMENT
Structural Annotation Overuse12 hits · 17 pts
SeverityFileLineSnippetContext
LOW⚡raganything/batch.py386 # Step 2: Process with RAGCOMMENT
LOWraganything/batch.py374 # Step 1: Parse documents in batchCOMMENT
LOW⚡raganything/processor.py2020 # Step 1: Parse documentCOMMENT
LOW⚡raganything/processor.py2029 # Step 2: Separate text and multimodal contentCOMMENT
LOWraganything/processor.py2055 # Step 3: Insert pure text content with all parametersCOMMENT
LOWraganything/processor.py2104 # Step 4: Process multimodal content (using specialized processors)COMMENT
LOWraganything/processor.py2312 # Step 1: Parse documentCOMMENT
LOWraganything/processor.py2355 # Step 2: Separate text and multimodal contentCOMMENT
LOWraganything/processor.py2383 # Step 3: Insert pure text content and multimodal content with all parametersCOMMENT
LOWraganything/processor.py2550 # Step 1: Separate text and multimodal contentCOMMENT
LOWraganything/processor.py2576 # Step 2: Insert pure text content with all parametersCOMMENT
LOWraganything/processor.py2624 # Step 3: Process multimodal content (using specialized processors)COMMENT
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHraganything/query.py229 Multimodal query - combines text and multimodal content for querying Args: query: Base queSTRING
HIGHraganything/parser.py3178Get a parser instance by name. Checks built-in parsers first, then falls back to the custom parser registry popSTRING
HIGHraganything/mineru_content.py71Convert MinerU's page-grouped v2 output to RAG-Anything's flat schema. Args: payload: Parsed JSON value. ThSTRING
AI Slop Vocabulary7 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMreproduce/llm_answer_evaluator.py270 # For comprehensive evaluation, try to extract additional metrics.COMMENT
LOWtests/test_custom_parser.py167 # Do not touch the filesystem; just return a dummy result.COMMENT
MEDIUMraganything/modalprocessors.py1474 """Parse equation analysis response with robust JSON handling"""STRING
MEDIUMraganything/omml_extractor.py53# them to construct fully qualified tag names so that lookups are robust toCOMMENT
MEDIUMexamples/enhanced_markdown_example.py30 """Create comprehensive sample markdown content for testing"""STRING
MEDIUM⚡examples/enhanced_markdown_example.py898 # Demonstrate robust conversion with fallbacksSTRING
MEDIUMexamples/enhanced_markdown_example.py920 # Test robust conversionCOMMENT
Modern Structural Boilerplate13 hits · 14 pts
SeverityFileLineSnippetContext
LOWraganything/omml_extractor.py49logger = logging.getLogger(__name__)CODE
LOWraganything/omml_extractor.py768__all__ = [CODE
LOWraganything/prompt_manager.py26logger = logging.getLogger(__name__)CODE
LOWraganything/prompt_manager.py84def set_prompt_language(language: str) -> None:CODE
LOWraganything/__init__.py84__all__ = [CODE
LOW⚡raganything/processor.py420 async def _set_multimodal_status_record(self, doc_id: str, processed: bool) -> None:CODE
LOWraganything/asset_urls.py21logger = logging.getLogger(__name__)CODE
LOWraganything/callbacks.py31logger = logging.getLogger(__name__)CODE
LOWraganything/modalprocessors_audio.py31logger = logging.getLogger(__name__)CODE
LOWraganything/modalprocessors_video.py42logger = logging.getLogger(__name__)CODE
LOWraganything/resilience.py20logger = logging.getLogger(__name__)CODE
LOWraganything/mineru_content.py17logger = logging.getLogger(__name__)CODE
LOWraganything/mineru_content.py509__all__ = [CODE
AI Structural Patterns5 hits · 3 pts
SeverityFileLineSnippetContext
LOWraganything/batch.py34CODE
LOWraganything/processor.py1961CODE
LOWraganything/processor.py2155CODE
LOWraganything/parser.py1230CODE
LOWraganything/modalprocessors_video.py103CODE
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippetContext
LOWrequirements.txt1huggingface_hubCOMMENT