AI Slop Code RIsk Monitor

open-webui/open-webui

User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

6.1 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for open-webui/open-webui, a Python project with 154,202 GitHub stars. SynthScan examined 542,686 lines of code across 1098 source files, recording 2768 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 6.1 (Moderate 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.

6.1
Adjusted Signal
6.1
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
154.2K
Stars
Python
Language
542.7K
Lines of Code
1.1K
Files
2.8K
Pattern Hits
2026-10-12
Scan Date
0.09
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 10.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.6/100 · LOW

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

Agent Over-Engineering Ratio 20.2/100 · LOW

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

PR Review Velocity Impact 29.2/100 · MEDIUM

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 2HIGH 99MEDIUM 233LOW 2434

Directory Score Breakdown

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

Pattern Findings

The scanner identified 2768 distinct pattern matches across 22 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.

Excessive Try-Catch Wrapping1044 hits · 922 pts
SeverityFileLineSnippetContext
LOWcontribution_stats.py16 except Exception:CODE
MEDIUMcontribution_stats.py38 print('Error: Are you in a git repository?')CODE
LOWcontribution_stats.py59 except Exception:CODE
MEDIUMbackend/open_webui/functions.py308def stream_content():CODE
LOWbackend/open_webui/functions.py62 except Exception as e:CODE
LOWbackend/open_webui/functions.py99 except Exception as e:CODE
LOWbackend/open_webui/functions.py146 except Exception as e:CODE
LOWbackend/open_webui/functions.py180 except Exception:CODE
LOWbackend/open_webui/functions.py209 except Exception as e:CODE
LOWbackend/open_webui/functions.py265 except Exception as e:CODE
LOWbackend/open_webui/functions.py321 except Exception as e:CODE
LOWbackend/open_webui/functions.py348 except Exception as e:CODE
LOWbackend/open_webui/tasks.py53 except Exception as e:CODE
LOWbackend/open_webui/tasks.py58 except Exception as e:CODE
LOW⚡backend/open_webui/tasks.py79 except Exception:CODE
LOWbackend/open_webui/tasks.py239 except Exception:CODE
LOW⚡backend/open_webui/config.py106 except Exception as e:CODE
LOW⚡backend/open_webui/config.py108except Exception as e:CODE
LOW⚡backend/open_webui/config.py117 except Exception as e:CODE
LOW⚡backend/open_webui/config.py128 except Exception as e:CODE
LOW⚡backend/open_webui/config.py136 except Exception as e:CODE
LOW⚡backend/open_webui/config.py144 except Exception as e:CODE
LOW⚡backend/open_webui/config.py548 except Exception:CODE
LOW⚡backend/open_webui/config.py558 except Exception:CODE
LOW⚡backend/open_webui/config.py568 except Exception:CODE
LOW⚡backend/open_webui/config.py578 except Exception:CODE
LOW⚡backend/open_webui/config.py677 except Exception:CODE
LOW⚡backend/open_webui/config.py687 except Exception:CODE
LOW⚡backend/open_webui/config.py697 except Exception:CODE
LOW⚡backend/open_webui/config.py707 except Exception:CODE
LOW⚡backend/open_webui/config.py721 except Exception:CODE
LOW⚡backend/open_webui/config.py731 except Exception:CODE
LOW⚡backend/open_webui/config.py741 except Exception:CODE
LOW⚡backend/open_webui/config.py758 except Exception:CODE
LOW⚡backend/open_webui/config.py768 except Exception:CODE
LOW⚡backend/open_webui/config.py778 except Exception:CODE
LOW⚡backend/open_webui/config.py788 except Exception:CODE
LOWbackend/open_webui/config.py76 except Exception as e:CODE
LOWbackend/open_webui/config.py221 except Exception as e:CODE
LOWbackend/open_webui/config.py365except Exception:CODE
LOWbackend/open_webui/config.py383except Exception as e:CODE
LOWbackend/open_webui/config.py402except Exception:CODE
LOWbackend/open_webui/config.py592 except Exception:CODE
LOW⚡backend/open_webui/config.py1681except Exception as e:STRING
LOW⚡backend/open_webui/config.py1689except Exception as e:STRING
LOW⚡backend/open_webui/config.py1697except Exception as e:STRING
LOW⚡backend/open_webui/config.py1705except Exception as e:STRING
LOW⚡backend/open_webui/config.py1714except Exception as e:STRING
LOWbackend/open_webui/config.py1184except Exception as e:STRING
LOWbackend/open_webui/config.py2061except Exception as e:STRING
LOWbackend/open_webui/config.py2163except Exception as e:STRING
LOWbackend/open_webui/config.py2186except Exception as e:STRING
LOWbackend/open_webui/env.py58 except Exception as exc:CODE
LOWbackend/open_webui/env.py69 except Exception:CODE
LOWbackend/open_webui/env.py148 except Exception:CODE
LOWbackend/open_webui/env.py189except Exception:CODE
LOWbackend/open_webui/env.py454 except Exception:CODE
LOWbackend/open_webui/env.py489 except Exception:CODE
LOWbackend/open_webui/env.py674except Exception:CODE
LOWbackend/open_webui/env.py693 except Exception:CODE
984 more matches not shown…
Hyper-Verbose Identifiers604 hits · 552 pts
SeverityFileLineSnippetContext
LOWbackend/open_webui/functions.py52async def get_function_module_by_id(request: Request, pipe_id: str):CODE
LOWbackend/open_webui/functions.py153async def generate_function_chat_completion(request, form_data, user, models: dict | None = None):CODE
LOWbackend/open_webui/tasks.py28async def redis_task_command_listener(app):CODE
LOWbackend/open_webui/tasks.py226async def get_response_streams_by_chat_id(redis, chat_id: str) -> list[dict]:CODE
LOWbackend/open_webui/config.py85async def import_legacy_config_json():CODE
LOWbackend/open_webui/env.py559def _build_ssl_context_from_file(path: str) -> '_ssl.SSLContext | None':CODE
LOWbackend/open_webui/events.py854async def migrate_legacy_webhook_config() -> list[dict[str, Any]]:CODE
LOWbackend/open_webui/events.py1062def schedule_webhook_dispatch(app: Any, event: Event) -> None:CODE
LOWbackend/open_webui/events.py1074def schedule_notification_dispatch(app: Any, event: Event) -> None:CODE
LOWbackend/open_webui/events.py1159def schedule_event_function_dispatch(app: Any, event: Event, request: Any | None = None) -> None:CODE
LOWbackend/open_webui/events.py1205async def publish_model_provider_request_failed(CODE
LOWbackend/open_webui/main.py2143async def list_tasks_by_chat_id_endpoint(request: Request, chat_id: str, user=Depends(get_verified_user)):CODE
LOWbackend/open_webui/main.py2161async def stop_tasks_by_chat_id_endpoint(request: Request, chat_id: str, user=Depends(get_verified_user)):CODE
LOWbackend/open_webui/main.py2595async def get_app_latest_release_version(user=Depends(get_verified_user)):CODE
LOWbackend/open_webui/main.py516async def recurrence_timeout_handler(request: Request, exc: RecurrenceEvaluationTimeout):STRING
LOWbackend/open_webui/main.py621async def initialize_runtime_config(app: FastAPI):STRING
LOWbackend/open_webui/main.py1486 async def run_initial_title_generation():STRING
LOWbackend/open_webui/main.py1894async def resolve_chat_message_tool_call(STRING
LOWbackend/open_webui/main.py1943async def passthrough_anthropic_messages(request: Request, form_data: dict, user) -> Response | dict:STRING
LOWbackend/open_webui/routers/functions.py462async def get_function_valves_by_id(CODE
LOWbackend/open_webui/routers/functions.py488async def get_function_valves_spec_by_id(CODE
LOWbackend/open_webui/routers/functions.py518async def update_function_valves_by_id(CODE
LOWbackend/open_webui/routers/functions.py570async def get_function_user_valves_by_id(CODE
LOWbackend/open_webui/routers/functions.py591async def get_function_user_valves_spec_by_id(CODE
LOWbackend/open_webui/routers/functions.py619async def update_function_user_valves_by_id(CODE
LOWbackend/open_webui/routers/files.py111def _matches_configured_mime_type(supported: list[str] | str, content_type: str) -> bool:CODE
LOWbackend/open_webui/routers/files.py120def _media_supported_for_extraction(CODE
LOWbackend/open_webui/routers/files.py689async def get_file_data_content_by_id(CODE
LOWbackend/open_webui/routers/files.py719async def update_file_data_content_by_id(CODE
LOWbackend/open_webui/routers/files.py859async def get_html_file_content_by_id(CODE
LOW⚡backend/open_webui/routers/terminals.py257async def _resolve_authenticated_connection(ws: WebSocket, server_id: str):CODE
LOWbackend/open_webui/routers/tasks.py80async def get_task_model_generation_config(default_model_id: str, models) -> tuple[str, dict]:CODE
LOWbackend/open_webui/routers/configs.py327async def get_terminal_servers_config(request: Request, user=Depends(get_admin_user)):CODE
LOWbackend/open_webui/routers/configs.py332async def set_terminal_servers_config(CODE
LOWbackend/open_webui/routers/configs.py356async def verify_terminal_server_connection(CODE
LOWbackend/open_webui/routers/configs.py431async def put_terminal_server_policy(CODE
LOWbackend/open_webui/routers/configs.py468async def put_terminal_server_lifecycle(CODE
LOWbackend/open_webui/routers/configs.py505async def refresh_terminal_server_terminals(CODE
LOWbackend/open_webui/routers/configs.py552async def verify_tool_servers_config(request: Request, form_data: ToolServerConnection, user=Depends(get_admin_user)):CODE
LOWbackend/open_webui/routers/configs.py705async def get_code_execution_config(request: Request, user=Depends(get_admin_user)):CODE
LOWbackend/open_webui/routers/configs.py710async def set_code_execution_config(CODE
LOWbackend/open_webui/routers/models.py60def add_chat_variables_schema(model_dict: dict) -> dict:CODE
LOWbackend/open_webui/routers/models.py70def _safe_static_redirect_path(url: str) -> str | None:CODE
LOWbackend/open_webui/routers/models.py126async def _verify_knowledge_file_access(CODE
LOWbackend/open_webui/routers/models.py1036async def update_model_access_by_id(CODE
LOWbackend/open_webui/routers/skills.py358async def update_skill_access_by_id(CODE
LOWbackend/open_webui/routers/users.py373def _build_cumulative_heatmap(heatmap: list[dict]) -> list[dict]:CODE
LOWbackend/open_webui/routers/users.py412async def get_default_user_permissions(request: Request, user=Depends(get_admin_user)):CODE
LOWbackend/open_webui/routers/users.py425async def update_default_user_permissions(request: Request, form_data: UserPermissions, user=Depends(get_admin_user)):CODE
LOWbackend/open_webui/routers/users.py439async def get_default_user_permissions_defaults(user=Depends(get_admin_user)):CODE
LOWbackend/open_webui/routers/users.py458async def get_user_settings_by_session_user(CODE
LOWbackend/open_webui/routers/users.py483async def update_user_settings_by_session_user(CODE
LOWbackend/open_webui/routers/users.py571async def get_user_status_by_session_user(CODE
LOWbackend/open_webui/routers/users.py590async def update_user_status_by_session_user(CODE
LOWbackend/open_webui/routers/users.py623async def get_user_info_by_session_user(user=Depends(get_verified_user)):CODE
LOWbackend/open_webui/routers/users.py642async def get_user_variables_by_session_user(user=Depends(get_verified_user)):CODE
LOWbackend/open_webui/routers/users.py652async def update_user_variables_by_session_user(CODE
LOWbackend/open_webui/routers/users.py680async def update_user_info_by_session_user( # PATCH-style mergeCODE
LOWbackend/open_webui/routers/users.py707async def get_user_usage_by_session_user(CODE
LOWbackend/open_webui/routers/users.py836async def get_user_oauth_sessions_by_id(CODE
544 more matches not shown…
Decorative Section Separators153 hits · 460 pts
SeverityFileLineSnippetContext
MEDIUMdocker-update-models.sh4# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-update-models.sh6# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-ollama.sh4# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-ollama.sh6# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-cleanup.sh4# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-cleanup.sh6# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-run.sh4# ---------------------------------------------------------------------------COMMENT
MEDIUMdocker-run.sh6# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡docker-compose-launcher.sh4# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡docker-compose-launcher.sh7# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡docker-compose-launcher.sh16# ── GPU detection ─────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh35# ── Argument helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh69# ── Defaults ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh82# ── Parse arguments ───────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh100# ── Drop mode ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh108# ── Build compose command ─────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh144# ── Confirmation ──────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose-launcher.sh164# ── Launch ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMbackend/start.sh4# ---------------------------------------------------------------------------COMMENT
MEDIUMbackend/start.sh8# ---------------------------------------------------------------------------COMMENT
MEDIUMbackend/start.sh19# ── Playwright browser installation (if configured) ──────────────────────────COMMENT
MEDIUMbackend/start.sh29# ── Secret key setup ─────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend/start.sh52# ── Ollama (bundled Docker image) ────────────────────────────────────────────COMMENT
MEDIUM⚡backend/start.sh59# ── CUDA library paths ──────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend/start.sh66# ── HuggingFace Space deployment ─────────────────────────────────────────────COMMENT
MEDIUMbackend/start.sh96# ── Launch uvicorn ───────────────────────────────────────────────────────────COMMENT
MEDIUM⚡backend/open_webui/tasks.py83### ------------------------------COMMENT
MEDIUM⚡backend/open_webui/tasks.py85### ------------------------------COMMENT
MEDIUM⚡backend/open_webui/routers/terminals.py252# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡backend/open_webui/routers/terminals.py254# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py289# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py291# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py365# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py367# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py513# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py515# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py628# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py630# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py3693# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py3695# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py4088# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py4090# =============================================================================COMMENT
MEDIUMbackend/open_webui/tools/builtin.py126# =============================================================================COMMENT
MEDIUMbackend/open_webui/tools/builtin.py128# =============================================================================COMMENT
MEDIUM⚡backend/open_webui/tools/builtin.py795# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py797# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py1122# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py1124# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py1507# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py1509# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py1675# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py1677# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py2041# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py2043# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py3477# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py3479# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py3548# =============================================================================STRING
MEDIUM⚡backend/open_webui/tools/builtin.py3550# =============================================================================STRING
MEDIUMbackend/open_webui/tools/builtin.py1758# =============================================================================STRING
MEDIUMbackend/open_webui/tools/builtin.py1760# =============================================================================STRING
93 more matches not shown…
Empty Error Handlers86 hits · 430 pts
SeverityFileLineSnippetContext
HIGHbackend/open_webui/functions.py180except Exception:CODE
HIGHbackend/open_webui/config.py108except Exception as e:CODE
HIGHbackend/open_webui/config.py365except Exception:CODE
HIGHbackend/open_webui/config.py106except Exception as e:CODE
HIGHbackend/open_webui/env.py69except Exception:CODE
HIGHbackend/open_webui/main.py1771except Exception:CODE
HIGHbackend/open_webui/main.py1683except Exception:CODE
HIGHbackend/open_webui/main.py1712except Exception:CODE
HIGHbackend/open_webui/main.py1769except asyncio.CancelledError:CODE
HIGHbackend/open_webui/routers/terminals.py470except Exception:CODE
HIGHbackend/open_webui/routers/terminals.py412except Exception:CODE
HIGHbackend/open_webui/routers/terminals.py428except Exception:CODE
HIGHbackend/open_webui/routers/configs.py258except Exception:CODE
HIGHbackend/open_webui/routers/configs.py385except Exception:CODE
HIGHbackend/open_webui/routers/configs.py395except Exception:CODE
HIGHbackend/open_webui/routers/configs.py659except Exception as e:CODE
HIGHbackend/open_webui/routers/configs.py615except Exception as e:CODE
HIGHbackend/open_webui/routers/models.py857except Exception:CODE
HIGHbackend/open_webui/routers/users.py886except Exception as e:CODE
HIGHbackend/open_webui/routers/auths.py988except Exception:CODE
HIGHbackend/open_webui/routers/auths.py744except Exception as e:CODE
HIGHbackend/open_webui/routers/openai.py912except Exception:CODE
HIGHbackend/open_webui/routers/retrieval.py1961except Exception:CODE
HIGHbackend/open_webui/routers/retrieval.py2290except ValueError:CODE
HIGHbackend/open_webui/routers/chats.py402except Exception as e:CODE
HIGHbackend/open_webui/routers/audio.py1183except Exception:CODE
HIGHbackend/open_webui/routers/channels.py1867except Exception as e:CODE
HIGHbackend/open_webui/routers/knowledge.py2009except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py298except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py352except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py402except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py437except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py484except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py524except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py567except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py114except Exception:CODE
HIGHbackend/open_webui/routers/pipelines.py180except Exception:CODE
HIGHbackend/open_webui/tools/builtin.py1467except Exception:CODE
HIGHbackend/open_webui/tools/builtin.py4106except Exception:CODE
HIGHbackend/open_webui/tools/builtin.py188except Exception:CODE
HIGHbackend/open_webui/tools/builtin.py251except Exception:CODE
HIGHbackend/open_webui/tools/builtin.py280except Exception:CODE
HIGHbackend/open_webui/utils/auth.py307except (ValueError, TypeError):CODE
HIGHbackend/open_webui/utils/misc.py942except (TypeError, ValueError, UnicodeEncodeError):CODE
HIGHbackend/open_webui/utils/task.py56except Exception as e:CODE
HIGHbackend/open_webui/utils/task.py69except Exception:CODE
HIGHbackend/open_webui/utils/payload.py110except JSONCodec.JSONDecodeError:CODE
HIGHbackend/open_webui/utils/payload.py175except JSONCodec.JSONDecodeError:CODE
HIGHbackend/open_webui/utils/payload.py209except JSONCodec.JSONDecodeError:CODE
HIGHbackend/open_webui/utils/anthropic.py76except Exception:CODE
HIGHbackend/open_webui/utils/anthropic.py895except (JSONCodec.JSONDecodeError, ValueError):CODE
HIGHbackend/open_webui/utils/filter.py95except Exception:CODE
HIGHbackend/open_webui/utils/middleware.py431except (JSONCodec.JSONDecodeError, TypeError):CODE
HIGHbackend/open_webui/utils/middleware.py2535except Exception:CODE
HIGHbackend/open_webui/utils/middleware.py2088except Exception:CODE
HIGHbackend/open_webui/utils/middleware.py3176except Exception:CODE
HIGHbackend/open_webui/utils/middleware.py4776except Exception as e:CODE
HIGHbackend/open_webui/utils/middleware.py3936except Exception as e:CODE
HIGHbackend/open_webui/utils/middleware.py6635except (asyncio.CancelledError, Exception):CODE
HIGHbackend/open_webui/utils/middleware.py4035except Exception as e:CODE
26 more matches not shown…
Unused Imports319 hits · 262 pts
SeverityFileLineSnippetContext
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py7CODE
LOWbackend/open_webui/functions.py18CODE
LOWbackend/open_webui/functions.py21CODE
LOWbackend/open_webui/functions.py32CODE
LOWbackend/open_webui/functions.py32CODE
LOWbackend/open_webui/functions.py32CODE
LOWbackend/open_webui/functions.py43CODE
LOWbackend/open_webui/config.py1CODE
LOWbackend/open_webui/config.py3CODE
LOWbackend/open_webui/config.py9CODE
LOWbackend/open_webui/config.py11CODE
LOWbackend/open_webui/config.py11CODE
LOWbackend/open_webui/config.py14CODE
LOWbackend/open_webui/config.py19CODE
LOWbackend/open_webui/config.py19CODE
LOWbackend/open_webui/config.py19CODE
LOWbackend/open_webui/config.py19CODE
LOWbackend/open_webui/config.py19CODE
LOWbackend/open_webui/events.py1CODE
LOWbackend/open_webui/constants.py1CODE
LOWbackend/open_webui/__init__.py76CODE
LOWbackend/open_webui/main.py1CODE
LOWbackend/open_webui/routers/functions.py1CODE
LOWbackend/open_webui/routers/functions.py4CODE
LOWbackend/open_webui/routers/functions.py6CODE
LOWbackend/open_webui/routers/functions.py7CODE
LOWbackend/open_webui/routers/files.py30CODE
LOWbackend/open_webui/routers/files.py39CODE
LOWbackend/open_webui/routers/tasks.py2CODE
LOWbackend/open_webui/routers/tasks.py5CODE
LOWbackend/open_webui/routers/tasks.py6CODE
LOWbackend/open_webui/routers/tasks.py7CODE
LOWbackend/open_webui/routers/configs.py1CODE
LOWbackend/open_webui/routers/configs.py4CODE
LOWbackend/open_webui/routers/configs.py13CODE
LOWbackend/open_webui/routers/configs.py17CODE
LOWbackend/open_webui/routers/models.py1CODE
LOWbackend/open_webui/routers/models.py8CODE
LOWbackend/open_webui/routers/models.py34CODE
LOWbackend/open_webui/routers/skills.py23CODE
LOWbackend/open_webui/routers/users.py1CODE
LOWbackend/open_webui/routers/users.py23CODE
LOWbackend/open_webui/routers/tools.py1CODE
LOWbackend/open_webui/routers/tools.py6CODE
LOWbackend/open_webui/routers/tools.py19CODE
LOWbackend/open_webui/routers/groups.py2CODE
LOWbackend/open_webui/routers/groups.py3CODE
LOWbackend/open_webui/routers/groups.py7CODE
LOWbackend/open_webui/routers/evaluations.py13CODE
LOWbackend/open_webui/routers/evaluations.py23CODE
LOWbackend/open_webui/routers/evaluations.py23CODE
LOWbackend/open_webui/routers/notes.py5CODE
LOWbackend/open_webui/routers/notes.py6CODE
LOWbackend/open_webui/routers/notes.py6CODE
259 more matches not shown…
Deep Nesting315 hits · 220 pts
SeverityFileLineSnippetContext
LOWcontribution_stats.py42CODE
LOWbackend/open_webui/functions.py71CODE
LOWbackend/open_webui/tasks.py28CODE
LOWbackend/open_webui/main.py621CODE
LOWbackend/open_webui/main.py957CODE
LOWbackend/open_webui/main.py1110CODE
LOWbackend/open_webui/main.py2161CODE
LOWbackend/open_webui/main.py2677CODE
LOWbackend/open_webui/main.py1647CODE
LOWbackend/open_webui/routers/functions.py164CODE
LOWbackend/open_webui/routers/files.py128CODE
LOWbackend/open_webui/routers/files.py625CODE
LOWbackend/open_webui/routers/files.py719CODE
LOWbackend/open_webui/routers/files.py796CODE
LOWbackend/open_webui/routers/files.py1014CODE
LOWbackend/open_webui/routers/files.py137CODE
LOWbackend/open_webui/routers/files.py646CODE
LOWbackend/open_webui/routers/terminals.py110CODE
LOWbackend/open_webui/routers/terminals.py323CODE
LOWbackend/open_webui/routers/terminals.py401CODE
LOWbackend/open_webui/routers/terminals.py415CODE
LOWbackend/open_webui/routers/configs.py241CODE
LOWbackend/open_webui/routers/configs.py552CODE
LOWbackend/open_webui/routers/models.py382CODE
LOWbackend/open_webui/routers/models.py442CODE
LOWbackend/open_webui/routers/models.py776CODE
LOWbackend/open_webui/routers/users.py855CODE
LOWbackend/open_webui/routers/users.py916CODE
LOWbackend/open_webui/routers/auths.py426CODE
LOWbackend/open_webui/routers/auths.py476CODE
LOWbackend/open_webui/routers/auths.py718CODE
LOWbackend/open_webui/routers/auths.py956CODE
LOWbackend/open_webui/routers/auths.py1244CODE
LOWbackend/open_webui/routers/calendar.py144CODE
LOWbackend/open_webui/routers/openai.py155CODE
LOWbackend/open_webui/routers/openai.py601CODE
LOWbackend/open_webui/routers/openai.py676CODE
LOWbackend/open_webui/routers/openai.py796CODE
LOWbackend/open_webui/routers/openai.py866CODE
LOWbackend/open_webui/routers/openai.py1067CODE
LOWbackend/open_webui/routers/openai.py1276CODE
LOWbackend/open_webui/routers/openai.py1436CODE
LOWbackend/open_webui/routers/openai.py1487CODE
LOWbackend/open_webui/routers/openai.py1757CODE
LOWbackend/open_webui/routers/openai.py1884CODE
LOWbackend/open_webui/routers/openai.py1995CODE
LOWbackend/open_webui/routers/openai.py816CODE
LOWbackend/open_webui/routers/scim.py48CODE
LOWbackend/open_webui/routers/scim.py660CODE
LOWbackend/open_webui/routers/scim.py740CODE
LOWbackend/open_webui/routers/scim.py1079CODE
LOWbackend/open_webui/routers/retrieval.py172CODE
LOWbackend/open_webui/routers/retrieval.py1705CODE
LOWbackend/open_webui/routers/retrieval.py1926CODE
LOWbackend/open_webui/routers/retrieval.py2511CODE
LOWbackend/open_webui/routers/retrieval.py2883CODE
LOWbackend/open_webui/routers/retrieval.py3288CODE
LOWbackend/open_webui/routers/images.py202CODE
LOWbackend/open_webui/routers/images.py363CODE
LOWbackend/open_webui/routers/images.py596CODE
255 more matches not shown…
Redundant / Tautological Comments73 hits · 107 pts
SeverityFileLineSnippetContext
LOWbackend/open_webui/functions.py86 # Check if function is a manifoldCOMMENT
LOWbackend/open_webui/functions.py229 # Check if tool_ids is NoneCOMMENT
LOWbackend/open_webui/config.py2117 # Check if the scheme is either http or https, or a custom schemeSTRING
LOWbackend/open_webui/env.py234 # Check if the data directory exists in the package directoryCOMMENT
LOWbackend/open_webui/env.py263# Check if the file existsCOMMENT
LOWbackend/open_webui/main.py1149 # Check if user has access to the modelSTRING
LOWbackend/open_webui/routers/files.py815 # Check if the file already exists in the cacheCOMMENT
LOWbackend/open_webui/routers/files.py882 # Check if the file already exists in the cacheCOMMENT
LOWbackend/open_webui/routers/files.py931 # Check if the file already exists in the cacheCOMMENT
LOWbackend/open_webui/routers/auths.py1291 # Check if the input string matches the patternCOMMENT
LOWbackend/open_webui/routers/auths.py1652 # Check if provider is configuredCOMMENT
LOWbackend/open_webui/routers/openai.py621 # Check if the file already exists in the cacheCOMMENT
LOWbackend/open_webui/routers/openai.py1539 # Check if model is already in app state cache to avoid expensive get_all_models() callCOMMENT
LOWbackend/open_webui/routers/openai.py1568 # Check if model is a reasoning model that needs special handlingCOMMENT
LOWbackend/open_webui/routers/openai.py1670 # Check if response is SSECOMMENT
LOWbackend/open_webui/routers/openai.py1774 # Check if model is already in app state cache to avoid expensive get_all_models() callCOMMENT
LOWbackend/open_webui/routers/openai.py1949 # Check if response is SSECOMMENT
LOWbackend/open_webui/routers/openai.py2071 # Check if response is SSECOMMENT
LOWbackend/open_webui/routers/scim.py259 # Check if SCIM is enabledCOMMENT
LOWbackend/open_webui/routers/retrieval.py1734 # Check if entries with the same hash (metadata.hash) already existCOMMENT
LOWbackend/open_webui/routers/retrieval.py1744 # Check if the existing document belongs to the same fileCOMMENT
LOWbackend/open_webui/routers/retrieval.py3291 # Check if the directory existsCOMMENT
LOWbackend/open_webui/routers/chats.py617 # Check if the user has permission to share/export chatsCOMMENT
LOWbackend/open_webui/routers/chats.py666 # Check if the user has permission to share/export chatsCOMMENT
LOWbackend/open_webui/routers/channels.py1847 # Check if it's url or base64COMMENT
LOWbackend/open_webui/routers/folders.py165 # Check if creating a subfolder in a shared folderCOMMENT
LOWbackend/open_webui/routers/folders.py351 # Check if folder with same name existsCOMMENT
LOWbackend/open_webui/routers/pipelines.py233 # Check if the uploaded file is a python fileCOMMENT
LOWbackend/open_webui/tools/builtin.py1926 # Check if user has access to the channelSTRING
LOWbackend/open_webui/utils/files.py228 # Check if the file already exists in the cacheCOMMENT
LOWbackend/open_webui/utils/task.py19 # Check if the user has a custom task model and use that modelCOMMENT
LOWbackend/open_webui/utils/tools.py1493 # Check if URL ends with .yaml or .yml to determine formatCOMMENT
LOW⚡backend/open_webui/utils/payload.py328 # Iterate through the list of content itemsCOMMENT
LOW⚡backend/open_webui/utils/payload.py330 # Check if it's a text typeCOMMENT
LOW⚡backend/open_webui/utils/payload.py334 # Check if it's an image URL typeCOMMENT
LOWbackend/open_webui/utils/payload.py296 # Check if the content is a string (just a simple message)COMMENT
LOWbackend/open_webui/utils/chat.py198 # Check if user has access to the modelCOMMENT
LOW⚡backend/open_webui/utils/middleware.py1624 # Check if generated queries are emptyCOMMENT
LOW⚡backend/open_webui/utils/middleware.py1628 # Check if queries are not foundCOMMENT
LOW⚡backend/open_webui/utils/middleware.py3206 # Check if file context extraction is enabled for this model (default True)COMMENT
LOW⚡backend/open_webui/utils/middleware.py5840 # Check if citations are enabled for this modelCOMMENT
LOWbackend/open_webui/utils/middleware.py2057 # Check if all files are in full context modeCOMMENT
LOWbackend/open_webui/utils/middleware.py2574 # Check if the request has chat_id and is inside of a folderCOMMENT
LOWbackend/open_webui/utils/middleware.py5292 # Check if the tool call already existsCOMMENT
LOWbackend/open_webui/utils/middleware.py5581 # Check if we're inside a tag-based blockCOMMENT
LOWbackend/open_webui/utils/oauth.py2010 # Check if the user existsCOMMENT
LOWbackend/open_webui/utils/oauth.py2015 # Check if the user exists by emailCOMMENT
LOWbackend/open_webui/utils/oauth.py2096 # Check if an existing user with the same email already existsCOMMENT
LOWbackend/open_webui/utils/access_control/files.py45 # Check if the file is associated with any knowledge bases the user has access to.COMMENT
LOWbackend/open_webui/utils/access_control/files.py66 # Check if the file is associated with any channels the user has access toCOMMENT
LOWbackend/open_webui/utils/access_control/files.py71 # Check if the file is associated with any chats the user has access toCOMMENT
LOWbackend/open_webui/utils/access_control/files.py85 # Check if the file is directly attached to a shared workspace model (per the ownershipCOMMENT
LOWbackend/open_webui/utils/access_control/__init__.py256 # Check if user can share publiclyCOMMENT
LOW⚡backend/open_webui/models/functions.py364 # Check if user has "functions" and "valves" settingsCOMMENT
LOW⚡backend/open_webui/models/functions.py382 # Check if user has "functions" and "valves" settingsCOMMENT
LOW⚡backend/open_webui/models/tools.py277 # Check if user has "tools" and "valves" settingsCOMMENT
LOW⚡backend/open_webui/models/tools.py295 # Check if user has "tools" and "valves" settingsCOMMENT
LOWbackend/open_webui/models/notes.py379 # Check if already pinnedCOMMENT
LOWbackend/open_webui/models/prompts.py433 # Check if content changed to decide on history creationCOMMENT
LOWbackend/open_webui/models/prompts.py499 # Check if content changed to decide on history creationCOMMENT
13 more matches not shown…
Modern AI Meta-Vocabulary26 hits · 80 pts
SeverityFileLineSnippetContext
MEDIUMbackend/open_webui/config.py524# this uses the model defined in the Dockerfile ENV variable. If you dont use docker or docker based deployments such asCOMMENT
MEDIUMbackend/open_webui/config.py838# Information Retrieval (RAG)COMMENT
MEDIUMbackend/open_webui/config.py867# RAG Content ExtractionCOMMENT
MEDIUMbackend/open_webui/routers/files.py755 # collection and RAG returns both stale and current data (#20558).COMMENT
MEDIUMbackend/open_webui/routers/openai.py1367 # separately via metadata.files/RAG and must not be converted here.COMMENT
MEDIUMbackend/open_webui/routers/retrieval.py144# not into hallucination, but deliver us from noise.COMMENT
MEDIUMbackend/open_webui/routers/retrieval.py524 # unloads current internal embedding model and clears VRAM cacheCOMMENT
MEDIUMbackend/open_webui/routers/retrieval.py635 # RAG settingsCOMMENT
MEDIUMbackend/open_webui/routers/retrieval.py874 # RAG settingsCOMMENT
MEDIUMbackend/open_webui/routers/retrieval.py964 # RAG settingsCOMMENT
MEDIUMbackend/open_webui/routers/retrieval.py1402 # RAG settingsCOMMENT
MEDIUMbackend/open_webui/routers/memories.py359 # same RELEVANCE_THRESHOLD used by RAG ensures only genuinely matchingCOMMENT
MEDIUMbackend/open_webui/routers/channels.py1126 # tools, filters, RAG — everything. The pipeline runs asCOMMENT
MEDIUMbackend/open_webui/utils/headers.py120 # UA from the live request; fall back to metadata for detached RAG/tool calls.COMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py3216 # Save the pre-RAG message state so the native tool call loop canCOMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py3218 # than a snapshot that already has the RAG template baked in.COMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py5845 # Use the pre-RAG system content captured before theCOMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py5847 # This ensures restore truly undoes the RAG template.COMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py6169 # Restoring to pre-RAG original prevents duplicatingCOMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py6170 # the RAG template across file and tool sources.COMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py6173 # Restore pre-RAG message state before re-applyingCOMMENT
MEDIUM⚡backend/open_webui/utils/middleware.py6174 # to prevent RAG template duplication.COMMENT
MEDIUMbackend/open_webui/utils/middleware.py2600 # Native FC: skip RAG injection, builtin toolsCOMMENT
MEDIUMbackend/open_webui/utils/middleware.py2707 # Skip forced RAG web search when native FC is enabled - model can use web_search toolCOMMENT
MEDIUMbackend/open_webui/retrieval/utils.py1131 # Deferred so a missing local model degrades RAG instead of crashing boot.COMMENT
MEDIUM…c/lib/components/admin/Functions/FunctionEditor.svelte295 # This is where you can add your custom pipelines like RAG.STRING
Cross-File Repetition11 hits · 55 pts
SeverityFileLineSnippetContext
HIGH…ckend/open_webui/retrieval/vector/dbs/elasticsearch.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGH…open_webui/retrieval/vector/dbs/qdrant_multitenancy.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/milvus.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/pinecone.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/opensearch.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/qdrant.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/s3vector.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/opengauss.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGHbackend/open_webui/retrieval/vector/dbs/weaviate.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGH…open_webui/retrieval/vector/dbs/milvus_multitenancy.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
HIGH…kend/open_webui/retrieval/vector/dbs/mariadb_vector.py0note: this vector database integration is community-supported and maintained on a best-effort basis.STRING
Self-Referential Comments23 hits · 52 pts
SeverityFileLineSnippetContext
MEDIUMbackend/open_webui/tasks.py162 task = asyncio.create_task(coroutine) # Create the taskCODE
MEDIUMbackend/open_webui/main.py411 # Creating a mock request object to pass to get_all_modelsSTRING
MEDIUMbackend/open_webui/routers/files.py944 # Create a generator that encodes the file contentCOMMENT
MEDIUMbackend/open_webui/routers/retrieval.py3011 # Create a single collection for all documentsCOMMENT
MEDIUMbackend/open_webui/routers/chats.py1973 # Create a new shareCOMMENT
MEDIUMbackend/open_webui/internal/db.py297 # Create a custom creator function that uses sqlcipher3COMMENT
MEDIUMbackend/open_webui/utils/misc.py838 # Create a SHA256 hash of the final stringCOMMENT
MEDIUMbackend/open_webui/utils/misc.py860 # Create a new SHA-256 hash objectCOMMENT
MEDIUMbackend/open_webui/utils/chat.py99 # Define a generator to stream responsesCOMMENT
MEDIUMbackend/open_webui/utils/chat.py120 # Define a background task to run the event generatorCOMMENT
MEDIUMbackend/open_webui/utils/plugin.py231 # Create a temporary file and use it to define `__file__` soCOMMENT
MEDIUMbackend/open_webui/utils/plugin.py281 # Create a temporary file and use it to define `__file__` soCOMMENT
MEDIUMbackend/open_webui/utils/middleware.py4468 task_id = str(uuid4()) # Create a unique task ID.CODE
MEDIUMbackend/open_webui/models/functions.py203 # Create a dict for O(1) lookupCOMMENT
MEDIUMbackend/open_webui/retrieval/utils.py629 # Create the output dictionaryCOMMENT
MEDIUMbackend/open_webui/retrieval/vector/dbs/pinecone.py420 # Create a zero vector for the dimension as Pinecone requires a vectorCOMMENT
MEDIUMbackend/open_webui/retrieval/vector/dbs/pgvector.py149 # Create the tables if they do not existSTRING
MEDIUMbackend/open_webui/retrieval/vector/dbs/pgvector.py465 # Create the values for query vectorsSTRING
MEDIUMbackend/open_webui/retrieval/vector/dbs/oracle23ai.py111 # Create the appropriate connection pool based on DB typeCOMMENT
MEDIUM…c/lib/components/admin/Functions/FunctionEditor.svelte92 # This function is the pre-processor for the API where various checks on the input can be performed.STRING
MEDIUM…c/lib/components/admin/Functions/FunctionEditor.svelte119 # This function is the post-processor for the API, which can be used to modify the responseSTRING
MEDIUM…c/lib/components/admin/Functions/FunctionEditor.svelte203 # This function is the pre-processor for the API where various checks on the input can be performed.STRING
MEDIUM…c/lib/components/admin/Functions/FunctionEditor.svelte228 # This function is the post-processor for the API, which can be used to modify the responseSTRING
Verbosity Indicators22 hits · 41 pts
SeverityFileLineSnippetContext
LOW⚡backend/open_webui/retrieval/loaders/mineru.py187 # Step 1: Request presigned upload URLCOMMENT
LOW⚡backend/open_webui/retrieval/loaders/mineru.py190 # Step 2: Upload file to presigned URLCOMMENT
LOW⚡backend/open_webui/retrieval/loaders/mineru.py193 # Step 3: Poll for resultsCOMMENT
LOW⚡backend/open_webui/retrieval/loaders/mineru.py196 # Step 4: Download and extract markdown from ZIPCOMMENT
LOW⚡src/lib/apis/index.ts817 // Step 1: Safely extract the response stringCOMMENT
LOW⚡src/lib/apis/index.ts820 // Step 2: Attempt to fix common JSON format issues like single quotesCOMMENT
LOW⚡src/lib/apis/index.ts823 // Step 3: Find the relevant JSON block within the responseCOMMENT
LOW⚡src/lib/apis/index.ts827 // Step 4: Check if we found a valid JSON block (with both `{` and `}`)COMMENT
LOW⚡src/lib/apis/index.ts831 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts834 // Step 6: If there's a "tags" key, return the tags array; otherwise, return an empty arrayCOMMENT
LOW⚡src/lib/apis/index.ts889 // Step 1: Safely extract the response stringCOMMENT
LOW⚡src/lib/apis/index.ts892 // Step 2: Attempt to fix common JSON format issues like single quotesCOMMENT
LOW⚡src/lib/apis/index.ts895 // Step 3: Find the relevant JSON block within the responseCOMMENT
LOW⚡src/lib/apis/index.ts899 // Step 4: Check if we found a valid JSON block (with both `{` and `}`)COMMENT
LOW⚡src/lib/apis/index.ts903 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts906 // Step 6: If there's a "tags" key, return the tags array; otherwise, return an empty arrayCOMMENT
LOW⚡src/lib/apis/index.ts1012 // Step 1: Safely extract the response stringCOMMENT
LOW⚡src/lib/apis/index.ts1022 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts1025 // Step 6: If there's a "queries" key, return the queries array; otherwise, return an empty arrayCOMMENT
LOW⚡src/lib/apis/index.ts1095 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts1098 // Step 6: If there's a "queries" key, return the queries array; otherwise, return an empty arrayCOMMENT
LOWsrc/lib/components/notes/NoteEditor.svelte405 // Step 1: Safely extract the response stringCOMMENT
Structural Annotation Overuse22 hits · 41 pts
SeverityFileLineSnippetContext
LOW⚡backend/open_webui/retrieval/loaders/mineru.py187 # Step 1: Request presigned upload URLCOMMENT
LOW⚡backend/open_webui/retrieval/loaders/mineru.py190 # Step 2: Upload file to presigned URLCOMMENT
LOW⚡backend/open_webui/retrieval/loaders/mineru.py193 # Step 3: Poll for resultsCOMMENT
LOW⚡backend/open_webui/retrieval/loaders/mineru.py196 # Step 4: Download and extract markdown from ZIPCOMMENT
LOW⚡src/lib/apis/index.ts817 // Step 1: Safely extract the response stringCOMMENT
LOW⚡src/lib/apis/index.ts820 // Step 2: Attempt to fix common JSON format issues like single quotesCOMMENT
LOW⚡src/lib/apis/index.ts823 // Step 3: Find the relevant JSON block within the responseCOMMENT
LOW⚡src/lib/apis/index.ts827 // Step 4: Check if we found a valid JSON block (with both `{` and `}`)COMMENT
LOW⚡src/lib/apis/index.ts831 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts834 // Step 6: If there's a "tags" key, return the tags array; otherwise, return an empty arrayCOMMENT
LOW⚡src/lib/apis/index.ts889 // Step 1: Safely extract the response stringCOMMENT
LOW⚡src/lib/apis/index.ts892 // Step 2: Attempt to fix common JSON format issues like single quotesCOMMENT
LOW⚡src/lib/apis/index.ts895 // Step 3: Find the relevant JSON block within the responseCOMMENT
LOW⚡src/lib/apis/index.ts899 // Step 4: Check if we found a valid JSON block (with both `{` and `}`)COMMENT
LOW⚡src/lib/apis/index.ts903 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts906 // Step 6: If there's a "tags" key, return the tags array; otherwise, return an empty arrayCOMMENT
LOW⚡src/lib/apis/index.ts1012 // Step 1: Safely extract the response stringCOMMENT
LOW⚡src/lib/apis/index.ts1022 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts1025 // Step 6: If there's a "queries" key, return the queries array; otherwise, return an empty arrayCOMMENT
LOW⚡src/lib/apis/index.ts1095 // Step 5: Parse the JSON blockCOMMENT
LOW⚡src/lib/apis/index.ts1098 // Step 6: If there's a "queries" key, return the queries array; otherwise, return an empty arrayCOMMENT
LOWsrc/lib/components/notes/NoteEditor.svelte405 // Step 1: Safely extract the response stringCOMMENT
Over-Commented Block22 hits · 20 pts
SeverityFileLineSnippetContext
LOWbackend/start.sh1#!/usr/bin/env bashCOMMENT
LOWbackend/open_webui/env.py421except ValueError:COMMENT
LOWbackend/open_webui/env.py941COMMENT
LOWbackend/open_webui/alembic.ini1# A generic, single database configuration.COMMENT
LOWbackend/open_webui/alembic.ini21# timezone =COMMENT
LOWbackend/open_webui/alembic.ini41COMMENT
LOWbackend/open_webui/alembic.ini61# sqlalchemy.url = REPLACE_WITH_DATABASE_URLCOMMENT
LOWbackend/open_webui/main.py581COMMENT
LOWbackend/open_webui/main.py601########################################COMMENT
LOWbackend/open_webui/main.py781########################################COMMENT
LOWbackend/open_webui/main.py1721 detail=error_detail,COMMENT
LOWbackend/open_webui/routers/evaluations.py41 return {field: values[storage_key] for field, storage_key in key_map.items() if storage_key in values}COMMENT
LOWbackend/open_webui/routers/openai.py61COMMENT
LOWbackend/open_webui/internal/db.py41COMMENT
LOWbackend/open_webui/internal/db.py441# ASYNC ENGINE (used for ALL runtime database operations)COMMENT
LOWbackend/open_webui/retrieval/utils.py261 # YoutubeLoader, which uses youtube-transcript-api and never needs theCOMMENT
LOWscripts/generate-sbom.sh1#!/usr/bin/env bashCOMMENT
LOWsrc/lib/apis/ollama/index.ts521// },COMMENT
LOWsrc/lib/components/chat/MessageInput.svelte701 let isComposing = false;COMMENT
LOW…/lib/components/common/RichTextInput/AutoCompletion.js141 const { $head } = selection;COMMENT
LOW…/lib/components/common/RichTextInput/AutoCompletion.js241 },COMMENT
LOWsrc/routes/+layout.js1// if you want to generate a static html fileCOMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALbackend/open_webui/storage/provider.py33 from azure.core.exceptions import ResourceNotFoundErrorCODE
CRITICALbackend/open_webui/retrieval/vector/dbs/weaviate.py129 vector_config=weaviate.classes.config.Configure.Vectors.self_provided(),CODE
AI Structural Patterns22 hits · 15 pts
SeverityFileLineSnippetContext
LOWbackend/open_webui/routers/models.py167CODE
LOWbackend/open_webui/routers/evaluations.py422CODE
LOWbackend/open_webui/routers/notes.py149CODE
LOWbackend/open_webui/routers/prompts.py72CODE
LOWbackend/open_webui/routers/analytics.py126CODE
LOWbackend/open_webui/routers/analytics.py286CODE
LOWbackend/open_webui/routers/knowledge.py222CODE
LOWbackend/open_webui/routers/knowledge.py1352CODE
LOWbackend/open_webui/routers/ollama.py97CODE
LOWbackend/open_webui/tools/builtin.py1680CODE
LOWbackend/open_webui/tools/builtin.py2750CODE
LOWbackend/open_webui/tools/builtin.py4240CODE
LOWbackend/open_webui/tools/builtin.py4367CODE
LOWbackend/open_webui/utils/response.py227CODE
LOWbackend/open_webui/utils/oauth.py1327CODE
LOWbackend/open_webui/models/chats.py1543CODE
LOWbackend/open_webui/retrieval/utils.py636CODE
LOWbackend/open_webui/retrieval/utils.py818CODE
LOWbackend/open_webui/retrieval/web/utils.py399CODE
LOWbackend/open_webui/retrieval/web/utils.py668CODE
LOWbackend/open_webui/retrieval/web/utils.py935CODE
LOWbackend/open_webui/retrieval/loaders/datalab_marker.py16CODE
AI Slop Vocabulary5 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMpackage-lock.json12718 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",CODE
MEDIUMbackend/open_webui/utils/oauth.py954 # TODO: Replace this logic with a more robust OAuth client registration validationCOMMENT
LOWbackend/open_webui/utils/mcp/client.py176 # We simply call aclose() directly. If the task is cancelled, theCOMMENT
MEDIUMsrc/lib/components/common/Textarea.svelte40 // and it makes the fix 100% robust without relying on hardcoded CSS classes.COMMENT
MEDIUMsrc/lib/components/common/DropdownSub.svelte84 // Vertical positioning with robust bounds clamping (shift method)COMMENT
Modern Structural Boilerplate10 hits · 10 pts
SeverityFileLineSnippetContext
LOWbackend/open_webui/main.py1097async def _set_direct_model(request: Request, model_item: dict, user) -> None:STRING
LOW⚡backend/open_webui/routers/knowledge.py633async def _set_external_connections(connections: list[dict]) -> None:CODE
LOWbackend/open_webui/utils/code_interpreter.py12logger = logging.getLogger(__name__)CODE
LOWbackend/open_webui/utils/asgi_middleware.py126 def _set_token(self, request: Request) -> None:CODE
LOWbackend/open_webui/utils/automations.py202async def _set_terminal_cwd(app, server_id: str, user, cwd: str, chat_id: str) -> None:CODE
LOWbackend/open_webui/utils/timers.py422async def _set_timer_state(timer_id: str, status: str, **fields) -> None:CODE
LOW⚡backend/open_webui/utils/telemetry/metrics.py53logger = logging.getLogger(__name__)CODE
LOWbackend/open_webui/utils/telemetry/instrumentors.py31logger = logging.getLogger(__name__)CODE
LOWbackend/open_webui/models/users.py770 async def update_last_active_by_id(self, id: str, db: AsyncSession | None = None) -> None:CODE
LOWbackend/open_webui/models/chats.py865 async def update_chat_tags_by_id(self, id: str, tags: list[str], user) -> None:CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHbackend/open_webui/retrieval/vector/dbs/oracle23ai.py377 Handle Decimal objects for JSON serialization. Args: obj: Object to serialize RetSTRING
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/lib/workers/pyodide.worker.ts217 print(f"data:image/png;base64,{img_str}")CODE
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOWbackend/open_webui/utils/chat_variables.py109 'placeholder',CODE
LOWbackend/open_webui/models/auths.py23PLACEHOLDER_HASH = bcrypt.hashpw(b'placeholder', bcrypt.gensalt()).decode('utf-8')CODE
LOWbackend/open_webui/retrieval/loaders/main.py282 'image_export_mode': 'placeholder',CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/generate-sbom.sh13# Usage:COMMENT
LOWsrc/lib/components/common/RichTextInput.svelte796 // Usage exampleCOMMENT
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/lib/components/workspace/Tools/ToolkitEditor.svelte69 # Add your custom tools using pure Python code here, make sure to add type hints and descriptionsCOMMENT
MEDIUM…c/lib/components/admin/Functions/FunctionEditor.svelte295 # This is where you can add your custom pipelines like RAG.STRING