Repository Analysis

AsyncFuncAI/deepwiki-open

Open Source DeepWiki: AI-Powered Wiki Generator for GitHub/Gitlab/Bitbucket Repositories. Join the discord: https://discord.gg/gMwThUMeme

12.4 Low AI signal View on GitHub
12.4
Adjusted Score
12.4
Raw Score
100%
Time Factor
2026-05-22
Last Push
16,632
Stars
Python
Language
35,193
Lines of Code
101
Files
334
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 7MEDIUM 28LOW 299

Pattern Findings

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

Excessive Try-Catch Wrapping130 hits · 130 pts
SeverityFileLineSnippet
LOWtest/test_extract_repo_name.py90 except Exception as e:
LOWtests/run_tests.py37 except Exception as e:
LOWtests/unit/test_all_embedders.py281 except Exception as e:
LOWtests/unit/test_all_embedders.py291 except Exception as e:
LOWtests/unit/test_all_embedders.py308 except Exception as e:
LOWtests/unit/test_all_embedders.py320 except Exception as e:
LOWtests/unit/test_all_embedders.py45 except Exception as e:
LOWtests/unit/test_all_embedders.py173 except Exception as e:
LOWtests/unit/test_all_embedders.py188 except Exception as e:
LOWtests/unit/test_all_embedders.py389 except Exception as e:
LOWtests/unit/test_all_embedders.py413 except Exception as e:
LOWtests/unit/test_google_embedder.py70 except Exception as e:
LOWtests/unit/test_google_embedder.py105 except Exception as e:
LOWtests/unit/test_google_embedder.py152 except Exception as e:
LOWtests/integration/test_full_integration.py38 except Exception as e:
LOWtests/integration/test_full_integration.py67 except Exception as e:
LOWtests/integration/test_full_integration.py103 except Exception as e:
LOWtests/integration/test_full_integration.py137 except Exception as e:
MEDIUMtests/api/test_api.py42 print(f"Error: {response.status_code}")
MEDIUMtests/api/test_api.py45 print(f"Error details: {error_data.get('detail', 'Unknown error')}")
MEDIUMtests/api/test_api.py47 print(f"Error content: {response.content}")
LOWtests/api/test_api.py57 except Exception as e:
MEDIUMtests/api/test_api.py58 print(f"Error: {str(e)}")
LOWapi/bedrock_client.py149 except Exception as e:
LOWapi/bedrock_client.py295 except Exception as e:
LOWapi/bedrock_client.py364 except Exception as e:
LOWapi/dashscope_client.py86 except Exception as e:
LOWapi/dashscope_client.py226 except Exception as e:
LOWapi/dashscope_client.py267 except Exception as e:
LOWapi/dashscope_client.py300 except Exception as e:
LOWapi/dashscope_client.py481 except Exception as e:
LOWapi/dashscope_client.py524 except Exception as e:
LOWapi/dashscope_client.py607 except Exception as e:
LOWapi/dashscope_client.py770 except Exception as e:
LOWapi/dashscope_client.py803 except Exception as e:
LOWapi/dashscope_client.py822 except Exception as e:
LOWapi/dashscope_client.py702 except Exception as e:
LOWapi/dashscope_client.py724 except Exception as e:
LOWapi/config.py119 except Exception as e:
MEDIUMapi/config.py100def load_json_config(filename):
LOWapi/data_pipeline.py66 except Exception as e:
LOWapi/data_pipeline.py155 except Exception as e:
LOWapi/data_pipeline.py350 except Exception as e:
LOWapi/data_pipeline.py384 except Exception as e:
LOWapi/data_pipeline.py534 except Exception as e:
LOWapi/data_pipeline.py588 except Exception as e:
LOWapi/data_pipeline.py616 except Exception as e:
LOWapi/data_pipeline.py659 except Exception as e:
LOWapi/data_pipeline.py691 except Exception as e:
LOWapi/data_pipeline.py835 except Exception as e:
LOWapi/data_pipeline.py869 except Exception:
LOWapi/data_pipeline.py901 except Exception as e:
LOWapi/openrouter_client.py341 except Exception as e:
LOWapi/openrouter_client.py452 except Exception as e_chunk:
LOWapi/openrouter_client.py455 except Exception as e_stream:
LOWapi/openrouter_client.py222 except Exception as xml_parse_error:
LOWapi/openrouter_client.py299 except Exception as rebuild_error:
LOWapi/openrouter_client.py309 except Exception as xml_error:
LOWapi/openrouter_client.py391 except Exception as e_proc:
LOWapi/openrouter_client.py520 except Exception as e_chunk:
70 more matches not shown…
Redundant / Tautological Comments40 hits · 65 pts
SeverityFileLineSnippet
LOWtests/integration/test_full_integration.py20 # Check if Google embedder config exists
LOWtests/integration/test_full_integration.py29 # Check if GoogleEmbedderClient is in CLIENT_CLASSES
LOWtests/api/test_api.py40 # Check if the request was successful
LOWapi/bedrock_client.py308 # Check if client is initialized
LOWapi/dashscope_client.py207 # Check if it's a ChatCompletion object (non-streaming response)
LOWapi/config.py191 # Check if model_client is OllamaClient
LOWapi/config.py211 # Check if model_client is GoogleEmbedderClient
LOWapi/data_pipeline.py86 # Check if Git is installed
LOWapi/data_pipeline.py95 # Check if repository already exists
LOWapi/data_pipeline.py266 # Check if file is in an included directory
LOWapi/data_pipeline.py274 # Check if file matches included file patterns
LOWapi/data_pipeline.py296 # Check if file is in an excluded directory
LOWapi/data_pipeline.py303 # Check if file matches excluded file patterns
LOWapi/data_pipeline.py316 # Check if file should be processed based on inclusion/exclusion rules
LOWapi/data_pipeline.py357 # Check if file should be processed based on inclusion/exclusion rules
LOWapi/data_pipeline.py483 # Check if it's a GitHub-like URL structure
LOWapi/data_pipeline.py518 # Check if we got an error response
LOWapi/data_pipeline.py814 # Check if the repository directory already exists and is not empty
LOWapi/openrouter_client.py176 # Check if the content is XML and ensure it's properly formatted
LOWapi/openrouter_client.py183 # Check if it's a wiki_structure XML
LOWapi/openrouter_client.py117 # Check if API key is set
LOWapi/simple_chat.py313 # Check if filePath is provided and fetch file content if it exists
LOWapi/simple_chat.py80 # Check if request contains very large input
LOWapi/simple_chat.py151 # Check if this is a Deep Research request
LOWapi/simple_chat.py169 # Check if this is a continuation request
LOWapi/simple_chat.py254 # Check if this is the first iteration
LOWapi/simple_chat.py257 # Check if this is the final iteration
LOWapi/simple_chat.py354 # Check if OpenRouter API key is set
LOWapi/simple_chat.py377 # Check if an API key is set for Openai
LOWapi/simple_chat.py401 # Check if AWS credentials are set
LOWapi/rag.py63 # Check if dialog_turns exists and is a list
LOWapi/rag.py178 # Check if Ollama model exists before proceeding
LOWapi/websocket_wiki.py423 # Check if filePath is provided and fetch file content if it exists
LOWapi/websocket_wiki.py75 # Check if request contains very large input
LOWapi/websocket_wiki.py156 # Check if this is a Deep Research request
LOWapi/websocket_wiki.py174 # Check if this is a continuation request
LOWapi/websocket_wiki.py259 # Check if this is the first iteration
LOWapi/websocket_wiki.py262 # Check if this is the final iteration
LOWapi/websocket_wiki.py464 # Check if OpenRouter API key is set
LOWapi/websocket_wiki.py487 # Check if an API key is set for Openai
Hyper-Verbose Identifiers49 hits · 54 pts
SeverityFileLineSnippet
LOWtest/test_extract_repo_name.py28 def test_extract_repo_name_github_standard_url(self):
LOWtest/test_extract_repo_name.py47 def test_extract_repo_name_gitlab_urls(self):
LOWtest/test_extract_repo_name.py62 def test_extract_repo_name_bitbucket_urls(self):
LOWtest/test_extract_repo_name.py70 def test_extract_repo_name_local_paths(self):
LOWtest/test_extract_repo_name.py80 def test_extract_repo_name_current_implementation_bug(self):
LOWtest/test_extract_repo_name.py105 def test_extract_repo_name_edge_cases(self):
LOWtests/unit/test_all_embedders.py272 def test_prepare_data_pipeline(self, is_ollama=None):
LOWtests/unit/test_all_embedders.py311 def test_rag_embedder_type_detection(self):
LOWtests/unit/test_all_embedders.py327 def test_embedder_type_env_var(self, embedder_type=None):
LOWtests/unit/test_all_embedders.py103 def test_embedder_type_detection(self):
LOWtests/unit/test_all_embedders.py149 def test_get_embedder_with_explicit_type(self):
LOWtests/unit/test_all_embedders.py176 def test_get_embedder_with_legacy_params(self):
LOWtests/unit/test_all_embedders.py191 def test_get_embedder_auto_detection(self):
LOWtests/unit/test_all_embedders.py203 def test_google_embedder_client(self):
LOWtests/unit/test_all_embedders.py230 def test_openai_embedder_via_adalflow(self):
LOWtests/unit/test_all_embedders.py340 def _test_single_embedder_type(self, embedder_type):
LOWtests/unit/test_all_embedders.py374 def test_binary_assumptions_in_rag(self):
LOWtests/unit/test_all_embedders.py392 def test_binary_assumptions_in_data_pipeline(self):
LOWtests/unit/test_google_embedder.py23def test_google_embedder_client():
LOWtests/integration/test_full_integration.py73def test_google_embedder_with_env():
LOWapi/bedrock_client.py183 def _format_prompt_for_provider(self, provider: str, prompt: str, messages=None) -> Dict[str, Any]:
LOWapi/bedrock_client.py442 def convert_inputs_to_api_kwargs(
LOWapi/dashscope_client.py68def get_first_message_content(completion: ChatCompletion) -> str:
LOWapi/dashscope_client.py96def handle_streaming_response(generator: Stream[ChatCompletionChunk]):
LOWapi/dashscope_client.py305 def convert_inputs_to_api_kwargs(
LOWapi/data_pipeline.py434def transform_documents_and_save_to_db(
LOWapi/data_pipeline.py619def get_bitbucket_file_content(repo_url: str, file_path: str, access_token: str = None) -> str:
LOWapi/data_pipeline.py770 def _extract_repo_name_from_url(self, repo_url_or_path: str, repo_type: str) -> str:
LOWapi/openrouter_client.py346 async def unexpected_error_generator():
LOWapi/openrouter_client.py355 async def model_type_error_generator():
LOWapi/openrouter_client.py359 def _process_completion_response(self, data: Dict) -> GeneratorOutput:
LOWapi/openrouter_client.py459 async def _process_async_streaming_response(self, response):
LOWapi/openrouter_client.py71 def convert_inputs_to_api_kwargs(
LOWapi/openrouter_client.py328 async def connection_error_generator():
LOWapi/openrouter_client.py395 def _process_streaming_response(self, response):
LOWapi/ollama_patch.py21def check_ollama_model_exists(model_name: str, ollama_host: str = None) -> bool:
LOWapi/api.py36def get_adalflow_default_root_path():
LOWapi/azureai_client.py75def get_first_message_content(completion: ChatCompletion) -> str:
LOWapi/azureai_client.py81# def _get_chat_completion_usage(completion: ChatCompletion) -> OpenAICompletionUsage:
LOWapi/azureai_client.py90def handle_streaming_response(generator: Stream[ChatCompletionChunk]):
LOWapi/azureai_client.py348 def convert_inputs_to_api_kwargs(
LOWapi/rag.py251 def _validate_and_filter_embeddings(self, documents: List) -> List:
LOWapi/openai_client.py58def get_first_message_content(completion: ChatCompletion) -> str:
LOWapi/openai_client.py65# def _get_chat_completion_usage(completion: ChatCompletion) -> OpenAICompletionUsage:
LOWapi/openai_client.py92def handle_streaming_response(generator: Stream[ChatCompletionChunk]):
LOWapi/openai_client.py270 def convert_inputs_to_api_kwargs(
LOWapi/openai_client.py384 def parse_image_generation_response(self, response: List[Image]) -> GeneratorOutput:
LOWapi/google_embedder_client.py161 def convert_inputs_to_api_kwargs(
LOWsrc/app/api/wiki/projects/route.ts22function isDeleteProjectCachePayload(obj: unknown): obj is DeleteProjectCachePayload {
Self-Referential Comments15 hits · 52 pts
SeverityFileLineSnippet
MEDIUMtests/api/test_api.py14 # Define the API endpoint
MEDIUMtests/api/test_api.py17 # Define the request payload
MEDIUMapi/bedrock_client.py116 # Create a session with the provided credentials
MEDIUMapi/bedrock_client.py133 # Create a new session with the assumed role credentials
MEDIUMapi/bedrock_client.py141 # Create the Bedrock client
MEDIUMapi/openrouter_client.py168 # Create a generator that yields the content
MEDIUMapi/simple_chat.py307 # Create the prompt with context
MEDIUMapi/simple_chat.py91 # Create a new RAG instance for this request
MEDIUMapi/simple_chat.py463 # Create a streaming response
MEDIUMapi/simple_chat.py568 # Create a simplified prompt without context
MEDIUMapi/api.py380 # Create a dictionary with metadata and pages
MEDIUMapi/rag.py103 # Create a new dialog turn using our custom implementation
MEDIUMapi/websocket_wiki.py417 # Create the prompt with context
MEDIUMapi/websocket_wiki.py86 # Create a new RAG instance for this request
MEDIUMapi/websocket_wiki.py724 # Create a simplified prompt without context
Deep Nesting39 hits · 32 pts
SeverityFileLineSnippet
LOWapi/bedrock_client.py183
LOWapi/bedrock_client.py250
LOWapi/bedrock_client.py304
LOWapi/bedrock_client.py442
LOWapi/dashscope_client.py197
LOWapi/dashscope_client.py305
LOWapi/dashscope_client.py391
LOWapi/dashscope_client.py498
LOWapi/dashscope_client.py748
LOWapi/dashscope_client.py844
LOWapi/config.py124
LOWapi/data_pipeline.py27
LOWapi/data_pipeline.py72
LOWapi/data_pipeline.py161
LOWapi/data_pipeline.py537
LOWapi/data_pipeline.py619
LOWapi/data_pipeline.py243
LOWapi/data_pipeline.py839
LOWapi/openrouter_client.py112
LOWapi/openrouter_client.py395
LOWapi/openrouter_client.py459
LOWapi/openrouter_client.py169
LOWapi/simple_chat.py77
LOWapi/simple_chat.py464
LOWapi/ollama_patch.py71
LOWapi/api.py276
LOWapi/api.py322
LOWapi/api.py578
LOWapi/azureai_client.py348
LOWapi/rag.py59
LOWapi/rag.py251
LOWapi/rag.py345
LOWapi/openai_client.py270
LOWapi/openai_client.py411
LOWapi/openai_client.py488
LOWapi/google_embedder_client.py78
LOWapi/google_embedder_client.py92
LOWapi/websocket_wiki.py63
LOWapi/tools/embedder.py6
Unused Imports34 hits · 29 pts
SeverityFileLineSnippet
LOWtest/test_extract_repo_name.py9
LOWtest/test_extract_repo_name.py12
LOWtest/test_extract_repo_name.py12
LOWtests/run_tests.py111
LOWtests/run_tests.py117
LOWtests/run_tests.py123
LOWtests/unit/test_google_embedder.py6
LOWapi/bedrock_client.py3
LOWapi/bedrock_client.py9
LOWapi/bedrock_client.py9
LOWapi/bedrock_client.py9
LOWapi/bedrock_client.py12
LOWapi/dashscope_client.py5
LOWapi/openrouter_client.py3
LOWapi/openrouter_client.py3
LOWapi/openrouter_client.py3
LOWapi/openrouter_client.py7
LOWapi/openrouter_client.py8
LOWapi/simple_chat.py2
LOWapi/ollama_patch.py1
LOWapi/api.py3
LOWapi/api.py3
LOWapi/api.py6
LOWapi/api.py10
LOWapi/rag.py3
LOWapi/rag.py5
LOWapi/main.py67
LOWapi/google_embedder_client.py6
LOWapi/google_embedder_client.py13
LOWapi/google_embedder_client.py13
LOWapi/websocket_wiki.py2
LOWapi/websocket_wiki.py3
LOWapi/websocket_wiki.py3
LOWapi/websocket_wiki.py9
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippet
HIGHapi/data_pipeline.py461 Retrieves the content of a file from a GitHub repository using the GitHub API. Supports both public GitHub (git
HIGHapi/data_pipeline.py538 Retrieves the content of a file from a GitLab repository (cloud or self-hosted). Args: repo_url (str):
HIGHapi/data_pipeline.py696 Retrieves the content of a file from a Git repository (GitHub or GitLab). Args: repo_type (str): Type
HIGHapi/openai_client.py539Encode image to base64 string. Args: image_path: Path to image file. Returns:
Decorative Section Separators4 hits · 18 pts
SeverityFileLineSnippet
MEDIUMlitellm-config.yml2 # -----------------------
MEDIUMlitellm-config.yml4 # -----------------------
MEDIUMlitellm-config.yml11 # -----------------------
MEDIUMlitellm-config.yml13 # -----------------------
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippet
HIGHREADME.zh-tw.md258 OPENAI_API_KEY=your_api_key
HIGHapi/azureai_client.py144 export AZURE_OPENAI_API_KEY="your_api_key"
HIGHapi/azureai_client.py161 api_key="your_api_key",
AI Slop Vocabulary5 hits · 9 pts
SeverityFileLineSnippet
MEDIUMpackage-lock.json8459 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
LOWapi/bedrock_client.py160 # For now, just return the sync client
LOWapi/bedrock_client.py438 # For now, just call the sync method
MEDIUMsrc/components/Ask.tsx386 const completionNote = "\n\n## Final Conclusion\nAfter multiple iterations of deep research, we've gathered
MEDIUMsrc/components/Ask.tsx466 const completionNote = "\n\n## Final Conclusion\nAfter multiple iterations of deep research, we've gathered sign
Over-Commented Block6 hits · 6 pts
SeverityFileLineSnippet
LOWtests/__init__.py1# Tests for DeepWiki
LOWtests/unit/__init__.py1# Unit tests
LOWtests/integration/__init__.py1# Integration tests
LOWtests/api/__init__.py1# API tests
LOWapi/azureai_client.py481# model_client=OpenAIClient(),
LOWapi/openai_client.py201 raise ValueError(
Verbosity Indicators4 hits · 6 pts
SeverityFileLineSnippet
LOWsrc/app/[owner]/[repo]/page.tsx1331 // Step 1: Get project info to determine default branch
LOWsrc/app/[owner]/[repo]/page.tsx1353 // Step 2: Paginate to fetch full file tree
LOWsrc/app/[owner]/[repo]/page.tsx1378 // Step 3: Format file paths
LOWsrc/app/[owner]/[repo]/page.tsx1384 // Step 4: Try to fetch README.md content
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWapi/openai_client.py590# Example usage: