A modular graph-based Retrieval-Augmented Generation (RAG) system
This report presents the forensic synthetic code analysis of microsoft/graphrag, a Python project with 34,410 GitHub stars. SynthScan v2.0 examined 61,100 lines of code across 730 source files, recording 1270 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 33.2 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1270 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/config/test_template_engine_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_metrics_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_retry_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_tokenizer_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_rate_limit_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_model_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/graphs/test_compute_degree.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_modularity.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_connected_components.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_stable_lcc.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_modularity.py | 0 | load the realistic graph fixture as a relationships dataframe. | STRING |
| HIGH | tests/unit/graphs/test_connected_components.py | 0 | load the realistic graph fixture as a relationships dataframe. | STRING |
| HIGH | tests/unit/graphs/test_stable_lcc.py | 0 | load the realistic graph fixture as a relationships dataframe. | STRING |
| HIGH | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 0 | clear all metrics from the store. returns ------- none | STRING |
| HIGH | …raphrag-llm/graphrag_llm/metrics/noop_metrics_store.py | 0 | clear all metrics from the store. returns ------- none | STRING |
| HIGH | …phrag-llm/graphrag_llm/metrics/memory_metrics_store.py | 0 | clear all metrics from the store. returns ------- none | STRING |
| HIGH | …kages/graphrag-llm/graphrag_llm/tokenizer/tokenizer.py | 0 | encode the given text into a list of tokens. args ---- text: str the input text to encode. returns ------- list[int]: a | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/tiktoken_tokenizer.py | 0 | encode the given text into a list of tokens. args ---- text: str the input text to encode. returns ------- list[int]: a | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/lite_llm_tokenizer.py | 0 | encode the given text into a list of tokens. args ---- text: str the input text to encode. returns ------- list[int]: a | STRING |
| HIGH | …kages/graphrag-llm/graphrag_llm/tokenizer/tokenizer.py | 0 | decode a list of tokens back into a string. args ---- tokens: list[int] a list of tokens to decode. returns ------- str: | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/tiktoken_tokenizer.py | 0 | decode a list of tokens back into a string. args ---- tokens: list[int] a list of tokens to decode. returns ------- str: | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/lite_llm_tokenizer.py | 0 | decode a list of tokens back into a string. args ---- tokens: list[int] a list of tokens to decode. returns ------- str: | STRING |
| HIGH | …phrag-llm/graphrag_llm/embedding/lite_llm_embedding.py | 0 | initialize litellmcompletion. args ---- model_id: str the litellm model id, e.g., "openai/gpt-4o" model_config: modelcon | STRING |
| HIGH | …rag-llm/graphrag_llm/completion/lite_llm_completion.py | 0 | initialize litellmcompletion. args ---- model_id: str the litellm model id, e.g., "openai/gpt-4o" model_config: modelcon | STRING |
| HIGH | …rag-llm/graphrag_llm/completion/mock_llm_completion.py | 0 | initialize litellmcompletion. args ---- model_id: str the litellm model id, e.g., "openai/gpt-4o" model_config: modelcon | STRING |
| HIGH | …/graphrag/graphrag/config/models/prune_graph_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag/graphrag/config/models/basic_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …rag/graphrag/config/models/extract_graph_nlp_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …es/graphrag/graphrag/config/models/snapshots_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/graphrag/config/models/global_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …s/graphrag/graphrag/config/models/embed_text_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/graphrag/config/models/cluster_graph_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/config/models/summarize_descriptions_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag/graphrag/config/models/local_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …es/graphrag/graphrag/config/models/graph_rag_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …es/graphrag/graphrag/config/models/reporting_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag/graphrag/config/models/drift_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/graphrag/config/models/extract_graph_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …aphrag/graphrag/config/models/extract_claims_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …rag/graphrag/config/models/community_reports_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag-chunking/graphrag_chunking/chunking_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …aphrag-vectors/graphrag_vectors/vector_store_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …ages/graphrag-vectors/graphrag_vectors/index_schema.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | packages/graphrag-input/graphrag_input/input_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …phrag/graphrag/callbacks/workflow_callbacks_manager.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …ages/graphrag/graphrag/callbacks/workflow_callbacks.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …graphrag/graphrag/callbacks/noop_workflow_callbacks.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …phrag/graphrag/callbacks/console_workflow_callbacks.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …ages/graphrag/graphrag/callbacks/workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline starts. | STRING |
| HIGH | …graphrag/graphrag/callbacks/noop_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline starts. | STRING |
| HIGH | …phrag/graphrag/callbacks/console_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline starts. | STRING |
| HIGH | …ages/graphrag/graphrag/callbacks/workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline ends. | STRING |
| HIGH | …graphrag/graphrag/callbacks/noop_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline ends. | STRING |
| HIGH | …phrag/graphrag/callbacks/console_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline ends. | STRING |
| HIGH | …g/graphrag/index/workflows/generate_text_embeddings.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …rag/graphrag/index/workflows/create_base_text_units.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …phrag/index/workflows/create_community_reports_text.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …g/graphrag/index/workflows/update_community_reports.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …g/graphrag/index/workflows/create_community_reports.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …kages/graphrag/graphrag/index/workflows/prune_graph.py | 0 | a module containing run_workflow method definition. | STRING |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/vector_stores/test_timestamp.py | 40 | def test_empty_string_returns_empty(self): | CODE |
| LOW | tests/unit/vector_stores/test_timestamp.py | 77 | def test_produces_correct_keys(self): | CODE |
| LOW | tests/unit/vector_stores/test_timestamp.py | 104 | def test_contains_create_and_update_fields(self): | CODE |
| LOW | tests/unit/vector_stores/test_filtering.py | 60 | def test_missing_field_returns_false(self): | CODE |
| LOW | tests/unit/vector_stores/test_filtering.py | 136 | def test_eq_produces_condition(self): | CODE |
| LOW | tests/unit/vector_stores/test_filtering.py | 305 | def test_complex_nested_roundtrip(self): | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 104 | async def test_top_selection_returns_limited_chunks( | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 141 | async def test_random_selection_returns_correct_count( | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 176 | async def test_escapes_braces_in_output(self, mock_config, mock_logger): | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 219 | async def test_limit_out_of_range_uses_default( | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 258 | async def test_chunks_all_documents( | CODE |
| LOW | tests/unit/config/test_template_engine_config.py | 14 | def test_template_engine_config_validation() -> None: | CODE |
| LOW | tests/unit/config/test_metrics_config.py | 13 | def test_file_metrics_writer_validation() -> None: | CODE |
| LOW | tests/unit/config/test_retry_config.py | 10 | def test_exponential_backoff_validation() -> None: | CODE |
| LOW | tests/unit/config/test_retry_config.py | 50 | def test_immediate_validation() -> None: | CODE |
| LOW | tests/unit/config/test_tokenizer_config.py | 10 | def test_litellm_tokenizer_validation() -> None: | CODE |
| LOW | tests/unit/config/test_rate_limit_config.py | 10 | def test_sliding_window_validation() -> None: | CODE |
| LOW | tests/unit/config/utils.py | 57 | def get_default_graphrag_config() -> GraphRagConfig: | CODE |
| LOW | tests/unit/config/utils.py | 73 | def assert_rate_limit_configs( | CODE |
| LOW | tests/unit/config/utils.py | 115 | def assert_vector_store_configs( | CODE |
| LOW | tests/unit/config/utils.py | 162 | def assert_text_embedding_configs( | CODE |
| LOW | tests/unit/config/utils.py | 186 | def assert_extract_graph_configs( | CODE |
| LOW | tests/unit/config/utils.py | 195 | def assert_text_analyzer_configs( | CODE |
| LOW | tests/unit/config/utils.py | 210 | def assert_extract_graph_nlp_configs( | CODE |
| LOW | tests/unit/config/utils.py | 218 | def assert_prune_graph_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 230 | def assert_summarize_descriptions_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 238 | def assert_community_reports_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 248 | def assert_extract_claims_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 258 | def assert_cluster_graph_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 266 | def assert_local_search_configs( | CODE |
| LOW | tests/unit/config/utils.py | 280 | def assert_global_search_configs( | CODE |
| LOW | tests/unit/config/utils.py | 297 | def assert_drift_search_configs( | CODE |
| LOW | tests/unit/config/utils.py | 330 | def assert_basic_search_configs( | CODE |
| LOW | tests/unit/config/test_config.py | 45 | def test_load_config_with_cli_overrides() -> None: | CODE |
| LOW | tests/unit/config/test_model_config.py | 11 | def test_litellm_provider_validation() -> None: | CODE |
| LOW | tests/unit/utils/test_encoding.py | 16 | def test_num_tokens_empty_input(): | CODE |
| LOW | tests/unit/storage/test_csv_table_provider.py | 46 | async def test_read_nonexistent_table_raises_error(self): | CODE |
| LOW | tests/unit/storage/test_csv_table_provider.py | 62 | async def test_dataframe_with_multiple_types(self): | CODE |
| LOW | tests/unit/storage/test_parquet_table_provider.py | 41 | async def test_read_nonexistent_table_raises_error(self): | CODE |
| LOW | tests/unit/storage/test_parquet_table_provider.py | 55 | async def test_dataframe_with_multiple_types(self): | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 58 | async def test_original_readable_during_writes( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 74 | async def test_temp_file_replaces_original_on_close( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 89 | async def test_no_temp_file_left_after_close( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 103 | async def test_multiple_writes_accumulate_in_temp( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 124 | async def test_concurrent_read_and_write_same_file( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 165 | async def test_append_to_existing_file( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 183 | async def test_append_creates_file_with_header( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 198 | async def test_no_temp_file_used_for_append( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 221 | async def test_double_close_is_safe( | CODE |
| LOW | tests/unit/storage/test_csv_table.py | 232 | async def test_close_without_writes_is_safe( | CODE |
| LOW | tests/unit/chunking/test_chunker.py | 55 | def test_mixed_whitespace_handling(self): | CODE |
| LOW | tests/unit/chunking/test_chunker.py | 96 | def test_split_text_str_empty(): | CODE |
| LOW | tests/unit/chunking/test_chunker.py | 108 | def test_split_text_on_tokens(): | CODE |
| LOW | tests/unit/chunking/test_chunker.py | 137 | def test_split_text_on_tokens_one_overlap(): | CODE |
| LOW | tests/unit/chunking/test_chunker.py | 169 | def test_split_text_on_tokens_no_overlap(): | CODE |
| LOW⚡ | tests/unit/chunking/test_prepend_metadata.py | 7 | def test_add_metadata_one_row(): | CODE |
| LOW⚡ | tests/unit/chunking/test_prepend_metadata.py | 17 | def test_add_metadata_one_row_append(): | CODE |
| LOW⚡ | tests/unit/chunking/test_prepend_metadata.py | 27 | def test_add_metadata_multiple_rows(): | CODE |
| LOW⚡ | tests/unit/chunking/test_prepend_metadata.py | 37 | def test_add_metadata_custom_delimiters(): | CODE |
| LOW | tests/unit/load_config/test_load_config.py | 16 | def test_load_config_validation(): | CODE |
| 315 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/indexing/test_init_content.py | 5 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 20 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 20 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 22 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 23 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | …raphrag-llm/graphrag_llm/metrics/metrics_aggregator.py | 12 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 13 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 13 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 15 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 16 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 16 | CODE | |
| LOW | …raphrag-llm/graphrag_llm/metrics/log_metrics_writer.py | 14 | CODE | |
| LOW | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 10 | CODE | |
| LOW | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 11 | CODE | |
| LOW | …es/graphrag-llm/graphrag_llm/metrics/metrics_writer.py | 10 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 6 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 7 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 8 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 8 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 12 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 13 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 13 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 17 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 18 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 18 | CODE | |
| LOW | …rag-llm/graphrag_llm/metrics/metrics_writer_factory.py | 16 | CODE | |
| LOW | …rag-llm/graphrag_llm/metrics/metrics_writer_factory.py | 18 | CODE | |
| LOW | …hrag-llm/graphrag_llm/metrics/metrics_store_factory.py | 15 | CODE | |
| LOW | …hrag-llm/graphrag_llm/metrics/metrics_store_factory.py | 17 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 10 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 10 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 12 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/metrics_processor_factory.py | 15 | CODE | |
| LOW | …phrag-llm/graphrag_llm/metrics/memory_metrics_store.py | 14 | CODE | |
| LOW | …aphrag-llm/graphrag_llm/metrics/file_metrics_writer.py | 15 | CODE | |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 9 | CODE | |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 9 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 17 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 17 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 19 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 20 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 21 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 22 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 23 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 24 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 24 | CODE | |
| LOW | …llm/graphrag_llm/middleware/with_errors_for_testing.py | 14 | CODE | |
| LOW | …llm/graphrag_llm/middleware/with_errors_for_testing.py | 14 | CODE | |
| LOW | …kages/graphrag-llm/graphrag_llm/middleware/__init__.py | 6 | CODE | |
| LOW | …kages/graphrag-llm/graphrag_llm/middleware/__init__.py | 7 | CODE | |
| 329 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 18 | # ── Condition.evaluate ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 65 | # ── AndExpr.evaluate ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 90 | # ── OrExpr.evaluate ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 115 | # ── NotExpr.evaluate ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 130 | # ── F builder ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 176 | # ── Operator overloads ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 208 | # ── AND/OR flattening ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 227 | # ── Double negation ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 243 | # ── JSON round-trip ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 87 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_modularity.py | 107 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_modularity.py | 109 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_connected_components.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_connected_components.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 52 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 177 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 179 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 86 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 88 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 146 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 148 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 182 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 184 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 30 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 32 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 244 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 246 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 137 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 139 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 247 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 249 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 286 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 288 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 380 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 382 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 443 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 445 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 564 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 566 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 171 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 173 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 488 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 490 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/verbs/test_create_final_text_units.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/verbs/test_create_final_text_units.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/verbs/test_create_final_text_units.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/smoke/test_fixtures.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | unified-search-app/app/app_logic.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | unified-search-app/app/knowledge_loader/data_prep.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …h-app/app/knowledge_loader/data_sources/blob_source.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | …-app/app/knowledge_loader/data_sources/local_source.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …search-app/app/knowledge_loader/data_sources/loader.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag-llm/graphrag_llm/metrics/log_metrics_writer.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 48 | def update_metrics(self, *, metrics: "Metrics") -> None: | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 23 | __all__ = [ | CODE |
| LOW | …raphrag-llm/graphrag_llm/metrics/noop_metrics_store.py | 26 | def update_metrics(self, *, metrics: Metrics) -> None: | CODE |
| LOW | …phrag-llm/graphrag_llm/metrics/memory_metrics_store.py | 80 | def update_metrics(self, *, metrics: "Metrics") -> None: | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/middleware/__init__.py | 15 | __all__ = [ | CODE |
| LOW | …s/graphrag-llm/graphrag_llm/middleware/with_logging.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/types/__init__.py | 33 | __all__ = [ | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/cache/__init__.py | 8 | __all__ = [ | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/retry/__init__.py | 9 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/config/model_config.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/config/__init__.py | 25 | __all__ = [ | CODE |
| LOW | …ckages/graphrag-llm/graphrag_llm/tokenizer/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …ckages/graphrag-llm/graphrag_llm/embedding/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/completion/__init__.py | 12 | __all__ = [ | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/utils/__init__.py | 28 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/templating/__init__.py | 17 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/rate_limit/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …phrag-llm/graphrag_llm/model_cost_registry/__init__.py | 11 | __all__ = ["ModelCosts", "model_cost_registry"] | CODE |
| LOW | …ckages/graphrag-llm/graphrag_llm/threading/__init__.py | 8 | __all__ = [ | CODE |
| LOW | packages/graphrag/graphrag/logger/progress.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/cli/index.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/cli/initialize.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/cli/prompt_tune.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/data_model/__init__.py | 8 | __all__ = ["DataReader"] | CODE |
| LOW | packages/graphrag/graphrag/api/query.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/api/index.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/api/__init__.py | 24 | __all__ = [ # noqa: RUF022 | CODE |
| LOW | packages/graphrag/graphrag/api/prompt_tune.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/index/validate_config.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/graphrag/index/workflows/generate_text_embeddings.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/create_base_text_units.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …phrag/index/workflows/create_community_reports_text.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/graphrag/index/workflows/update_community_reports.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/graphrag/index/workflows/create_community_reports.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | …kages/graphrag/graphrag/index/workflows/prune_graph.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/update_final_documents.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …phrag/graphrag/index/workflows/load_input_documents.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ag/graphrag/index/workflows/create_final_text_units.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …graphrag/graphrag/index/workflows/extract_graph_nlp.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/extract_covariates.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/index/workflows/factory.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/create_communities.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …hrag/graphrag/index/workflows/load_update_documents.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …es/graphrag/graphrag/index/workflows/finalize_graph.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ges/graphrag/graphrag/index/workflows/extract_graph.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | …phrag/index/workflows/update_entities_relationships.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/create_final_documents.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/update_clean_state.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | …graphrag/graphrag/index/workflows/update_covariates.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/update_communities.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/update_text_embeddings.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …graphrag/graphrag/index/workflows/update_text_units.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ages/graphrag/graphrag/index/utils/derive_from_rows.py | 20 | logger = logging.getLogger(__name__) | CODE |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/indexing/cache/test_file_pipeline_cache.py | 34 | # Create a cache directory | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 46 | # Create the necessary mocks first | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 65 | # Create the necessary mocks first | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 126 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 141 | # Create a mock embedder that returns None and verify that no results are produced | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 195 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_cosmosdb.py | 55 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_cosmosdb.py | 132 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_factory.py | 67 | # Create a mock that satisfies the VectorStore interface | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_lancedb.py | 108 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/cache/test_factory.py | 102 | # Create a mock that satisfies the PipelineCache interface | COMMENT |
| MEDIUM⚡ | tests/integration/storage/test_factory.py | 78 | # Create a mock that satisfies the Storage interface | COMMENT |
| MEDIUM | unified-search-app/app/data_config.py | 6 | # This file is used to store configurations for the graph-indexed data and the LLM/embeddings models used in the app. | COMMENT |
| MEDIUM | …summarize_communities/graph_context/context_builder.py | 160 | # Create the ALL_CONTEXT column | COMMENT |
| MEDIUM | …graphrag/query/structured_search/drift_search/state.py | 83 | # Create a mapping from nodes to unique IDs | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 91 | # Define the container vector policy | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 103 | # Define the vector indexing policy | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 121 | # Create the container and container client | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 132 | # Create the container with compatible indexing policy | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 158 | # Create a CosmosDB container on overwrite | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | unified-search-app/app/home_page.py | 60 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | unified-search-app/app/home_page.py | 234 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …h-app/app/knowledge_loader/data_sources/blob_source.py | 95 | except Exception as err: | CODE |
| LOW | …h-app/app/knowledge_loader/data_sources/blob_source.py | 117 | except Exception as err: | CODE |
| LOW | …search-app/app/knowledge_loader/data_sources/loader.py | 61 | except Exception as e: # noqa: BLE001 | CODE |
| MEDIUM | …search-app/app/knowledge_loader/data_sources/loader.py | 62 | print(f"Error loading dataset config: {e}") # noqa T201 | CODE |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 57 | except Exception: | CODE |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 76 | except Exception: | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 92 | except Exception: # noqa: BLE001 | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 140 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | …s/graphrag-llm/graphrag_llm/middleware/with_logging.py | 50 | except Exception as e: | CODE |
| LOW⚡ | …s/graphrag-llm/graphrag_llm/middleware/with_logging.py | 65 | except Exception as e: | CODE |
| LOW | …s/graphrag-llm/graphrag_llm/retry/exponential_retry.py | 71 | except Exception as e: | CODE |
| LOW | …s/graphrag-llm/graphrag_llm/retry/exponential_retry.py | 103 | except Exception as e: | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/retry/immediate_retry.py | 51 | except Exception as e: | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/retry/immediate_retry.py | 75 | except Exception as e: | CODE |
| LOW | …aphrag-llm/graphrag_llm/utils/function_tool_manager.py | 128 | except Exception as e: | CODE |
| LOW | …g-llm/graphrag_llm/templating/jinja_template_engine.py | 48 | except Exception as e: | CODE |
| LOW | …aphrag-llm/graphrag_llm/threading/completion_thread.py | 90 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …raphrag-llm/graphrag_llm/threading/embedding_thread.py | 87 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | packages/graphrag/graphrag/index/validate_config.py | 29 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | packages/graphrag/graphrag/index/validate_config.py | 46 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …ages/graphrag/graphrag/index/utils/derive_from_rows.py | 147 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …index/operations/extract_covariates/claim_extractor.py | 91 | except Exception as e: | CODE |
| LOW | …rations/summarize_communities/summarize_communities.py | 162 | except Exception: | CODE |
| LOW | …s/summarize_communities/community_reports_extractor.py | 88 | except Exception as e: | CODE |
| LOW | …hrag/index/operations/extract_graph/graph_extractor.py | 66 | except Exception as e: # pragma: no cover - defensive logging | CODE |
| LOW | packages/graphrag/graphrag/index/run/run_pipeline.py | 153 | except Exception as e: | CODE |
| LOW | …aphrag/query/structured_search/global_search/search.py | 264 | except Exception: | CODE |
| LOW | …aphrag/query/structured_search/global_search/search.py | 421 | except Exception: | CODE |
| LOW | …raphrag/query/structured_search/local_search/search.py | 134 | except Exception: | CODE |
| LOW | …raphrag/query/structured_search/basic_search/search.py | 128 | except Exception: | CODE |
| LOW | …ages/graphrag/graphrag/query/question_gen/local_gen.py | 138 | except Exception: | CODE |
| LOW | …ages/graphrag/graphrag/query/question_gen/local_gen.py | 229 | except Exception: | CODE |
| LOW | …/graphrag-common/graphrag_common/config/load_config.py | 191 | except Exception as error: | CODE |
| LOW | …/graphrag-common/graphrag_common/config/load_config.py | 198 | except Exception as error: | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 154 | except Exception: # noqa: BLE001 | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 175 | except Exception: # noqa: BLE001 | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 194 | except Exception: | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 250 | except Exception: # noqa: BLE001 | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 147 | except Exception: # noqa: BLE001 | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 171 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 202 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 214 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 231 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 322 | except Exception: # noqa: BLE001 | CODE |
| LOW | …rage/graphrag_storage/tables/parquet_table_provider.py | 68 | except Exception: | CODE |
| LOW | …-storage/graphrag_storage/tables/csv_table_provider.py | 74 | except Exception: | CODE |
| LOW | packages/graphrag-input/graphrag_input/input_reader.py | 61 | except Exception as e: # noqa: BLE001 (catching Exception is fine here) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/smoke/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/vector_stores/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/hasher/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/config/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/graphrag_factory/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/utils/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/storage/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/chunking/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/load_config/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/cache/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/update/__init__.py | 1 | # Copyright (C) 2026 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/input/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/graph/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/graph/utils/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/graph/extractors/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …ndexing/graph/extractors/community_reports/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/operations/__init__.py | 1 | # Copyright (C) 2026 Microsoft | COMMENT |
| LOW | tests/unit/indexing/operations/embed_text/__init__.py | 1 | # Copyright (C) 2026 Microsoft | COMMENT |
| LOW | tests/unit/indexing/verbs/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/verbs/entities/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …ts/unit/indexing/verbs/entities/extraction/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …exing/verbs/entities/extraction/strategies/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …s/extraction/strategies/graph_intelligence/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/context_builder/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/input/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/input/retrieval/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/cache/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/storage/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/language_model/__init__.py | 1 | # Copyright (c) 2025 Microsoft Corporation. | COMMENT |
| LOW | tests/verbs/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/verbs/test_extract_graph.py | 61 | # this is because the mock responses always result in a single description, which is returned verbatim rather than s | COMMENT |
| LOW | tests/notebook/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …rag/graphrag/prompt_tune/prompt/entity_relationship.py | 81 | ## | COMMENT |
| LOW | …kages/graphrag/graphrag/prompts/index/extract_graph.py | 81 | ## | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/index.md | 23 | ## GraphRAG vs Baseline RAG 🔍 | COMMENT |
| MEDIUM | docs/index/inputs.md | 75 | As described on the [default dataflow](default_dataflow.md#phase-1-compose-textunits) page, documents are *chunked* into | CODE |
| MEDIUM | docs/index/byog.md | 41 | See the full text_units [table schema](./outputs.md#text_units). Text units are chunks of your documents that are sized | CODE |
| MEDIUM | unified-search-app/app/home_page.py | 27 | "#### GraphRAG: A Novel Knowledge Graph-based Approach to Retrieval Augmented Generation (RAG)" | CODE |
| MEDIUM | unified-search-app/app/home_page.py | 138 | title="##### GraphRAG: Basic RAG", | CODE |
| MEDIUM⚡ | …graphrag_llm/rate_limit/sliding_window_rate_limiter.py | 105 | # to be processed if it is larger than the tpm but smaller than context window. | COMMENT |
| MEDIUM⚡ | …graphrag_llm/rate_limit/sliding_window_rate_limiter.py | 106 | # tpm is a rate/soft limit and not the hard limit of context window limits. | COMMENT |
| MEDIUM | …ages/graphrag/graphrag/query/structured_search/base.py | 34 | # actual text strings that are in the context window, built from context_data | COMMENT |
| MEDIUM | …/query/structured_search/local_search/mixed_context.py | 460 | # we return all the candidate entities/relationships/covariates (not only those that were fitted into the co | COMMENT |
| MEDIUM | …/query/structured_search/local_search/mixed_context.py | 461 | # and add a tag to indicate which records were included in the context window | COMMENT |
| MEDIUM | …/query/structured_search/basic_search/basic_context.py | 80 | # add these related text chunks into context until we fill up the context window | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/graphrag/graphrag/cli/main.py | 250 | CODE | |
| LOW | packages/graphrag/graphrag/cli/main.py | 365 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/relationship.py | 41 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/text_unit.py | 38 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/community.py | 47 | CODE | |
| LOW | …kages/graphrag/graphrag/data_model/community_report.py | 41 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/entity.py | 41 | CODE | |
| LOW | packages/graphrag/graphrag/api/prompt_tune.py | 52 | CODE | |
| LOW | …ns/summarize_communities/graph_context/sort_context.py | 11 | CODE | |
| LOW | packages/graphrag/graphrag/index/run/utils.py | 23 | CODE | |
| LOW | …ag/graphrag/query/context_builder/community_context.py | 24 | CODE | |
| LOW | …g/query/context_builder/dynamic_community_selection.py | 32 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 35 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 77 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 149 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 191 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 225 | CODE | |
| LOW | …y/structured_search/global_search/community_context.py | 56 | CODE | |
| LOW | …aphrag/query/structured_search/global_search/search.py | 58 | CODE | |
| LOW | …/query/structured_search/local_search/mixed_context.py | 89 | CODE | |
| LOW | …/query/structured_search/local_search/mixed_context.py | 375 | CODE | |
| LOW | …/query/structured_search/drift_search/drift_context.py | 42 | CODE | |
| LOW | …/graphrag-common/graphrag_common/config/load_config.py | 106 | CODE | |
| LOW | …ages/graphrag-vectors/graphrag_vectors/vector_store.py | 59 | CODE | |
| LOW | …orage/graphrag_storage/tables/cosmos_table_provider.py | 61 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/indexing/cache/test_file_pipeline_cache.py | 45 | # Check if the cache directory is empty | COMMENT |
| LOW | tests/integration/vector_stores/test_factory.py | 85 | # Check if it's in the list of registered vector store types | COMMENT |
| LOW⚡ | tests/integration/cache/test_factory.py | 117 | # Check if it's in the list of registered cache types | COMMENT |
| LOW | tests/integration/logging/test_factory.py | 50 | # Check if it's in the list of registered logger types | COMMENT |
| LOW⚡ | …graphrag_llm/rate_limit/sliding_window_rate_limiter.py | 101 | # Check if current token window exceeds token limit | COMMENT |
| LOW | …graphrag/prompt_tune/generator/extract_graph_prompt.py | 106 | # Write file to output path | COMMENT |
| LOW | …rompt_tune/generator/community_report_summarization.py | 46 | # Write file to output path | COMMENT |
| LOW | …g/prompt_tune/generator/entity_summarization_prompt.py | 35 | # Write file to output path | COMMENT |
| LOW | packages/graphrag/graphrag/logger/standard_logging.py | 76 | # Close file handlers properly before removing them | COMMENT |
| LOW | …kages/graphrag/graphrag/logger/blob_workflow_logger.py | 106 | ): # Check if block count exceeds 25k | CODE |
| LOW | packages/graphrag/graphrag/index/update/communities.py | 34 | # Check if size and period columns exist in the old_communities. If not, add them | COMMENT |
| LOW | packages/graphrag/graphrag/index/update/communities.py | 110 | # Check if size and period columns exist in the old_community_reports. If not, add them | COMMENT |
| LOW | …ag/graphrag/query/context_builder/community_context.py | 176 | # Check if the current batch has been added | COMMENT |
| LOW | …raphrag/query/structured_search/drift_search/search.py | 219 | # Check if query state is empty | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/smoke/test_fixtures.py | 150 | CODE | |
| LOW | unified-search-app/app/home_page.py | 20 | CODE | |
| LOW | unified-search-app/app/ui/report_details.py | 18 | CODE | |
| LOW | unified-search-app/app/ui/search.py | 63 | CODE | |
| LOW | unified-search-app/app/ui/search.py | 121 | CODE | |
| LOW | unified-search-app/app/ui/search.py | 192 | CODE | |
| LOW | scripts/copy_build_assets.py | 10 | CODE | |
| LOW | …kages/graphrag-llm/graphrag_llm/tokenizer/tokenizer.py | 50 | CODE | |
| LOW | packages/graphrag/graphrag/prompt_tune/loader/input.py | 44 | CODE | |
| LOW | packages/graphrag/graphrag/utils/cli.py | 27 | CODE | |
| LOW | packages/graphrag/graphrag/utils/cli.py | 31 | CODE | |
| LOW | …raphrag/graphrag/index/workflows/create_communities.py | 195 | CODE | |
| LOW | …ns/summarize_communities/graph_context/sort_context.py | 11 | CODE | |
| LOW | …ag/graphrag/query/context_builder/community_context.py | 189 | CODE | |
| LOW | …g/query/context_builder/dynamic_community_selection.py | 73 | CODE | |
| LOW | packages/graphrag/graphrag/query/llm/text_utils.py | 44 | CODE | |
| LOW | …aphrag/query/structured_search/global_search/search.py | 306 | CODE | |
| LOW | …/query/structured_search/local_search/mixed_context.py | 375 | CODE | |
| LOW | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 166 | CODE | |
| LOW | …s/graphrag-vectors/graphrag_vectors/azure_ai_search.py | 168 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …rag/graphrag/index/workflows/create_base_text_units.py | 41 | total_rows = await documents_table.length() | CODE |
| HIGH | packages/graphrag/graphrag/index/utils/is_null.py | 11 | """Check if value is null or is nan.""" | STRING |
| HIGH | …/index/operations/build_noun_graph/build_noun_graph.py | 70 | total = await text_unit_table.length() | CODE |
| HIGH | …orage/graphrag_storage/tables/cosmos_table_provider.py | 497 | return await inner.length() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/graphrag/graphrag/query/factory.py | 130 | # TODO: Allow for another llm definition only for Global Search to leverage -mini models | COMMENT |
| MEDIUM | …raphrag/query/structured_search/drift_search/search.py | 280 | # Reduce response_state to a single comprehensive response | COMMENT |
| MEDIUM | …raphrag/query/structured_search/drift_search/search.py | 359 | """Reduce the response to a single comprehensive response. | STRING |
| MEDIUM | …raphrag/query/structured_search/drift_search/search.py | 418 | """Reduce the response to a single comprehensive response. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | unified-search-app/app/home_page.py | 157 | caption="###### Answer context: AI-generated network reports covering all input documents", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aphrag/query/structured_search/global_search/search.py | 156 | # Step 1: Generate answers for each batch of community short summaries | COMMENT |
| LOW | …aphrag/query/structured_search/global_search/search.py | 190 | # Step 2: Combine the intermediate answers from step 2 to generate the final answer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aphrag/query/structured_search/global_search/search.py | 156 | # Step 1: Generate answers for each batch of community short summaries | COMMENT |
| LOW | …aphrag/query/structured_search/global_search/search.py | 190 | # Step 2: Combine the intermediate answers from step 2 to generate the final answer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/graphrag-vectors/graphrag_vectors/lancedb.py | 55 | pa_type, dummy_value = types[field_type] | CODE |
| LOW | packages/graphrag-vectors/graphrag_vectors/lancedb.py | 56 | others[field_name] = pa.array([dummy_value], type=pa_type()) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ages/graphrag/graphrag/index/utils/derive_from_rows.py | 75 | async def execute_task(task: Coroutine) -> ItemType | None: | CODE |