Repository Analysis

Cinnamon/kotaemon

An open-source RAG-based tool for chatting with your documents.

18.1 Moderate AI signal View on GitHub

Analysis Overview

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).

18.1
Adjusted Score
18.1
Raw Score
100%
Time Factor
2026-06-09
Last Push
25.5K
Stars
Python
Language
58.4K
Lines of Code
349
Files
737
Pattern Hits
2026-07-14
Scan Date
0.10
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 35MEDIUM 78LOW 624

Directory Score Breakdown

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.

Pattern Findings

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.

Unused Imports244 hits · 238 pts
SeverityFileLineSnippetContext
LOWflowsettings.py8CODE
LOWlibs/ktem/ktem/utils/plantuml.py3CODE
LOWlibs/ktem/ktem/utils/__init__.py1CODE
LOWlibs/ktem/ktem/utils/__init__.py1CODE
LOWlibs/ktem/ktem/utils/__init__.py1CODE
LOWlibs/ktem/ktem/utils/__init__.py1CODE
LOWlibs/ktem/ktem/utils/__init__.py1CODE
LOWlibs/ktem/ktem/utils/__init__.py8CODE
LOW…bs/ktem/ktem/reasoning/prompt_optimization/__init__.py1CODE
LOW…bs/ktem/ktem/reasoning/prompt_optimization/__init__.py2CODE
LOW…bs/ktem/ktem/reasoning/prompt_optimization/__init__.py3CODE
LOW…bs/ktem/ktem/reasoning/prompt_optimization/__init__.py4CODE
LOWlibs/ktem/ktem/index/__init__.py1CODE
LOWlibs/ktem/ktem/index/base.py6CODE
LOWlibs/ktem/ktem/index/base.py8CODE
LOWlibs/ktem/ktem/index/file/__init__.py1CODE
LOWlibs/ktem/ktem/index/file/pipelines.py1CODE
LOWlibs/ktem/ktem/index/file/knet/__init__.py1CODE
LOWlibs/ktem/ktem/index/file/knet/knet_index.py5CODE
LOWlibs/ktem/ktem/index/file/graph/light_graph_index.py7CODE
LOWlibs/ktem/ktem/index/file/graph/__init__.py1CODE
LOWlibs/ktem/ktem/index/file/graph/__init__.py2CODE
LOWlibs/ktem/ktem/index/file/graph/__init__.py3CODE
LOWlibs/ktem/ktem/index/file/graph/nano_graph_index.py7CODE
LOWlibs/ktem/ktem/index/file/graph/graph_index.py5CODE
LOWlibs/ktem/ktem/assets/__init__.py5CODE
LOWlibs/ktem/ktem_tests/test_conversation.py3CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py1CODE
LOWlibs/kotaemon/tests/conftest.py58CODE
LOWlibs/kotaemon/tests/conftest.py67CODE
LOWlibs/kotaemon/tests/conftest.py76CODE
LOWlibs/kotaemon/tests/conftest.py85CODE
LOWlibs/kotaemon/tests/conftest.py86CODE
LOWlibs/kotaemon/tests/conftest.py95CODE
LOWlibs/kotaemon/tests/conftest.py104CODE
LOWlibs/kotaemon/tests/conftest.py113CODE
LOWlibs/kotaemon/tests/conftest.py122CODE
LOWlibs/kotaemon/tests/conftest.py123CODE
LOWlibs/kotaemon/tests/test_telemetry.py41CODE
LOWlibs/kotaemon/tests/test_telemetry.py55CODE
LOWlibs/kotaemon/tests/test_paddleocr_loader.py1CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py1CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py1CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py1CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py1CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py1CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py8CODE
LOWlibs/kotaemon/kotaemon/storages/docstores/__init__.py1CODE
LOWlibs/kotaemon/kotaemon/storages/docstores/__init__.py2CODE
LOWlibs/kotaemon/kotaemon/storages/docstores/__init__.py3CODE
LOWlibs/kotaemon/kotaemon/storages/docstores/__init__.py4CODE
LOWlibs/kotaemon/kotaemon/storages/docstores/__init__.py5CODE
LOW…bs/kotaemon/kotaemon/storages/vectorstores/__init__.py1CODE
LOW…bs/kotaemon/kotaemon/storages/vectorstores/__init__.py2CODE
184 more matches not shown…
Hyper-Verbose Identifiers163 hits · 176 pts
SeverityFileLineSnippetContext
LOWdocs/scripts/generate_reference_docs.py19def generate_docs_for_src_code(CODE
LOWdocs/scripts/generate_examples_docs.py17def generate_docs_for_examples_readme(CODE
LOWlibs/ktem/ktem/app.py166 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/app.py264 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/components.py142 def get_highest_accuracy_name(self) -> str:CODE
LOWlibs/ktem/ktem/main.py21def toggle_first_setup_visibility():CODE
LOWlibs/ktem/ktem/main.py127 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/rerankings/ui.py295 def on_selected_rerank_change(self, selected_rerank_name):CODE
LOWlibs/ktem/ktem/utils/render.py64 def table_preserve_linebreaks(text: str) -> str:CODE
LOWlibs/ktem/ktem/utils/render.py160 def collapsible_with_header_score(CODE
LOWlibs/ktem/ktem/utils/conversation.py40def format_mentions_for_display(input_str: str) -> str:CODE
LOWlibs/ktem/ktem/utils/hf_papers.py21def get_recommendations_from_semantic_scholar(semantic_scholar_id: str):CODE
LOWlibs/ktem/ktem/utils/hf_papers.py46def format_recommendation_into_markdown(recommendations):CODE
LOWlibs/ktem/ktem/mcp/ui.py311 def on_selected_server_change(self, selected_name):CODE
LOWlibs/ktem/ktem/mcp/manager.py83 def list_registered_mcp_servers(self) -> list[str]:CODE
LOWlibs/ktem/ktem/reasoning/simple.py223 def show_citations_and_addons(self, answer, docs, question):CODE
LOWlibs/ktem/ktem/reasoning/simple.py334 def prepare_pipeline_instance(cls, settings, retrievers):CODE
LOWlibs/ktem/ktem/reasoning/simple.py588 def prepare_pipeline_instance(cls, settings, retrievers):CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py223 def format_info_panel_evidence(self, worker_log):CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py254 def format_info_panel_planner(self, planner_output):CODE
LOWlibs/ktem/ktem/index/ui.py11def update_current_module_atime():CODE
LOWlibs/ktem/ktem/index/base.py77 def get_selector_component_ui(self) -> Optional["BasePage"]:CODE
LOWlibs/ktem/ktem/index/file/index.py238 def _setup_file_selector_ui_cls(self):CODE
LOWlibs/ktem/ktem/index/file/index.py354 def get_selector_component_ui(self):CODE
LOWlibs/ktem/ktem/index/file/ui.py407 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/index/file/ui.py625 def download_single_file_simple(self, is_zipped_state, file_html, file_id):CODE
LOWlibs/ktem/ktem/index/file/ui.py696 def on_register_quick_uploads(self):CODE
LOWlibs/ktem/ktem/index/file/ui.py1281 def index_fn_file_with_default_loaders(CODE
LOWlibs/ktem/ktem/index/file/ui.py1321 def index_fn_url_with_default_loaders(CODE
LOWlibs/ktem/ktem/index/file/ui.py1458 def format_size_human_readable(self, num: float | str, suffix="B"):CODE
LOWlibs/ktem/ktem/index/file/ui.py1874 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/index/file/pipelines.py400 def insert_chunks_to_vectorstore():CODE
LOWlibs/ktem/ktem/index/file/pipelines.py445 def handle_chunks_vectorstore(self, chunks, file_id):CODE
LOWlibs/ktem/ktem/index/file/graph/light_graph_index.py23 def _get_or_create_collection_graph_id(self):CODE
LOWlibs/ktem/ktem/index/file/graph/nano_pipelines.py118def get_default_models_wrapper():CODE
LOWlibs/ktem/ktem/index/file/graph/nano_pipelines.py151async def nano_graph_rag_build_local_query_context(CODE
LOWlibs/ktem/ktem/index/file/graph/nano_pipelines.py244 def store_file_id_with_graph_id(self, file_ids: list[str | None]):CODE
LOWlibs/ktem/ktem/index/file/graph/nano_graph_index.py23 def _get_or_create_collection_graph_id(self):CODE
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py120def get_default_models_wrapper():CODE
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py153async def lightrag_build_local_query_context(CODE
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py256 def store_file_id_with_graph_id(self, file_ids: list[str | None]):CODE
LOWlibs/ktem/ktem/index/file/graph/pipelines.py76 def store_file_id_with_graph_id(self, file_ids: list[str | None]):CODE
LOWlibs/ktem/ktem/pages/settings.py136 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/pages/settings.py391 def refresh_reasoning_tool_choices(self, *current_values):CODE
LOWlibs/ktem/ktem/pages/login.py78 def on_subscribe_public_events(self):STRING
LOWlibs/ktem/ktem/pages/chat/control.py442 def toggle_demo_login_visibility(self, user_api_key, request: gr.Request):CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py1011 def on_set_public_conversation(self, is_public, convo_id):CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py1033 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py1410 def check_and_suggest_name_conv(self, chat_history):CODE
LOWlibs/ktem/ktem/pages/resources/user.py262 def on_subscribe_public_events(self):STRING
LOWlibs/ktem/ktem/pages/resources/__init__.py39 def on_subscribe_public_events(self):CODE
LOWlibs/ktem/ktem_tests/test_conversation.py81def test_format_mentions_use_html_strong(CODE
LOWlibs/ktem/ktem_tests/test_conversation.py89def test_strip_display_mentions_with_special_characters() -> None:CODE
LOWlibs/ktem/ktem_tests/test_conversation.py103def test_get_mentions_regex_unquoted_filename_with_asterisks() -> None:CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py59def test_add_empty_or_whitespace_name_raises(CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py68def test_add_whitespace_name_is_stripped(manager: MCPManager) -> None:CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py74def test_add_complex_config_stored_correctly(manager: MCPManager) -> None:CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py94def test_update_changes_config(manager: MCPManager) -> None:CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py103def test_update_nonexistent_raises(manager: MCPManager) -> None:CODE
LOWlibs/ktem/ktem_tests/test_mcp_manager.py109def test_delete_removes_entry(manager: MCPManager) -> None:CODE
103 more matches not shown…
Decorative Section Separators38 hits · 147 pts
SeverityFileLineSnippetContext
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py89# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py91# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py124# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py126# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py143# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py145# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py15# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py17# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py37# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/ktem/ktem_tests/test_mcp_manager.py39# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py38# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py40# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py78# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py80# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py141# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py143# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py181# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py183# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py222# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py224# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py16# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py18# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py268# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_mcp_tools.py270# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_paddleocr_loader.py25# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_paddleocr_loader.py27# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_paddleocr_loader.py108# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_paddleocr_loader.py110# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_paddleocr_loader.py215# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/tests/test_paddleocr_loader.py217# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py25# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py27# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py97# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py99# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py277# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/tools/mcp.py279# ---------------------------------------------------------------------------COMMENT
Cross-File Repetition25 hits · 125 pts
SeverityFileLineSnippetContext
HIGHlibs/ktem/ktem/components.py0get the name of random model returns: str: random model name in the poolSTRING
HIGHlibs/ktem/ktem/embeddings/manager.py0get the name of random model returns: str: random model name in the poolSTRING
HIGHlibs/ktem/ktem/rerankings/manager.py0get the name of random model returns: str: random model name in the poolSTRING
HIGHlibs/ktem/ktem/llms/manager.py0get the name of random model returns: str: random model name in the poolSTRING
HIGHlibs/ktem/ktem/components.py0get the name of default model in case there is no default model, choose random model from pool. in case there are multipSTRING
HIGHlibs/ktem/ktem/embeddings/manager.py0get the name of default model in case there is no default model, choose random model from pool. in case there are multipSTRING
HIGHlibs/ktem/ktem/rerankings/manager.py0get the name of default model in case there is no default model, choose random model from pool. in case there are multipSTRING
HIGHlibs/ktem/ktem/llms/manager.py0get the name of default model in case there is no default model, choose random model from pool. in case there are multipSTRING
HIGHlibs/ktem/ktem/components.py0get default model in case there is no default model, choose random model from pool. in case there are multiple default mSTRING
HIGHlibs/ktem/ktem/embeddings/manager.py0get default model in case there is no default model, choose random model from pool. in case there are multiple default mSTRING
HIGHlibs/ktem/ktem/rerankings/manager.py0get default model in case there is no default model, choose random model from pool. in case there are multiple default mSTRING
HIGHlibs/ktem/ktem/llms/manager.py0get default model in case there is no default model, choose random model from pool. in case there are multiple default mSTRING
HIGHlibs/ktem/ktem/embeddings/manager.py0update a model in the pool, optionally renaming it.STRING
HIGHlibs/ktem/ktem/rerankings/manager.py0update a model in the pool, optionally renaming it.STRING
HIGHlibs/ktem/ktem/llms/manager.py0update a model in the pool, optionally renaming it.STRING
HIGHlibs/ktem/ktem/reasoning/react.py0rewrite user question args: llm: the language model to rewrite question rewrite_template: the prompt template for llm toSTRING
HIGHlibs/ktem/ktem/reasoning/rewoo.py0rewrite user question args: llm: the language model to rewrite question rewrite_template: the prompt template for llm toSTRING
HIGH…ktem/reasoning/prompt_optimization/rewrite_question.py0rewrite user question args: llm: the language model to rewrite question rewrite_template: the prompt template for llm toSTRING
HIGHlibs/kotaemon/kotaemon/storages/vectorstores/qdrant.py0delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vecSTRING
HIGHlibs/kotaemon/kotaemon/storages/vectorstores/lancedb.py0delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vecSTRING
HIGHlibs/kotaemon/kotaemon/storages/vectorstores/chroma.py0delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vecSTRING
HIGHlibs/kotaemon/kotaemon/storages/vectorstores/base.py0delete vector embeddings from vector stores args: ids: list of ids of the embeddings to be deleted kwargs: meant for vecSTRING
HIGHlibs/kotaemon/kotaemon/indices/rankings/llm.py0filter down documents based on their relevance to the query.STRING
HIGHlibs/kotaemon/kotaemon/indices/rankings/llm_trulens.py0filter down documents based on their relevance to the query.STRING
HIGHlibs/kotaemon/kotaemon/indices/rankings/llm_scoring.py0filter down documents based on their relevance to the query.STRING
Excessive Try-Catch Wrapping94 hits · 116 pts
SeverityFileLineSnippetContext
LOWflowsettings.py25 except Exception:CODE
LOWlibs/ktem/ktem/embeddings/ui.py264 except Exception as e:CODE
LOWlibs/ktem/ktem/embeddings/ui.py374 except Exception as e:CODE
LOWlibs/ktem/ktem/embeddings/ui.py401 except Exception as e:CODE
LOWlibs/ktem/ktem/embeddings/ui.py407 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/embeddings/ui.py250def create_emb(self, name, choices, spec, default):CODE
MEDIUMlibs/ktem/ktem/embeddings/ui.py384def save_emb(self, selected_emb_name, edit_name, default, spec):CODE
MEDIUMlibs/ktem/ktem/embeddings/ui.py404def delete_emb(self, selected_emb_name):CODE
LOWlibs/ktem/ktem/embeddings/manager.py170 except Exception as e:CODE
LOWlibs/ktem/ktem/embeddings/manager.py182 except Exception as e:CODE
LOWlibs/ktem/ktem/embeddings/manager.py216 except Exception as e:CODE
LOWlibs/ktem/ktem/rerankings/ui.py263 except Exception as e:CODE
LOWlibs/ktem/ktem/rerankings/ui.py373 except Exception as e:CODE
LOWlibs/ktem/ktem/rerankings/ui.py400 except Exception as e:CODE
LOWlibs/ktem/ktem/rerankings/ui.py408 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/rerankings/ui.py249def create_rerank(self, name, choices, spec, default):CODE
MEDIUMlibs/ktem/ktem/rerankings/ui.py383def save_rerank(self, selected_rerank_name, edit_name, default, spec):CODE
MEDIUMlibs/ktem/ktem/rerankings/ui.py405def delete_rerank(self, selected_rerank_name):CODE
LOWlibs/ktem/ktem/rerankings/manager.py152 except Exception as e:CODE
LOWlibs/ktem/ktem/rerankings/manager.py164 except Exception as e:CODE
LOWlibs/ktem/ktem/rerankings/manager.py197 except Exception as e:CODE
LOWlibs/ktem/ktem/utils/render.py112 except Exception as e:CODE
LOWlibs/ktem/ktem/utils/hf_papers.py63 except Exception as e:CODE
LOWlibs/ktem/ktem/utils/hf_papers.py110 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/utils/hf_papers.py55def get_paper_id_from_name(paper_name):CODE
MEDIUMlibs/ktem/ktem/utils/hf_papers.py83def fetch_papers(top_n=5):CODE
LOWlibs/ktem/ktem/mcp/ui.py203 except Exception as e:CODE
LOWlibs/ktem/ktem/mcp/ui.py244 except Exception as e:CODE
LOWlibs/ktem/ktem/mcp/ui.py348 except Exception as e:CODE
LOWlibs/ktem/ktem/mcp/ui.py362 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/mcp/ui.py344def delete_server(self, selected_name):CODE
MEDIUMlibs/ktem/ktem/mcp/ui.py353def save_server(self, selected_name, config_str):CODE
LOWlibs/ktem/ktem/reasoning/react.py314 except Exception as e:CODE
LOWlibs/ktem/ktem/reasoning/react.py320 except Exception as e:CODE
LOWlibs/ktem/ktem/reasoning/simple.py214 except Exception as e:CODE
LOWlibs/ktem/ktem/reasoning/simple.py405 except Exception as e:CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py451 except Exception as e:CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py457 except Exception as e:CODE
LOWlibs/ktem/ktem/index/ui.py258 except Exception as e:CODE
LOWlibs/ktem/ktem/index/ui.py334 except Exception as e:CODE
LOWlibs/ktem/ktem/index/ui.py341 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/index/ui.py337def delete_index(self, selected_index_id):CODE
LOWlibs/ktem/ktem/index/manager.py65 except Exception as e:CODE
LOWlibs/ktem/ktem/index/manager.py129 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/index/manager.py130 print(f"Error while deleting index {index.name}: {e}")CODE
LOWlibs/ktem/ktem/index/manager.py140 except Exception as e:CODE
LOWlibs/ktem/ktem/index/file/ui.py825 except Exception as e:CODE
LOWlibs/ktem/ktem/index/file/ui.py1267 except Exception as e:CODE
MEDIUMlibs/ktem/ktem/index/file/ui.py696def on_register_quick_uploads(self):CODE
LOWlibs/ktem/ktem/index/file/pipelines.py210 except Exception:CODE
MEDIUMlibs/ktem/ktem/index/file/pipelines.py211 print("Error retrieving additional tables")CODE
LOWlibs/ktem/ktem/index/file/pipelines.py232 except Exception as e:CODE
LOWlibs/ktem/ktem/index/file/pipelines.py852 except Exception as e:CODE
LOWlibs/ktem/ktem/index/file/knet/pipelines.py125 except Exception:CODE
LOWlibs/ktem/ktem/index/file/graph/nano_pipelines.py93 except Exception as e:CODE
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py95 except Exception as e:CODE
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py182 except Exception:CODE
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py189 except Exception:CODE
LOWlibs/ktem/ktem/llms/ui.py263 except Exception as e:CODE
LOWlibs/ktem/ktem/llms/ui.py374 except Exception as e:CODE
34 more matches not shown…
Deep Nesting57 hits · 57 pts
SeverityFileLineSnippetContext
LOWlibs/ktem/ktem/main.py42CODE
LOWlibs/ktem/ktem/main.py127CODE
LOWlibs/ktem/ktem/embeddings/ui.py31CODE
LOWlibs/ktem/ktem/rerankings/ui.py33CODE
LOWlibs/ktem/ktem/mcp/ui.py31CODE
LOWlibs/ktem/ktem/reasoning/react.py58CODE
LOWlibs/ktem/ktem/reasoning/react.py262CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py95CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py223CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py265CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py349CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py387CODE
LOWlibs/ktem/ktem/index/ui.py44CODE
LOWlibs/ktem/ktem/index/file/ui.py351CODE
LOWlibs/ktem/ktem/index/file/ui.py460CODE
LOWlibs/ktem/ktem/index/file/ui.py549CODE
LOWlibs/ktem/ktem/index/file/ui.py696CODE
LOWlibs/ktem/ktem/index/file/ui.py1210CODE
LOWlibs/ktem/ktem/index/file/ui.py1321CODE
LOWlibs/ktem/ktem/index/file/pipelines.py115CODE
LOWlibs/ktem/ktem/index/file/pipelines.py574CODE
LOWlibs/ktem/ktem/index/file/pipelines.py676CODE
LOWlibs/ktem/ktem/llms/ui.py31CODE
LOWlibs/ktem/ktem/llms/manager.py16CODE
LOWlibs/ktem/ktem/pages/setup.py25CODE
LOWlibs/ktem/ktem/pages/setup.py189CODE
LOWlibs/ktem/ktem/pages/settings.py69CODE
LOWlibs/ktem/ktem/pages/settings.py136CODE
LOWlibs/ktem/ktem/pages/settings.py301CODE
LOWlibs/ktem/ktem/pages/settings.py321CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py223CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py1182CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py1296CODE
LOWlibs/ktem/ktem/pages/chat/__init__.py1425CODE
LOWlibs/ktem/ktem/pages/chat/report.py44CODE
LOWlibs/ktem/ktem/pages/resources/user.py135CODE
LOWlibs/kotaemon/kotaemon/indices/vectorindex.py45CODE
LOWlibs/kotaemon/kotaemon/indices/vectorindex.py134CODE
LOWlibs/kotaemon/kotaemon/indices/qa/format_context.py28CODE
LOWlibs/kotaemon/kotaemon/indices/qa/citation_qa_inline.py103CODE
LOWlibs/kotaemon/kotaemon/indices/qa/citation_qa_inline.py193CODE
LOWlibs/kotaemon/kotaemon/indices/qa/utils.py4CODE
LOWlibs/kotaemon/kotaemon/indices/qa/citation_qa.py121CODE
LOWlibs/kotaemon/kotaemon/indices/qa/citation_qa.py296CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/export.py17CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/ui/chat.py46CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/ui/pipeline.py41CODE
LOWlibs/kotaemon/kotaemon/agents/tools/base.py69CODE
LOWlibs/kotaemon/kotaemon/agents/rewoo/agent.py108CODE
LOWlibs/kotaemon/kotaemon/loaders/html_loader.py115CODE
LOWlibs/kotaemon/kotaemon/loaders/adobe_loader.py56CODE
LOWlibs/kotaemon/kotaemon/loaders/unstructured_loader.py51CODE
LOWlibs/kotaemon/kotaemon/loaders/mathpix_loader.py77CODE
LOWlibs/kotaemon/kotaemon/loaders/utils/pdf_ocr.py115CODE
LOWlibs/kotaemon/kotaemon/loaders/utils/gpt4v.py61CODE
LOWlibs/kotaemon/kotaemon/loaders/utils/table.py258CODE
LOW…/kotaemon/kotaemon/loaders/paddleocr_loader/adapter.py146CODE
Modern Structural Boilerplate56 hits · 56 pts
SeverityFileLineSnippetContext
LOWlibs/ktem/ktem/components.py14logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/utils/__init__.py10__all__ = [CODE
LOWlibs/ktem/ktem/mcp/ui.py12logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/mcp/manager.py14logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/reasoning/react.py26logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/reasoning/simple.py39logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/reasoning/rewoo.py27logger = logging.getLogger(__name__)CODE
LOW…oning/prompt_optimization/suggest_conversation_name.py8logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/reasoning/prompt_optimization/mindmap.py9logger = logging.getLogger(__name__)CODE
LOW…em/reasoning/prompt_optimization/decompose_question.py10logger = logging.getLogger(__name__)CODE
LOW…bs/ktem/ktem/reasoning/prompt_optimization/__init__.py6__all__ = [CODE
LOW…reasoning/prompt_optimization/suggest_followup_chat.py8logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/index/__init__.py3__all__ = ["IndexManager"]CODE
LOWlibs/ktem/ktem/index/base.py11logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/index/file/__init__.py3__all__ = ["FileIndex"]CODE
LOWlibs/ktem/ktem/index/file/pipelines.py54logger = logging.getLogger(__name__)CODE
LOWlibs/ktem/ktem/index/file/knet/__init__.py3__all__ = ["KnowledgeNetworkFileIndex"]CODE
LOWlibs/ktem/ktem/index/file/graph/__init__.py5__all__ = ["GraphRAGIndex", "NanoGraphRAGIndex", "LightRAGIndex"]CODE
LOWlibs/ktem/ktem/assets/__init__.py12__all__ = ["KotaemonTheme", "PDFJS_VERSION_DIST", "PDFJS_PREBUILT_DIR"]CODE
LOWlibs/ktem/ktem/pages/chat/control.py16logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/__init__.py4logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/storages/__init__.py18__all__ = [CODE
LOWlibs/kotaemon/kotaemon/storages/docstores/__init__.py7__all__ = [CODE
LOW…bs/kotaemon/kotaemon/storages/vectorstores/__init__.py9__all__ = [CODE
LOWlibs/kotaemon/kotaemon/parsers/__init__.py3__all__ = ["RegexExtractor", "FirstMatchRegexExtractor"]CODE
LOWlibs/kotaemon/kotaemon/indices/__init__.py3__all__ = ["VectorIndexing", "VectorRetrieval"]CODE
LOWlibs/kotaemon/kotaemon/indices/ingests/__init__.py3__all__ = ["DocumentIngestor"]CODE
LOWlibs/kotaemon/kotaemon/indices/qa/__init__.py3__all__ = [CODE
LOWlibs/kotaemon/kotaemon/indices/rankings/__init__.py7__all__ = [CODE
LOWlibs/kotaemon/kotaemon/indices/extractors/__init__.py3__all__ = [CODE
LOWlibs/kotaemon/kotaemon/embeddings/__init__.py16__all__ = [CODE
LOWlibs/kotaemon/kotaemon/chatbot/__init__.py4__all__ = ["BaseChatBot", "SimpleRespondentChatbot", "ChatConversation"]CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/tunnel.py28logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/ui/blocks.py87 def _setup_events(self) -> None:CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/ui/blocks.py173 def _setup_api(self) -> None:CODE
LOWlibs/kotaemon/kotaemon/rerankings/__init__.py6__all__ = ["BaseReranking", "TeiFastReranking", "CohereReranking", "VoyageAIReranking"]CODE
LOWlibs/kotaemon/kotaemon/agents/__init__.py15__all__ = [CODE
LOWlibs/kotaemon/kotaemon/agents/tools/__init__.py14__all__ = [CODE
LOWlibs/kotaemon/kotaemon/agents/tools/mcp.py22logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/agents/rewoo/__init__.py3__all__ = ["RewooAgent"]CODE
LOWlibs/kotaemon/kotaemon/agents/io/__init__.py3__all__ = ["AgentOutput", "AgentFinish", "BaseScratchPad", "AgentType", "AgentAction"]CODE
LOWlibs/kotaemon/kotaemon/agents/react/__init__.py3__all__ = ["ReactAgent"]CODE
LOWlibs/kotaemon/kotaemon/llms/__init__.py24__all__ = [CODE
LOW…/kotaemon/kotaemon/llms/completions/langchain_based.py8logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/llms/completions/__init__.py4__all__ = ["LLM", "OpenAI", "AzureOpenAI", "LCCompletionMixin", "LlamaCpp"]CODE
LOWlibs/kotaemon/kotaemon/llms/prompts/__init__.py4__all__ = ["BasePromptComponent", "PromptTemplate"]CODE
LOWlibs/kotaemon/kotaemon/llms/chats/langchain_based.py10logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/llms/chats/__init__.py15__all__ = [CODE
LOWlibs/kotaemon/kotaemon/llms/chats/base.py8logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/loaders/ocr_loader.py16logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/loaders/adobe_loader.py13logger = logging.getLogger(__name__)CODE
LOWlibs/kotaemon/kotaemon/loaders/__init__.py17__all__ = [CODE
LOWlibs/kotaemon/kotaemon/loaders/utils/gpt4v.py8logger = logging.getLogger(__name__)CODE
LOW…kotaemon/kotaemon/loaders/paddleocr_loader/__init__.py4__all__ = [CODE
LOWlibs/kotaemon/kotaemon/base/__init__.py15__all__ = [CODE
LOWlibs/kotaemon/kotaemon/base/component.py66__all__ = ["BaseComponent", "Param", "Node", "lazy"]CODE
Docstring Block Structure7 hits · 35 pts
SeverityFileLineSnippetContext
HIGHlibs/ktem/ktem/index/file/base.py82Stream the indexing pipeline Args: file_paths (str | Path | list[str | Path]): the file paths to inSTRING
HIGHlibs/kotaemon/kotaemon/indices/rankings/llm_trulens.py62Extract a 0-10 rating from a string. If the string does not match an integer or matches an integer outside the STRING
HIGHlibs/kotaemon/kotaemon/llms/linear.py128 Run the pipeline with the given arguments and return the final output as a Document object. STRING
HIGHlibs/kotaemon/kotaemon/llms/branching.py129 Execute the pipeline by running each branch and return the output of the first branch that returns STRING
HIGHlibs/kotaemon/kotaemon/llms/prompts/template.py76 Strictly populate the template with the given keyword arguments. Args: **kwargs: The keywoSTRING
HIGHlibs/kotaemon/kotaemon/llms/prompts/base.py39 Check for redundant keyword arguments. Parameters: **kwargs (dict): A dictionary of keyworSTRING
HIGHlibs/kotaemon/kotaemon/llms/prompts/base.py70 Validates the value types of the given keyword arguments. Parameters: **kwargs (dict): A dSTRING
Self-Referential Comments8 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUMlibs/ktem/ktem/index/ui.py15 # Define the file pathCOMMENT
MEDIUMlibs/ktem/ktem/index/manager.py180 """This method is called by the base application when the application startsSTRING
MEDIUM…/kotaemon/kotaemon/storages/docstores/elasticsearch.py34 # Create an Elasticsearch client instanceCOMMENT
MEDIUM…/kotaemon/kotaemon/storages/docstores/elasticsearch.py37 # Define the index settings and mappingsCOMMENT
MEDIUM…/kotaemon/kotaemon/storages/docstores/elasticsearch.py57 # Create the index with the specified settings and mappingsCOMMENT
MEDIUMlibs/kotaemon/kotaemon/indices/qa/citation_qa_inline.py153 # Define the regex pattern to match 【number】COMMENT
MEDIUMlibs/kotaemon/kotaemon/loaders/unstructured_loader.py108 # Create a single document by joining all the textsCOMMENT
MEDIUMlibs/kotaemon/kotaemon/loaders/utils/adobe.py70 # Create an ExecutionContext using credentialsCOMMENT
Modern AI Meta-Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md237### Setup Local Models (for local/private RAG)COMMENT
MEDIUMREADME.md367### Adding your own RAG pipelineCOMMENT
MEDIUMdocs/local_model.md76## Use local models for RAGCOMMENT
MEDIUMlibs/ktem/ktem/pages/setup.py360 # embedding modelCOMMENT
MEDIUM…/kotaemon/kotaemon/loaders/paddleocr_loader/adapter.py39# Labels to ignore (not useful for RAG)COMMENT
Slop Phrases6 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMlibs/ktem/ktem/utils/rate_limit.py7# In-memory store for rate limiting (for demonstration purposes)COMMENT
MEDIUMlibs/ktem/ktem/reasoning/rewoo.py43 "#E2: <toolname>[<input here, you can use #E1 to represent its expected output>]\n"CODE
MEDIUMlibs/kotaemon/kotaemon/agents/rewoo/prompt.py17#E2: <toolname>[<input here, you can use #E1 to represent its expected output>]COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/rewoo/prompt.py39#E2: <toolname>[<input here, you can use #E1 to represent its expected output>]COMMENT
MEDIUMlibs/kotaemon/kotaemon/agents/rewoo/prompt.py69#E2: <toolname>[<input, you can use #E1 to represent its expected output>]COMMENT
MEDIUMlibs/kotaemon/kotaemon/llms/cot.py33 {'tutorial': 'As an AI language model,...'}STRING
Cross-Language Confusion3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHlibs/ktem/ktem/index/file/ui.py56 values.push({CODE
HIGHlibs/ktem/ktem/index/file/ui.py93 var cursorPos = input_box.selectionStart || 0;CODE
HIGHlibs/ktem/ktem/pages/login.py13 return [username, password, null];CODE
AI Structural Patterns13 hits · 13 pts
SeverityFileLineSnippetContext
LOW…soning/prompt_optimization/fewshot_rewrite_question.py100CODE
LOWlibs/ktem/ktem/assets/theme.py152CODE
LOWlibs/kotaemon/kotaemon/storages/vectorstores/chroma.py11CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/themes.py10CODE
LOWlibs/kotaemon/kotaemon/rerankings/tei_fast_rerank.py53CODE
LOWlibs/kotaemon/kotaemon/agents/tools/llm.py37CODE
LOW…/kotaemon/kotaemon/llms/completions/langchain_based.py111CODE
LOW…/kotaemon/kotaemon/llms/completions/langchain_based.py155CODE
LOWlibs/kotaemon/kotaemon/llms/chats/openai.py193CODE
LOWlibs/kotaemon/kotaemon/llms/chats/openai.py380CODE
LOWlibs/kotaemon/kotaemon/loaders/excel_loader.py104CODE
LOWlibs/kotaemon/kotaemon/loaders/web_loader.py34CODE
LOWlibs/kotaemon/kotaemon/loaders/utils/gpt4v.py58CODE
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOWlaunch.sh10# Check if environment variable KH_DEMO_MODE is set to trueCOMMENT
LOWlibs/ktem/ktem/index/file/graph/nano_pipelines.py256 # Check if mapping already existsCOMMENT
LOWlibs/ktem/ktem/index/file/graph/nano_pipelines.py345 # Check if graph already existsCOMMENT
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py268 # Check if mapping already existsCOMMENT
LOWlibs/ktem/ktem/index/file/graph/lightrag_pipelines.py354 # Check if graph already existsCOMMENT
LOWlibs/ktem/ktem/pages/setup.py33 # Check if the request was successfulCOMMENT
LOWscripts/run_macos.sh151 # Check if the destination directory exists, create if it doesn'tCOMMENT
LOWscripts/run_linux.sh150 # Check if the destination directory exists, create if it doesn'tCOMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWdocs/development/utilities.md35#### Step 2 - Export pipeline to configCOMMENT
LOWdocs/development/utilities.md58#### Step 3 - Customize the configCOMMENT
LOWdocs/development/utilities.md156#### Step 6 - Export to ExcelCOMMENT
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOWlibs/ktem/alembic.ini1# A generic, single database configuration.COMMENT
LOWlibs/ktem/alembic.ini21# string value is passed to ZoneInfo()COMMENT
LOWlibs/ktem/alembic.ini41# The path separator used here should be the separator specified by "version_path_separator" below.COMMENT
LOWlibs/ktem/alembic.ini61# output_encoding = utf-8COMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMlibs/kotaemon/kotaemon/storages/docstores/in_memory.py80 # For better query support, utilize SQLite as the default document store.COMMENT
Example Usage Blocks2 hits · 2 pts
SeverityFileLineSnippetContext
LOWlibs/kotaemon/kotaemon/contribs/promptui/ui/chat.py15USAGE_INSTRUCTION = """## How to use:CODE
LOWlibs/kotaemon/kotaemon/contribs/promptui/ui/pipeline.py16USAGE_INSTRUCTION = """## How to use:CODE