An open-source RAG-based tool for chatting with your documents.
This report summarizes scanner evidence for Cinnamon/kotaemon, a Python project with 25,801 GitHub stars. SynthScan examined 58,432 lines of code across 349 source files, recording 747 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 18.9 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 277 finding(s).
Are imports declared and package/API names verified? 247 finding(s).
Are wrappers, guards, and repeated structures necessary? 399 finding(s).
Which changes need focused human review? 747 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 747 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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/utils/rate_limit.py | 26 | except (ImportError, AssertionError): | CODE |
| HIGH | libs/ktem/ktem/pages/chat/__init__.py | 1453 | except Exception: | CODE |
| HIGH | libs/kotaemon/tests/test_telemetry.py | 13 | except KeyError: | CODE |
| HIGH | libs/kotaemon/tests/test_telemetry.py | 18 | except KeyError: | CODE |
| HIGH | libs/kotaemon/tests/test_telemetry.py | 23 | except KeyError: | CODE |
| HIGH | libs/kotaemon/tests/test_llms_chat_models.py | 11 | except ImportError: | CODE |
| HIGH | libs/kotaemon/kotaemon/__init__.py | 12 | except ImportError: | CODE |
| HIGH | libs/kotaemon/kotaemon/__init__.py | 22 | except ImportError: | CODE |
| HIGH | libs/kotaemon/kotaemon/indices/rankings/llm_trulens.py | 86 | except ValueError: | CODE |
| HIGH | libs/kotaemon/kotaemon/llms/chats/langchain_based.py | 61 | except Exception: | 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 |