An open-source RAG-based tool for chatting with your documents.
This report presents the forensic synthetic code analysis of Cinnamon/kotaemon, a Python project with 25,545 GitHub stars. SynthScan v2.0 examined 58,432 lines of code across 349 source files, recording 737 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 18.1 places this repository in the Moderate 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 737 distinct pattern matches across 18 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 |
|---|---|---|---|---|
| LOW | flowsettings.py | 8 | CODE | |
| LOW | libs/ktem/ktem/utils/plantuml.py | 3 | CODE | |
| LOW | libs/ktem/ktem/utils/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/utils/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/utils/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/utils/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/utils/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/utils/__init__.py | 8 | CODE | |
| LOW | …bs/ktem/ktem/reasoning/prompt_optimization/__init__.py | 1 | CODE | |
| LOW | …bs/ktem/ktem/reasoning/prompt_optimization/__init__.py | 2 | CODE | |
| LOW | …bs/ktem/ktem/reasoning/prompt_optimization/__init__.py | 3 | CODE | |
| LOW | …bs/ktem/ktem/reasoning/prompt_optimization/__init__.py | 4 | CODE | |
| LOW | libs/ktem/ktem/index/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/index/base.py | 6 | CODE | |
| LOW | libs/ktem/ktem/index/base.py | 8 | CODE | |
| LOW | libs/ktem/ktem/index/file/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 1 | CODE | |
| LOW | libs/ktem/ktem/index/file/knet/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/index/file/knet/knet_index.py | 5 | CODE | |
| LOW | libs/ktem/ktem/index/file/graph/light_graph_index.py | 7 | CODE | |
| LOW | libs/ktem/ktem/index/file/graph/__init__.py | 1 | CODE | |
| LOW | libs/ktem/ktem/index/file/graph/__init__.py | 2 | CODE | |
| LOW | libs/ktem/ktem/index/file/graph/__init__.py | 3 | CODE | |
| LOW | libs/ktem/ktem/index/file/graph/nano_graph_index.py | 7 | CODE | |
| LOW | libs/ktem/ktem/index/file/graph/graph_index.py | 5 | CODE | |
| LOW | libs/ktem/ktem/assets/__init__.py | 5 | CODE | |
| LOW | libs/ktem/ktem_tests/test_conversation.py | 3 | CODE | |
| LOW | libs/ktem/ktem_tests/test_mcp_manager.py | 1 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 58 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 67 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 76 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 85 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 86 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 95 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 104 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 113 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 122 | CODE | |
| LOW | libs/kotaemon/tests/conftest.py | 123 | CODE | |
| LOW | libs/kotaemon/tests/test_telemetry.py | 41 | CODE | |
| LOW | libs/kotaemon/tests/test_telemetry.py | 55 | CODE | |
| LOW | libs/kotaemon/tests/test_paddleocr_loader.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 8 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/docstores/__init__.py | 1 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/docstores/__init__.py | 2 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/docstores/__init__.py | 3 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/docstores/__init__.py | 4 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/docstores/__init__.py | 5 | CODE | |
| LOW | …bs/kotaemon/kotaemon/storages/vectorstores/__init__.py | 1 | CODE | |
| LOW | …bs/kotaemon/kotaemon/storages/vectorstores/__init__.py | 2 | CODE | |
| 184 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/scripts/generate_reference_docs.py | 19 | def generate_docs_for_src_code( | CODE |
| LOW | docs/scripts/generate_examples_docs.py | 17 | def generate_docs_for_examples_readme( | CODE |
| LOW | libs/ktem/ktem/app.py | 166 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/app.py | 264 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/components.py | 142 | def get_highest_accuracy_name(self) -> str: | CODE |
| LOW | libs/ktem/ktem/main.py | 21 | def toggle_first_setup_visibility(): | CODE |
| LOW | libs/ktem/ktem/main.py | 127 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/rerankings/ui.py | 295 | def on_selected_rerank_change(self, selected_rerank_name): | CODE |
| LOW | libs/ktem/ktem/utils/render.py | 64 | def table_preserve_linebreaks(text: str) -> str: | CODE |
| LOW | libs/ktem/ktem/utils/render.py | 160 | def collapsible_with_header_score( | CODE |
| LOW | libs/ktem/ktem/utils/conversation.py | 40 | def format_mentions_for_display(input_str: str) -> str: | CODE |
| LOW | libs/ktem/ktem/utils/hf_papers.py | 21 | def get_recommendations_from_semantic_scholar(semantic_scholar_id: str): | CODE |
| LOW | libs/ktem/ktem/utils/hf_papers.py | 46 | def format_recommendation_into_markdown(recommendations): | CODE |
| LOW | libs/ktem/ktem/mcp/ui.py | 311 | def on_selected_server_change(self, selected_name): | CODE |
| LOW | libs/ktem/ktem/mcp/manager.py | 83 | def list_registered_mcp_servers(self) -> list[str]: | CODE |
| LOW | libs/ktem/ktem/reasoning/simple.py | 223 | def show_citations_and_addons(self, answer, docs, question): | CODE |
| LOW | libs/ktem/ktem/reasoning/simple.py | 334 | def prepare_pipeline_instance(cls, settings, retrievers): | CODE |
| LOW | libs/ktem/ktem/reasoning/simple.py | 588 | def prepare_pipeline_instance(cls, settings, retrievers): | CODE |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 223 | def format_info_panel_evidence(self, worker_log): | CODE |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 254 | def format_info_panel_planner(self, planner_output): | CODE |
| LOW | libs/ktem/ktem/index/ui.py | 11 | def update_current_module_atime(): | CODE |
| LOW | libs/ktem/ktem/index/base.py | 77 | def get_selector_component_ui(self) -> Optional["BasePage"]: | CODE |
| LOW | libs/ktem/ktem/index/file/index.py | 238 | def _setup_file_selector_ui_cls(self): | CODE |
| LOW | libs/ktem/ktem/index/file/index.py | 354 | def get_selector_component_ui(self): | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 407 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 625 | def download_single_file_simple(self, is_zipped_state, file_html, file_id): | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 696 | def on_register_quick_uploads(self): | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 1281 | def index_fn_file_with_default_loaders( | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 1321 | def index_fn_url_with_default_loaders( | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 1458 | def format_size_human_readable(self, num: float | str, suffix="B"): | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 1874 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 400 | def insert_chunks_to_vectorstore(): | CODE |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 445 | def handle_chunks_vectorstore(self, chunks, file_id): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/light_graph_index.py | 23 | def _get_or_create_collection_graph_id(self): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/nano_pipelines.py | 118 | def get_default_models_wrapper(): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/nano_pipelines.py | 151 | async def nano_graph_rag_build_local_query_context( | CODE |
| LOW | libs/ktem/ktem/index/file/graph/nano_pipelines.py | 244 | def store_file_id_with_graph_id(self, file_ids: list[str | None]): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/nano_graph_index.py | 23 | def _get_or_create_collection_graph_id(self): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 120 | def get_default_models_wrapper(): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 153 | async def lightrag_build_local_query_context( | CODE |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 256 | def store_file_id_with_graph_id(self, file_ids: list[str | None]): | CODE |
| LOW | libs/ktem/ktem/index/file/graph/pipelines.py | 76 | def store_file_id_with_graph_id(self, file_ids: list[str | None]): | CODE |
| LOW | libs/ktem/ktem/pages/settings.py | 136 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/pages/settings.py | 391 | def refresh_reasoning_tool_choices(self, *current_values): | CODE |
| LOW | libs/ktem/ktem/pages/login.py | 78 | def on_subscribe_public_events(self): | STRING |
| LOW | libs/ktem/ktem/pages/chat/control.py | 442 | def toggle_demo_login_visibility(self, user_api_key, request: gr.Request): | CODE |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 1011 | def on_set_public_conversation(self, is_public, convo_id): | CODE |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 1033 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 1410 | def check_and_suggest_name_conv(self, chat_history): | CODE |
| LOW | libs/ktem/ktem/pages/resources/user.py | 262 | def on_subscribe_public_events(self): | STRING |
| LOW | libs/ktem/ktem/pages/resources/__init__.py | 39 | def on_subscribe_public_events(self): | CODE |
| LOW | libs/ktem/ktem_tests/test_conversation.py | 81 | def test_format_mentions_use_html_strong( | CODE |
| LOW | libs/ktem/ktem_tests/test_conversation.py | 89 | def test_strip_display_mentions_with_special_characters() -> None: | CODE |
| LOW | libs/ktem/ktem_tests/test_conversation.py | 103 | def test_get_mentions_regex_unquoted_filename_with_asterisks() -> None: | CODE |
| LOW⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 59 | def test_add_empty_or_whitespace_name_raises( | CODE |
| LOW⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 68 | def test_add_whitespace_name_is_stripped(manager: MCPManager) -> None: | CODE |
| LOW⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 74 | def test_add_complex_config_stored_correctly(manager: MCPManager) -> None: | CODE |
| LOW⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 94 | def test_update_changes_config(manager: MCPManager) -> None: | CODE |
| LOW⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 103 | def test_update_nonexistent_raises(manager: MCPManager) -> None: | CODE |
| LOW⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 109 | def test_delete_removes_entry(manager: MCPManager) -> None: | CODE |
| 103 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 89 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 126 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 143 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/ktem/ktem_tests/test_mcp_manager.py | 145 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/ktem/ktem_tests/test_mcp_manager.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/ktem/ktem_tests/test_mcp_manager.py | 17 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/ktem/ktem_tests/test_mcp_manager.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/ktem/ktem_tests/test_mcp_manager.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 143 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 181 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 183 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 222 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_mcp_tools.py | 224 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/tests/test_mcp_tools.py | 16 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/tests/test_mcp_tools.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/tests/test_mcp_tools.py | 268 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/tests/test_mcp_tools.py | 270 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_paddleocr_loader.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_paddleocr_loader.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/tests/test_paddleocr_loader.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/tests/test_paddleocr_loader.py | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_paddleocr_loader.py | 215 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/tests/test_paddleocr_loader.py | 217 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/kotaemon/agents/tools/mcp.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | libs/kotaemon/kotaemon/agents/tools/mcp.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/tools/mcp.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/tools/mcp.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/tools/mcp.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/tools/mcp.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/tools/mcp.py | 277 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/tools/mcp.py | 279 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | libs/ktem/ktem/components.py | 0 | get the name of random model returns: str: random model name in the pool | STRING |
| HIGH | libs/ktem/ktem/embeddings/manager.py | 0 | get the name of random model returns: str: random model name in the pool | STRING |
| HIGH | libs/ktem/ktem/rerankings/manager.py | 0 | get the name of random model returns: str: random model name in the pool | STRING |
| HIGH | libs/ktem/ktem/llms/manager.py | 0 | get the name of random model returns: str: random model name in the pool | STRING |
| HIGH | libs/ktem/ktem/components.py | 0 | get the name of default model in case there is no default model, choose random model from pool. in case there are multip | STRING |
| HIGH | libs/ktem/ktem/embeddings/manager.py | 0 | get the name of default model in case there is no default model, choose random model from pool. in case there are multip | STRING |
| HIGH | libs/ktem/ktem/rerankings/manager.py | 0 | get the name of default model in case there is no default model, choose random model from pool. in case there are multip | STRING |
| HIGH | libs/ktem/ktem/llms/manager.py | 0 | get the name of default model in case there is no default model, choose random model from pool. in case there are multip | STRING |
| HIGH | libs/ktem/ktem/components.py | 0 | get default model in case there is no default model, choose random model from pool. in case there are multiple default m | STRING |
| HIGH | libs/ktem/ktem/embeddings/manager.py | 0 | get default model in case there is no default model, choose random model from pool. in case there are multiple default m | STRING |
| HIGH | libs/ktem/ktem/rerankings/manager.py | 0 | get default model in case there is no default model, choose random model from pool. in case there are multiple default m | STRING |
| HIGH | libs/ktem/ktem/llms/manager.py | 0 | get default model in case there is no default model, choose random model from pool. in case there are multiple default m | STRING |
| HIGH | libs/ktem/ktem/embeddings/manager.py | 0 | update a model in the pool, optionally renaming it. | STRING |
| HIGH | libs/ktem/ktem/rerankings/manager.py | 0 | update a model in the pool, optionally renaming it. | STRING |
| HIGH | libs/ktem/ktem/llms/manager.py | 0 | update a model in the pool, optionally renaming it. | STRING |
| HIGH | libs/ktem/ktem/reasoning/react.py | 0 | rewrite user question args: llm: the language model to rewrite question rewrite_template: the prompt template for llm to | STRING |
| HIGH | libs/ktem/ktem/reasoning/rewoo.py | 0 | rewrite user question args: llm: the language model to rewrite question rewrite_template: the prompt template for llm to | STRING |
| HIGH | …ktem/reasoning/prompt_optimization/rewrite_question.py | 0 | rewrite user question args: llm: the language model to rewrite question rewrite_template: the prompt template for llm to | STRING |
| HIGH | libs/kotaemon/kotaemon/storages/vectorstores/qdrant.py | 0 | delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vec | STRING |
| HIGH | libs/kotaemon/kotaemon/storages/vectorstores/lancedb.py | 0 | delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vec | STRING |
| HIGH | libs/kotaemon/kotaemon/storages/vectorstores/chroma.py | 0 | delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vec | STRING |
| HIGH | libs/kotaemon/kotaemon/storages/vectorstores/base.py | 0 | delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vec | STRING |
| HIGH | libs/kotaemon/kotaemon/indices/rankings/llm.py | 0 | filter down documents based on their relevance to the query. | STRING |
| HIGH | libs/kotaemon/kotaemon/indices/rankings/llm_trulens.py | 0 | filter down documents based on their relevance to the query. | STRING |
| HIGH | libs/kotaemon/kotaemon/indices/rankings/llm_scoring.py | 0 | filter down documents based on their relevance to the query. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | flowsettings.py | 25 | except Exception: | CODE |
| LOW | libs/ktem/ktem/embeddings/ui.py | 264 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/embeddings/ui.py | 374 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/embeddings/ui.py | 401 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/embeddings/ui.py | 407 | except Exception as e: | CODE |
| MEDIUM | libs/ktem/ktem/embeddings/ui.py | 250 | def create_emb(self, name, choices, spec, default): | CODE |
| MEDIUM | libs/ktem/ktem/embeddings/ui.py | 384 | def save_emb(self, selected_emb_name, edit_name, default, spec): | CODE |
| MEDIUM | libs/ktem/ktem/embeddings/ui.py | 404 | def delete_emb(self, selected_emb_name): | CODE |
| LOW | libs/ktem/ktem/embeddings/manager.py | 170 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/embeddings/manager.py | 182 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/embeddings/manager.py | 216 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/rerankings/ui.py | 263 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/rerankings/ui.py | 373 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/rerankings/ui.py | 400 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/rerankings/ui.py | 408 | except Exception as e: | CODE |
| MEDIUM | libs/ktem/ktem/rerankings/ui.py | 249 | def create_rerank(self, name, choices, spec, default): | CODE |
| MEDIUM | libs/ktem/ktem/rerankings/ui.py | 383 | def save_rerank(self, selected_rerank_name, edit_name, default, spec): | CODE |
| MEDIUM | libs/ktem/ktem/rerankings/ui.py | 405 | def delete_rerank(self, selected_rerank_name): | CODE |
| LOW | libs/ktem/ktem/rerankings/manager.py | 152 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/rerankings/manager.py | 164 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/rerankings/manager.py | 197 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/utils/render.py | 112 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/utils/hf_papers.py | 63 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/utils/hf_papers.py | 110 | except Exception as e: | CODE |
| MEDIUM | libs/ktem/ktem/utils/hf_papers.py | 55 | def get_paper_id_from_name(paper_name): | CODE |
| MEDIUM | libs/ktem/ktem/utils/hf_papers.py | 83 | def fetch_papers(top_n=5): | CODE |
| LOW | libs/ktem/ktem/mcp/ui.py | 203 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/mcp/ui.py | 244 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/mcp/ui.py | 348 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/mcp/ui.py | 362 | except Exception as e: | CODE |
| MEDIUM | libs/ktem/ktem/mcp/ui.py | 344 | def delete_server(self, selected_name): | CODE |
| MEDIUM | libs/ktem/ktem/mcp/ui.py | 353 | def save_server(self, selected_name, config_str): | CODE |
| LOW | libs/ktem/ktem/reasoning/react.py | 314 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/reasoning/react.py | 320 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/reasoning/simple.py | 214 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/reasoning/simple.py | 405 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 451 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 457 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/ui.py | 258 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/ui.py | 334 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/ui.py | 341 | except Exception as e: | CODE |
| MEDIUM | libs/ktem/ktem/index/ui.py | 337 | def delete_index(self, selected_index_id): | CODE |
| LOW | libs/ktem/ktem/index/manager.py | 65 | except Exception as e: | CODE |
| LOW⚡ | libs/ktem/ktem/index/manager.py | 129 | except Exception as e: | CODE |
| MEDIUM⚡ | libs/ktem/ktem/index/manager.py | 130 | print(f"Error while deleting index {index.name}: {e}") | CODE |
| LOW⚡ | libs/ktem/ktem/index/manager.py | 140 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 825 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/file/ui.py | 1267 | except Exception as e: | CODE |
| MEDIUM | libs/ktem/ktem/index/file/ui.py | 696 | def on_register_quick_uploads(self): | CODE |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 210 | except Exception: | CODE |
| MEDIUM | libs/ktem/ktem/index/file/pipelines.py | 211 | print("Error retrieving additional tables") | CODE |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 232 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 852 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/file/knet/pipelines.py | 125 | except Exception: | CODE |
| LOW | libs/ktem/ktem/index/file/graph/nano_pipelines.py | 93 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 95 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 182 | except Exception: | CODE |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 189 | except Exception: | CODE |
| LOW | libs/ktem/ktem/llms/ui.py | 263 | except Exception as e: | CODE |
| LOW | libs/ktem/ktem/llms/ui.py | 374 | except Exception as e: | CODE |
| 34 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/ktem/ktem/main.py | 42 | CODE | |
| LOW | libs/ktem/ktem/main.py | 127 | CODE | |
| LOW | libs/ktem/ktem/embeddings/ui.py | 31 | CODE | |
| LOW | libs/ktem/ktem/rerankings/ui.py | 33 | CODE | |
| LOW | libs/ktem/ktem/mcp/ui.py | 31 | CODE | |
| LOW | libs/ktem/ktem/reasoning/react.py | 58 | CODE | |
| LOW | libs/ktem/ktem/reasoning/react.py | 262 | CODE | |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 95 | CODE | |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 223 | CODE | |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 265 | CODE | |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 349 | CODE | |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 387 | CODE | |
| LOW | libs/ktem/ktem/index/ui.py | 44 | CODE | |
| LOW | libs/ktem/ktem/index/file/ui.py | 351 | CODE | |
| LOW | libs/ktem/ktem/index/file/ui.py | 460 | CODE | |
| LOW | libs/ktem/ktem/index/file/ui.py | 549 | CODE | |
| LOW | libs/ktem/ktem/index/file/ui.py | 696 | CODE | |
| LOW | libs/ktem/ktem/index/file/ui.py | 1210 | CODE | |
| LOW | libs/ktem/ktem/index/file/ui.py | 1321 | CODE | |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 115 | CODE | |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 574 | CODE | |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 676 | CODE | |
| LOW | libs/ktem/ktem/llms/ui.py | 31 | CODE | |
| LOW | libs/ktem/ktem/llms/manager.py | 16 | CODE | |
| LOW | libs/ktem/ktem/pages/setup.py | 25 | CODE | |
| LOW | libs/ktem/ktem/pages/setup.py | 189 | CODE | |
| LOW | libs/ktem/ktem/pages/settings.py | 69 | CODE | |
| LOW | libs/ktem/ktem/pages/settings.py | 136 | CODE | |
| LOW | libs/ktem/ktem/pages/settings.py | 301 | CODE | |
| LOW | libs/ktem/ktem/pages/settings.py | 321 | CODE | |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 223 | CODE | |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 1182 | CODE | |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 1296 | CODE | |
| LOW | libs/ktem/ktem/pages/chat/__init__.py | 1425 | CODE | |
| LOW | libs/ktem/ktem/pages/chat/report.py | 44 | CODE | |
| LOW | libs/ktem/ktem/pages/resources/user.py | 135 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/vectorindex.py | 45 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/vectorindex.py | 134 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/qa/format_context.py | 28 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/qa/citation_qa_inline.py | 103 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/qa/citation_qa_inline.py | 193 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/qa/utils.py | 4 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/qa/citation_qa.py | 121 | CODE | |
| LOW | libs/kotaemon/kotaemon/indices/qa/citation_qa.py | 296 | CODE | |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/export.py | 17 | CODE | |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/ui/chat.py | 46 | CODE | |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/ui/pipeline.py | 41 | CODE | |
| LOW | libs/kotaemon/kotaemon/agents/tools/base.py | 69 | CODE | |
| LOW | libs/kotaemon/kotaemon/agents/rewoo/agent.py | 108 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/html_loader.py | 115 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/adobe_loader.py | 56 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/unstructured_loader.py | 51 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/mathpix_loader.py | 77 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/utils/pdf_ocr.py | 115 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/utils/gpt4v.py | 61 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/utils/table.py | 258 | CODE | |
| LOW | …/kotaemon/kotaemon/loaders/paddleocr_loader/adapter.py | 146 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/ktem/ktem/components.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/utils/__init__.py | 10 | __all__ = [ | CODE |
| LOW | libs/ktem/ktem/mcp/ui.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/mcp/manager.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/reasoning/react.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/reasoning/simple.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/reasoning/rewoo.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …oning/prompt_optimization/suggest_conversation_name.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/reasoning/prompt_optimization/mindmap.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …em/reasoning/prompt_optimization/decompose_question.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | …bs/ktem/ktem/reasoning/prompt_optimization/__init__.py | 6 | __all__ = [ | CODE |
| LOW | …reasoning/prompt_optimization/suggest_followup_chat.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/index/__init__.py | 3 | __all__ = ["IndexManager"] | CODE |
| LOW | libs/ktem/ktem/index/base.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/index/file/__init__.py | 3 | __all__ = ["FileIndex"] | CODE |
| LOW | libs/ktem/ktem/index/file/pipelines.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/ktem/ktem/index/file/knet/__init__.py | 3 | __all__ = ["KnowledgeNetworkFileIndex"] | CODE |
| LOW | libs/ktem/ktem/index/file/graph/__init__.py | 5 | __all__ = ["GraphRAGIndex", "NanoGraphRAGIndex", "LightRAGIndex"] | CODE |
| LOW | libs/ktem/ktem/assets/__init__.py | 12 | __all__ = ["KotaemonTheme", "PDFJS_VERSION_DIST", "PDFJS_PREBUILT_DIR"] | CODE |
| LOW | libs/ktem/ktem/pages/chat/control.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/__init__.py | 4 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/storages/__init__.py | 18 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/storages/docstores/__init__.py | 7 | __all__ = [ | CODE |
| LOW | …bs/kotaemon/kotaemon/storages/vectorstores/__init__.py | 9 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/parsers/__init__.py | 3 | __all__ = ["RegexExtractor", "FirstMatchRegexExtractor"] | CODE |
| LOW | libs/kotaemon/kotaemon/indices/__init__.py | 3 | __all__ = ["VectorIndexing", "VectorRetrieval"] | CODE |
| LOW | libs/kotaemon/kotaemon/indices/ingests/__init__.py | 3 | __all__ = ["DocumentIngestor"] | CODE |
| LOW | libs/kotaemon/kotaemon/indices/qa/__init__.py | 3 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/indices/rankings/__init__.py | 7 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/indices/extractors/__init__.py | 3 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/embeddings/__init__.py | 16 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/chatbot/__init__.py | 4 | __all__ = ["BaseChatBot", "SimpleRespondentChatbot", "ChatConversation"] | CODE |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/tunnel.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/ui/blocks.py | 87 | def _setup_events(self) -> None: | CODE |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/ui/blocks.py | 173 | def _setup_api(self) -> None: | CODE |
| LOW | libs/kotaemon/kotaemon/rerankings/__init__.py | 6 | __all__ = ["BaseReranking", "TeiFastReranking", "CohereReranking", "VoyageAIReranking"] | CODE |
| LOW | libs/kotaemon/kotaemon/agents/__init__.py | 15 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/agents/tools/__init__.py | 14 | __all__ = [ | CODE |
| LOW⚡ | libs/kotaemon/kotaemon/agents/tools/mcp.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/agents/rewoo/__init__.py | 3 | __all__ = ["RewooAgent"] | CODE |
| LOW | libs/kotaemon/kotaemon/agents/io/__init__.py | 3 | __all__ = ["AgentOutput", "AgentFinish", "BaseScratchPad", "AgentType", "AgentAction"] | CODE |
| LOW | libs/kotaemon/kotaemon/agents/react/__init__.py | 3 | __all__ = ["ReactAgent"] | CODE |
| LOW | libs/kotaemon/kotaemon/llms/__init__.py | 24 | __all__ = [ | CODE |
| LOW | …/kotaemon/kotaemon/llms/completions/langchain_based.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/llms/completions/__init__.py | 4 | __all__ = ["LLM", "OpenAI", "AzureOpenAI", "LCCompletionMixin", "LlamaCpp"] | CODE |
| LOW | libs/kotaemon/kotaemon/llms/prompts/__init__.py | 4 | __all__ = ["BasePromptComponent", "PromptTemplate"] | CODE |
| LOW | libs/kotaemon/kotaemon/llms/chats/langchain_based.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/llms/chats/__init__.py | 15 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/llms/chats/base.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/loaders/ocr_loader.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/loaders/adobe_loader.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/kotaemon/kotaemon/loaders/__init__.py | 17 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/loaders/utils/gpt4v.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | …kotaemon/kotaemon/loaders/paddleocr_loader/__init__.py | 4 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/base/__init__.py | 15 | __all__ = [ | CODE |
| LOW | libs/kotaemon/kotaemon/base/component.py | 66 | __all__ = ["BaseComponent", "Param", "Node", "lazy"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | libs/ktem/ktem/index/file/base.py | 82 | Stream the indexing pipeline Args: file_paths (str | Path | list[str | Path]): the file paths to in | STRING |
| HIGH | libs/kotaemon/kotaemon/indices/rankings/llm_trulens.py | 62 | Extract a 0-10 rating from a string. If the string does not match an integer or matches an integer outside the | STRING |
| HIGH | libs/kotaemon/kotaemon/llms/linear.py | 128 | Run the pipeline with the given arguments and return the final output as a Document object. | STRING |
| HIGH | libs/kotaemon/kotaemon/llms/branching.py | 129 | Execute the pipeline by running each branch and return the output of the first branch that returns | STRING |
| HIGH | libs/kotaemon/kotaemon/llms/prompts/template.py | 76 | Strictly populate the template with the given keyword arguments. Args: **kwargs: The keywo | STRING |
| HIGH | libs/kotaemon/kotaemon/llms/prompts/base.py | 39 | Check for redundant keyword arguments. Parameters: **kwargs (dict): A dictionary of keywor | STRING |
| HIGH | libs/kotaemon/kotaemon/llms/prompts/base.py | 70 | Validates the value types of the given keyword arguments. Parameters: **kwargs (dict): A d | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | libs/ktem/ktem/index/ui.py | 15 | # Define the file path | COMMENT |
| MEDIUM | libs/ktem/ktem/index/manager.py | 180 | """This method is called by the base application when the application starts | STRING |
| MEDIUM | …/kotaemon/kotaemon/storages/docstores/elasticsearch.py | 34 | # Create an Elasticsearch client instance | COMMENT |
| MEDIUM | …/kotaemon/kotaemon/storages/docstores/elasticsearch.py | 37 | # Define the index settings and mappings | COMMENT |
| MEDIUM | …/kotaemon/kotaemon/storages/docstores/elasticsearch.py | 57 | # Create the index with the specified settings and mappings | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/indices/qa/citation_qa_inline.py | 153 | # Define the regex pattern to match 【number】 | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/loaders/unstructured_loader.py | 108 | # Create a single document by joining all the texts | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/loaders/utils/adobe.py | 70 | # Create an ExecutionContext using credentials | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 237 | ### Setup Local Models (for local/private RAG) | COMMENT |
| MEDIUM | README.md | 367 | ### Adding your own RAG pipeline | COMMENT |
| MEDIUM | docs/local_model.md | 76 | ## Use local models for RAG | COMMENT |
| MEDIUM | libs/ktem/ktem/pages/setup.py | 360 | # embedding model | COMMENT |
| MEDIUM | …/kotaemon/kotaemon/loaders/paddleocr_loader/adapter.py | 39 | # Labels to ignore (not useful for RAG) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | libs/ktem/ktem/utils/rate_limit.py | 7 | # In-memory store for rate limiting (for demonstration purposes) | COMMENT |
| MEDIUM | libs/ktem/ktem/reasoning/rewoo.py | 43 | "#E2: <toolname>[<input here, you can use #E1 to represent its expected output>]\n" | CODE |
| MEDIUM | libs/kotaemon/kotaemon/agents/rewoo/prompt.py | 17 | #E2: <toolname>[<input here, you can use #E1 to represent its expected output>] | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/rewoo/prompt.py | 39 | #E2: <toolname>[<input here, you can use #E1 to represent its expected output>] | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/agents/rewoo/prompt.py | 69 | #E2: <toolname>[<input, you can use #E1 to represent its expected output>] | COMMENT |
| MEDIUM | libs/kotaemon/kotaemon/llms/cot.py | 33 | {'tutorial': 'As an AI language model,...'} | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | libs/ktem/ktem/index/file/ui.py | 56 | values.push({ | CODE |
| HIGH | libs/ktem/ktem/index/file/ui.py | 93 | var cursorPos = input_box.selectionStart || 0; | CODE |
| HIGH | libs/ktem/ktem/pages/login.py | 13 | return [username, password, null]; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …soning/prompt_optimization/fewshot_rewrite_question.py | 100 | CODE | |
| LOW | libs/ktem/ktem/assets/theme.py | 152 | CODE | |
| LOW | libs/kotaemon/kotaemon/storages/vectorstores/chroma.py | 11 | CODE | |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/themes.py | 10 | CODE | |
| LOW | libs/kotaemon/kotaemon/rerankings/tei_fast_rerank.py | 53 | CODE | |
| LOW | libs/kotaemon/kotaemon/agents/tools/llm.py | 37 | CODE | |
| LOW | …/kotaemon/kotaemon/llms/completions/langchain_based.py | 111 | CODE | |
| LOW | …/kotaemon/kotaemon/llms/completions/langchain_based.py | 155 | CODE | |
| LOW | libs/kotaemon/kotaemon/llms/chats/openai.py | 193 | CODE | |
| LOW | libs/kotaemon/kotaemon/llms/chats/openai.py | 380 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/excel_loader.py | 104 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/web_loader.py | 34 | CODE | |
| LOW | libs/kotaemon/kotaemon/loaders/utils/gpt4v.py | 58 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | launch.sh | 10 | # Check if environment variable KH_DEMO_MODE is set to true | COMMENT |
| LOW | libs/ktem/ktem/index/file/graph/nano_pipelines.py | 256 | # Check if mapping already exists | COMMENT |
| LOW | libs/ktem/ktem/index/file/graph/nano_pipelines.py | 345 | # Check if graph already exists | COMMENT |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 268 | # Check if mapping already exists | COMMENT |
| LOW | libs/ktem/ktem/index/file/graph/lightrag_pipelines.py | 354 | # Check if graph already exists | COMMENT |
| LOW | libs/ktem/ktem/pages/setup.py | 33 | # Check if the request was successful | COMMENT |
| LOW | scripts/run_macos.sh | 151 | # Check if the destination directory exists, create if it doesn't | COMMENT |
| LOW | scripts/run_linux.sh | 150 | # Check if the destination directory exists, create if it doesn't | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/development/utilities.md | 35 | #### Step 2 - Export pipeline to config | COMMENT |
| LOW | docs/development/utilities.md | 58 | #### Step 3 - Customize the config | COMMENT |
| LOW | docs/development/utilities.md | 156 | #### Step 6 - Export to Excel | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/ktem/alembic.ini | 1 | # A generic, single database configuration. | COMMENT |
| LOW | libs/ktem/alembic.ini | 21 | # string value is passed to ZoneInfo() | COMMENT |
| LOW | libs/ktem/alembic.ini | 41 | # The path separator used here should be the separator specified by "version_path_separator" below. | COMMENT |
| LOW | libs/ktem/alembic.ini | 61 | # output_encoding = utf-8 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | libs/kotaemon/kotaemon/storages/docstores/in_memory.py | 80 | # For better query support, utilize SQLite as the default document store. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/kotaemon/kotaemon/contribs/promptui/ui/chat.py | 15 | USAGE_INSTRUCTION = """## How to use: | CODE |
| LOW | libs/kotaemon/kotaemon/contribs/promptui/ui/pipeline.py | 16 | USAGE_INSTRUCTION = """## How to use: | CODE |