Repository Analysis

lfnovo/open-notebook

An Open Source implementation of Notebook LM with more flexibility and features

11.9 Low AI signal View on GitHub
11.9
Adjusted Score
11.9
Raw Score
100%
Time Factor
2026-05-29
Last Push
23,906
Stars
TypeScript
Language
98,089
Lines of Code
408
Files
771
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 14MEDIUM 113LOW 644

Pattern Findings

771 matches across 13 categories. Click a row to expand file-level details.

Decorative Section Separators98 hits · 384 pts
SeverityFileLineSnippet
MEDIUMopen_notebook/ai/key_provider.py23# =============================================================================
MEDIUMopen_notebook/ai/key_provider.py25# =============================================================================
MEDIUMopen_notebook/ai/model_discovery.py663# =============================================================================
MEDIUMopen_notebook/ai/model_discovery.py665# =============================================================================
MEDIUMopen_notebook/ai/model_discovery.py31# =============================================================================
MEDIUMopen_notebook/ai/model_discovery.py33# =============================================================================
MEDIUMopen_notebook/ai/model_discovery.py178# =============================================================================
MEDIUMopen_notebook/ai/model_discovery.py180# =============================================================================
MEDIUMtests/test_utils.py130# ============================================================================
MEDIUMtests/test_utils.py132# ============================================================================
MEDIUMtests/test_utils.py177# ============================================================================
MEDIUMtests/test_utils.py179# ============================================================================
MEDIUMtests/test_utils.py247# ============================================================================
MEDIUMtests/test_utils.py249# ============================================================================
MEDIUMtests/test_utils.py21# ============================================================================
MEDIUMtests/test_utils.py23# ============================================================================
MEDIUMtests/test_graphs.py25# ============================================================================
MEDIUMtests/test_graphs.py27# ============================================================================
MEDIUMtests/test_graphs.py72# ============================================================================
MEDIUMtests/test_graphs.py74# ============================================================================
MEDIUMtests/test_graphs.py100# ============================================================================
MEDIUMtests/test_graphs.py102# ============================================================================
MEDIUMtests/test_graphs.py157# ============================================================================
MEDIUMtests/test_graphs.py159# ============================================================================
MEDIUMtests/test_chunking.py44# ============================================================================
MEDIUMtests/test_chunking.py46# ============================================================================
MEDIUMtests/test_chunking.py98# ============================================================================
MEDIUMtests/test_chunking.py100# ============================================================================
MEDIUMtests/test_chunking.py188# ============================================================================
MEDIUMtests/test_chunking.py190# ============================================================================
MEDIUMtests/test_chunking.py230# ============================================================================
MEDIUMtests/test_chunking.py232# ============================================================================
MEDIUMtests/test_embedding.py25# ============================================================================
MEDIUMtests/test_embedding.py27# ============================================================================
MEDIUMtests/test_embedding.py110# ============================================================================
MEDIUMtests/test_embedding.py112# ============================================================================
MEDIUMtests/test_embedding.py157# ============================================================================
MEDIUMtests/test_embedding.py159# ============================================================================
MEDIUMtests/test_embedding.py327# ============================================================================
MEDIUMtests/test_embedding.py329# ============================================================================
MEDIUMtests/test_domain.py23# ============================================================================
MEDIUMtests/test_domain.py25# ============================================================================
MEDIUMtests/test_domain.py54# ============================================================================
MEDIUMtests/test_domain.py56# ============================================================================
MEDIUMtests/test_domain.py72# ============================================================================
MEDIUMtests/test_domain.py74# ============================================================================
MEDIUMtests/test_domain.py103# ============================================================================
MEDIUMtests/test_domain.py105# ============================================================================
MEDIUMtests/test_domain.py242# ============================================================================
MEDIUMtests/test_domain.py244# ============================================================================
MEDIUMtests/test_domain.py282# ============================================================================
MEDIUMtests/test_domain.py284# ============================================================================
MEDIUMtests/test_domain.py339# ============================================================================
MEDIUMtests/test_domain.py341# ============================================================================
MEDIUMtests/test_domain.py361# ============================================================================
MEDIUMtests/test_domain.py363# ============================================================================
MEDIUMtests/test_domain.py380# ============================================================================
MEDIUMtests/test_domain.py382# ============================================================================
MEDIUMexamples/docker-compose-speaches.yml75# ==========================================
MEDIUMexamples/docker-compose-speaches.yml77# ==========================================
38 more matches not shown…
Excessive Try-Catch Wrapping299 hits · 308 pts
SeverityFileLineSnippet
LOWopen_notebook/database/async_migrate.py47 except Exception as e:
LOWopen_notebook/database/async_migrate.py190 except Exception as e:
LOWopen_notebook/database/async_migrate.py205 except Exception:
LOWopen_notebook/database/async_migrate.py215 except Exception:
LOWopen_notebook/database/repository.py80 except Exception as e:
LOWopen_notebook/database/repository.py101 except Exception as e:
LOWopen_notebook/database/repository.py154 except Exception as e:
LOWopen_notebook/database/repository.py164 except Exception as e:
LOWopen_notebook/database/repository.py190 except Exception as e:
LOWopen_notebook/utils/chunking.py161 except Exception:
LOWopen_notebook/utils/encryption.py55 except Exception as e:
LOWopen_notebook/utils/encryption.py163 except Exception:
LOWopen_notebook/utils/encryption.py196 except Exception as e:
LOWopen_notebook/utils/embedding.py184 except Exception as e:
LOWopen_notebook/utils/context_builder.py138 except Exception as e:
LOWopen_notebook/utils/context_builder.py206 except Exception as e:
LOWopen_notebook/utils/context_builder.py250 except Exception as e:
LOWopen_notebook/utils/context_builder.py293 except Exception as e:
LOWopen_notebook/utils/graph_utils.py21 except Exception as e:
LOWopen_notebook/podcasts/models.py241 except Exception:
LOWopen_notebook/podcasts/models.py259 except Exception:
LOWopen_notebook/podcasts/migration.py132 except Exception as e:
LOWopen_notebook/podcasts/migration.py181 except Exception as e:
LOWopen_notebook/ai/models.py57 except Exception:
LOWopen_notebook/ai/models.py109 except Exception:
LOWopen_notebook/ai/connection_tester.py95 except Exception as e:
LOWopen_notebook/ai/connection_tester.py130 except Exception as e:
LOWopen_notebook/ai/connection_tester.py169 except Exception as e:
LOWopen_notebook/ai/connection_tester.py205 except Exception:
LOWopen_notebook/ai/connection_tester.py279 except Exception as e:
LOWopen_notebook/ai/connection_tester.py412 except Exception:
LOWopen_notebook/ai/connection_tester.py436 except Exception as e:
LOWopen_notebook/ai/key_provider.py80 except Exception as e:
LOWopen_notebook/ai/model_discovery.py657 except Exception as e:
LOWopen_notebook/ai/model_discovery.py747 except Exception as e:
LOWopen_notebook/ai/model_discovery.py211 except Exception as e:
LOWopen_notebook/ai/model_discovery.py272 except Exception as e:
LOWopen_notebook/ai/model_discovery.py306 except Exception as e:
LOWopen_notebook/ai/model_discovery.py340 except Exception as e:
LOWopen_notebook/ai/model_discovery.py379 except Exception as e:
LOWopen_notebook/ai/model_discovery.py413 except Exception as e:
LOWopen_notebook/ai/model_discovery.py447 except Exception as e:
LOWopen_notebook/ai/model_discovery.py482 except Exception as e:
LOWopen_notebook/ai/model_discovery.py559 except Exception as e:
LOWopen_notebook/ai/model_discovery.py593 except Exception as e:
LOWopen_notebook/ai/model_discovery.py615 except Exception as e:
LOWopen_notebook/ai/model_discovery.py769 except Exception as e:
LOWopen_notebook/graphs/transformation.py66 except Exception as e:
LOWopen_notebook/graphs/ask.py78 except Exception as e:
LOWopen_notebook/graphs/ask.py122 except Exception as e:
LOWopen_notebook/graphs/ask.py141 except Exception as e:
LOWopen_notebook/graphs/source_chat.py49 except Exception as e:
LOWopen_notebook/graphs/chat.py83 except Exception as e:
LOWopen_notebook/graphs/source.py74 except Exception as e:
LOWopen_notebook/graphs/CLAUDE.md34except Exception as e:
LOWopen_notebook/domain/provider_config.py268 except Exception:
MEDIUMopen_notebook/domain/notebook.py29def get_sources(self) -> List["Source"]:
MEDIUMopen_notebook/domain/notebook.py46def get_notes(self) -> List["Note"]:
MEDIUMopen_notebook/domain/notebook.py63def get_chat_sessions(self) -> List["ChatSession"]:
MEDIUMopen_notebook/domain/notebook.py242def get_source(self) -> "Source":
239 more matches not shown…
Hyper-Verbose Identifiers200 hits · 214 pts
SeverityFileLineSnippet
LOW…nsformations/components/TransformationEditorDialog.tsx36export function TransformationEditorDialog({ open, onOpenChange, transformation }: TransformationEditorDialogProps) {
LOW…src/components/settings/EmbeddingModelChangeDialog.tsx27export function EmbeddingModelChangeDialog({
LOWfrontend/src/lib/utils/source-references.tsx174export function convertReferencesToMarkdownLinks(text: string): string {
LOWfrontend/src/lib/utils/source-references.tsx266export function createReferenceLinkComponent(
LOWfrontend/src/lib/utils/source-references.tsx339export function convertReferencesToCompactMarkdown(text: string, referencesLabel: string = 'References'): string {
LOWfrontend/src/lib/utils/source-references.tsx431export function createCompactReferenceLinkComponent(
LOWfrontend/src/lib/utils/source-references.tsx482export function convertSourceReferencesLegacy(text: string): React.ReactNode {
LOWfrontend/src/lib/hooks/use-podcasts.ts233export function useDuplicateEpisodeProfile() {
LOWfrontend/src/lib/hooks/use-podcasts.ts364export function useDuplicateSpeakerProfile() {
LOWfrontend/src/lib/hooks/use-sources.ts354export function useRemoveSourceFromNotebook() {
LOWfrontend/src/lib/hooks/use-credentials.ts340export function useMigrateFromProviderConfig() {
LOWopen_notebook/utils/version_utils.py14async def get_version_from_github_async(repo_url: str, branch: str = "main") -> str:
LOWopen_notebook/utils/chunking.py143def detect_content_type_from_extension(
LOWopen_notebook/utils/chunking.py165def detect_content_type_from_heuristics(text: str) -> Tuple[ContentType, float]:
LOWopen_notebook/utils/chunking.py236def _calculate_markdown_score(text: str) -> float:
LOWopen_notebook/utils/chunking.py368def _apply_secondary_chunking(chunks: List[str]) -> List[str]:
LOWopen_notebook/utils/encryption.py62def _get_or_create_encryption_key() -> str:
LOWopen_notebook/utils/embedding.py24def _get_embedding_batch_size() -> int:
LOWopen_notebook/utils/graph_utils.py7async def get_session_message_count(graph, session_id: str) -> int:
LOWopen_notebook/podcasts/models.py106 async def resolve_transcript_config(self) -> Tuple[str, str, dict]:
LOWopen_notebook/ai/connection_tester.py134async def _test_openai_compatible_connection(base_url: str, api_key: Optional[str] = None) -> Tuple[bool, str]:
LOWopen_notebook/ai/key_provider.py111async def _provision_simple_provider(provider: str) -> bool:
LOWopen_notebook/ai/key_provider.py219async def _provision_openai_compatible() -> bool:
LOWopen_notebook/ai/provision.py10async def provision_langchain_model(
LOWopen_notebook/ai/model_discovery.py217async def discover_anthropic_models() -> List[DiscoveredModel]:
LOWopen_notebook/ai/model_discovery.py453async def discover_openrouter_models() -> List[DiscoveredModel]:
LOWopen_notebook/ai/model_discovery.py510async def discover_elevenlabs_models() -> List[DiscoveredModel]:
LOWopen_notebook/ai/model_discovery.py531async def discover_dashscope_models() -> List[DiscoveredModel]:
LOWopen_notebook/ai/model_discovery.py599async def discover_openai_compatible_models() -> List[DiscoveredModel]:
LOWopen_notebook/graphs/source_chat.py33def call_model_with_source_context(
LOWopen_notebook/graphs/source_chat.py54def _call_model_with_source_context_inner(
LOWopen_notebook/domain/notebook.py565 def content_must_not_be_empty(cls, v):
LOWtests/test_utils.py57 def test_remove_non_printable_preserves_newlines(self):
LOWtests/test_utils.py64 def test_parse_thinking_content_basic(self):
LOWtests/test_utils.py72 def test_parse_thinking_content_multiple_tags(self):
LOWtests/test_utils.py83 def test_parse_thinking_content_no_tags(self):
LOWtests/test_utils.py91 def test_parse_thinking_content_malformed_no_open_tag(self):
LOWtests/test_utils.py99 def test_parse_thinking_content_invalid_input(self):
LOWtests/test_utils.py111 def test_parse_thinking_content_large_content(self):
LOWtests/test_utils.py120 def test_clean_thinking_content(self):
LOWtests/test_utils.py138 def test_token_count_fallback(self):
LOWtests/test_utils.py185 def test_compare_versions_equal(self):
LOWtests/test_utils.py190 def test_compare_versions_less_than(self):
LOWtests/test_utils.py212 def test_compare_versions_prerelease(self):
LOWtests/test_utils.py220 def test_get_installed_version_success(self):
LOWtests/test_utils.py229 def test_get_installed_version_not_found(self):
LOWtests/test_utils.py236 def test_get_version_from_github_invalid_url(self):
LOWtests/test_utils.py255 def test_context_config_defaults(self):
LOWtests/test_utils.py40 def test_remove_non_ascii_pure_ascii(self):
LOWtests/test_utils.py46 def test_remove_non_printable(self):
LOWtests/test_utils.py154 def test_token_count_network_error_fallback(self):
LOWtests/test_utils.py201 def test_compare_versions_greater_than(self):
LOWtests/test_utils.py268 def test_context_builder_initialization(self):
LOWtests/test_graphs.py33 def test_get_current_timestamp_format(self):
LOWtests/test_graphs.py41 def test_get_current_timestamp_validity(self):
LOWtests/test_graphs.py65 def test_get_current_timestamp_is_tool(self):
LOWtests/test_graphs.py80 def test_pattern_chain_state_structure(self):
LOWtests/test_graphs.py91 def test_prompt_graph_compilation(self):
LOWtests/test_graphs.py108 def test_transformation_state_structure(self):
LOWtests/test_graphs.py131 async def test_run_transformation_assertion_no_content(self):
140 more matches not shown…
Docstring Block Structure10 hits · 50 pts
SeverityFileLineSnippet
HIGHopen_notebook/utils/version_utils.py60 Fetch and parse the version from pyproject.toml in a public GitHub repository. Args: repo_url (str): U
HIGHopen_notebook/utils/version_utils.py114 Get the version of an installed package. Args: package_name (str): Name of the installed package
HIGHopen_notebook/utils/encryption.py129 Encrypt a string value using Fernet symmetric encryption. Args: value: The plain text string to encryp
HIGHopen_notebook/utils/encryption.py168 Decrypt a Fernet-encrypted string value. Handles graceful fallback for legacy unencrypted data. Args:
HIGHopen_notebook/utils/embedding.py56 Combine multiple embeddings into a single embedding using mean pooling. Algorithm: 1. Normalize each embed
HIGHopen_notebook/utils/embedding.py114 Generate embeddings for multiple texts with automatic batching and retry. Texts are split into batches of EMBE
HIGHopen_notebook/utils/embedding.py215 Generate a single embedding for text, handling large content via chunking and mean pooling. For short text (<=
HIGHopen_notebook/domain/notebook.py460 Submit insight creation as an async command (fire-and-forget). Submits a create_insight command that h
HIGHdocs/7-DEVELOPMENT/code-standards.md79Perform vector search across embedded content. Args: query: Search query string limit: Maximum numb
HIGHdocs/7-DEVELOPMENT/code-standards.md131Create a new notebook with validation. Args: name: The notebook name (required, non-empty) descript
Unused Imports49 hits · 46 pts
SeverityFileLineSnippet
LOWopen_notebook/utils/embedding.py52
LOWopen_notebook/utils/context_builder.py8
LOWopen_notebook/utils/__init__.py12
LOWopen_notebook/utils/__init__.py12
LOWopen_notebook/utils/__init__.py12
LOWopen_notebook/utils/__init__.py12
LOWopen_notebook/utils/__init__.py12
LOWopen_notebook/utils/__init__.py12
LOWopen_notebook/utils/__init__.py20
LOWopen_notebook/utils/__init__.py20
LOWopen_notebook/utils/__init__.py20
LOWopen_notebook/utils/__init__.py25
LOWopen_notebook/utils/__init__.py25
LOWopen_notebook/utils/__init__.py29
LOWopen_notebook/utils/__init__.py29
LOWopen_notebook/utils/__init__.py29
LOWopen_notebook/utils/__init__.py29
LOWopen_notebook/utils/__init__.py35
LOWopen_notebook/utils/__init__.py35
LOWopen_notebook/utils/__init__.py36
LOWopen_notebook/utils/__init__.py36
LOWopen_notebook/utils/__init__.py36
LOWopen_notebook/podcasts/models.py3
LOWopen_notebook/ai/connection_tester.py11
LOWopen_notebook/graphs/source_chat.py6
LOWopen_notebook/graphs/chat.py6
LOWopen_notebook/domain/provider_config.py15
LOWopen_notebook/domain/notebook.py1
LOWopen_notebook/domain/notebook.py4
LOWopen_notebook/domain/credential.py18
LOWtests/test_embedding.py244
LOWapi/command_service.py22
LOWapi/auth.py5
LOWapi/credentials_service.py13
LOWapi/podcast_service.py90
LOWapi/routers/config.py2
LOWapi/routers/embedding.py39
LOWapi/routers/sources.py880
LOWapi/routers/sources.py396
LOWapi/routers/sources.py459
LOWapi/routers/embedding_rebuild.py34
LOWcommands/__init__.py3
LOWcommands/__init__.py3
LOWcommands/__init__.py3
LOWcommands/__init__.py3
LOWcommands/__init__.py9
LOWcommands/__init__.py9
LOWcommands/__init__.py10
LOWcommands/__init__.py11
Deep Nesting52 hits · 44 pts
SeverityFileLineSnippet
LOWopen_notebook/utils/encryption.py29
LOWopen_notebook/utils/text_utils.py122
LOWopen_notebook/utils/embedding.py111
LOWopen_notebook/utils/context_builder.py210
LOWopen_notebook/utils/context_builder.py367
LOWopen_notebook/podcasts/migration.py65
LOWopen_notebook/ai/models.py102
LOWopen_notebook/ai/models.py221
LOWopen_notebook/ai/connection_tester.py42
LOWopen_notebook/ai/connection_tester.py99
LOWopen_notebook/ai/connection_tester.py134
LOWopen_notebook/ai/connection_tester.py172
LOWopen_notebook/ai/connection_tester.py351
LOWopen_notebook/ai/connection_tester.py371
LOWopen_notebook/ai/model_discovery.py236
LOWopen_notebook/ai/model_discovery.py346
LOWopen_notebook/graphs/source_chat.py190
LOWopen_notebook/domain/provider_config.py198
LOWopen_notebook/domain/notebook.py138
LOWopen_notebook/domain/credential.py136
LOWopen_notebook/domain/base.py39
LOWopen_notebook/domain/base.py146
LOWopen_notebook/domain/base.py282
LOWapi/credentials_service.py89
LOWapi/credentials_service.py248
LOWapi/credentials_service.py361
LOWapi/credentials_service.py703
LOWapi/credentials_service.py811
LOWapi/routers/models.py366
LOWapi/routers/models.py643
LOWapi/routers/embedding.py13
LOWapi/routers/credentials.py256
LOWapi/routers/podcasts.py87
LOWapi/routers/podcasts.py216
LOWapi/routers/podcasts.py273
LOWapi/routers/source_chat.py135
LOWapi/routers/source_chat.py197
LOWapi/routers/source_chat.py417
LOWapi/routers/sources.py162
LOWapi/routers/sources.py290
LOWapi/routers/sources.py718
LOWapi/routers/sources.py822
LOWapi/routers/chat.py422
LOWapi/routers/embedding_rebuild.py19
LOWapi/routers/context.py13
LOWapi/routers/search.py61
LOWapi/routers/notebooks.py21
LOWapi/routers/languages.py38
LOWapi/routers/commands.py123
LOWcommands/example_commands.py44
LOWcommands/podcast_commands.py70
LOWcommands/embedding_commands.py623
Redundant / Tautological Comments20 hits · 35 pts
SeverityFileLineSnippet
LOWopen_notebook/utils/embedding.py245 # Check if chunking is needed
LOWopen_notebook/ai/model_discovery.py754 # Check if model already exists using pre-fetched data
LOW.github/workflows/build-dev.yml66 # Check if this is a push to main (not a PR)
LOWapi/sources_service.py197 # Check if this is an async processing response
LOWapi/credentials_service.py729 # Check if a credential already exists for this provider with same name
LOWapi/podcast_service.py170 # Check if profiles already exist
LOWapi/podcast_service.py191 # Check if profiles already exist
LOWapi/routers/config.py54 # Check if cache is still valid (within TTL)
LOWapi/routers/embedding.py16 # Check if embedding model is available
LOWapi/routers/sources.py55 # Check if file exists and generate unique name
LOWapi/routers/sources.py726 # Check if this is a legacy source (no command)
LOWapi/routers/sources.py830 # Check if source already has a running command
LOWapi/routers/sources.py870 # Check if it's a text source by trying to get full_text
LOWapi/routers/search.py22 # Check if embedding model is available for vector search
LOWapi/routers/search.py138 # Check if embedding model is available
LOWapi/routers/search.py185 # Check if embedding model is available
LOWapi/routers/notebooks.py249 # Check if notebook exists
LOWapi/routers/notebooks.py254 # Check if source exists
LOWapi/routers/notebooks.py259 # Check if reference already exists (idempotency)
LOWapi/routers/notebooks.py294 # Check if notebook exists
Cross-File Repetition4 hits · 20 pts
SeverityFileLineSnippet
HIGHtests/test_sources_api.py0create test client after environment variables have been cleared by conftest.
HIGHtests/test_models_api.py0create test client after environment variables have been cleared by conftest.
HIGHtests/test_credentials_api.py0create test client after environment variables have been cleared by conftest.
HIGHtests/test_notes_api.py0create test client after environment variables have been cleared by conftest.
Self-Referential Comments6 hits · 20 pts
SeverityFileLineSnippet
MEDIUMopen_notebook/ai/model_discovery.py743 # Create a set of (name, type) tuples for O(1) lookup
MEDIUMopen_notebook/graphs/source_chat.py250# Create the StateGraph
MEDIUMopen_notebook/graphs/source.py178# Define the graph edges
MEDIUMopen_notebook/domain/credential.py152 # Create a minimal credential with error info from raw DB fields
MEDIUMtests/test_domain.py129 # Create a temporary file
MEDIUMcommands/podcast_commands.py215 # Create the record for the episode and associate with the ongoing command
Verbosity Indicators11 hits · 19 pts
SeverityFileLineSnippet
LOWfrontend/src/lib/utils/source-references.tsx175 // Step 1: Find ALL references using simple greedy pattern
LOWfrontend/src/lib/utils/source-references.tsx201 // Step 2: Process references from end to start (to preserve indices)
LOWfrontend/src/lib/utils/source-references.tsx209 // Step 3: Analyze context around the reference
LOWfrontend/src/lib/utils/source-references.tsx249 // Step 4: Build the markdown link
LOWfrontend/src/lib/utils/source-references.tsx253 // Step 5: Replace in the result string
LOWfrontend/src/lib/utils/source-references.tsx340 // Step 1: Parse all references using existing function
LOWfrontend/src/lib/utils/source-references.tsx343 // Step 2: If no references found, return original text
LOWfrontend/src/lib/utils/source-references.tsx348 // Step 3: Build reference map (deduplicate and assign numbers)
LOWfrontend/src/lib/utils/source-references.tsx363 // Step 4: Replace references with numbered citations (process from end to start)
LOWfrontend/src/lib/utils/source-references.tsx399 // Step 5: Build reference list
LOWfrontend/src/lib/utils/source-references.tsx408 // Step 6: Append reference list to result
Over-Commented Block17 hits · 17 pts
SeverityFileLineSnippet
LOWopen_notebook/podcasts/__init__.py1# Podcasts module
LOWopen_notebook/ai/__init__.py1# AI infrastructure module
LOWdocs/6-TROUBLESHOOTING/connection-issues.md61
LOWdocs/6-TROUBLESHOOTING/quick-fixes.md121**Solution (1 minute):**
LOWdocs/6-TROUBLESHOOTING/quick-fixes.md181**Solution (1 minute):**
LOWexamples/docker-compose-speaches.yml1# Docker Compose with Speaches (Local TTS/STT)
LOWexamples/docker-compose-speaches.yml81#
LOWexamples/docker-compose-speaches.yml101# - Model Name: speaches-ai/Kokoro-82M-v1.0-ONNX
LOWexamples/docker-compose-speaches.yml121# -F "file=@test.mp3" \
LOWexamples/docker-compose-ollama.yml1# Docker Compose with Ollama (Free Local AI)
LOWexamples/docker-compose-full-local.yml1# Docker Compose - 100% Local AI Setup
LOWexamples/docker-compose-full-local.yml101# ==========================================
LOWexamples/docker-compose-full-local.yml121# CONFIGURATION IN OPEN NOTEBOOK
LOWexamples/docker-compose-full-local.yml141# - Select and register the models you need (e.g. TTS and STT)
LOWexamples/docker-compose-full-local.yml161#
LOWexamples/docker-compose-full-local.yml181#
LOWexamples/docker-compose-single.yml21 # - Next.js UI: http://localhost:8502
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMfrontend/src/lib/api/source-chat.ts66 // Use relative URL to leverage Next.js rewrites
MEDIUMfrontend/src/lib/api/search.ts29 // Use relative URL to leverage Next.js rewrites
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippet
LOWexamples/docker-compose-speaches.yml13# Usage:
LOWexamples/docker-compose-ollama.yml6# Usage:
LOWexamples/docker-compose-full-local.yml16# Usage: