Repository Analysis

hsliuping/TradingAgents-CN

基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版

15.5 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of hsliuping/TradingAgents-CN, a Python project with 30,184 GitHub stars. SynthScan v2.0 examined 496,941 lines of code across 1873 source files, recording 7013 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 15.5 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

15.5
Adjusted Score
15.5
Raw Score
100%
Time Factor
2026-04-20
Last Push
30.2K
Stars
Python
Language
496.9K
Lines of Code
1.9K
Files
7.0K
Pattern Hits
2026-07-14
Scan Date
0.07
HC Hit Rate

What These Metrics Mean

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

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 129MEDIUM 104LOW 6780

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 7013 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Excessive Try-Catch Wrapping3466 hits · 3374 pts
SeverityFileLineSnippetContext
LOWapp/worker.py50 except Exception as e:CODE
LOWapp/worker.py76 except Exception:CODE
LOWapp/worker.py148 except Exception as analysis_error:CODE
LOWapp/worker.py174 except Exception as e:CODE
LOWapp/worker.py200 except Exception as e:CODE
LOWapp/worker.py217 except Exception as e:CODE
LOWapp/main.py80 except Exception:CODE
LOWapp/main.py123 except Exception as e:CODE
LOWapp/main.py192 except Exception as e:CODE
LOWapp/main.py207 except Exception as e:CODE
LOWapp/main.py211 except Exception as e:CODE
LOWapp/main.py226 except Exception as e:CODE
LOWapp/main.py236 except Exception as e:CODE
LOWapp/main.py251 except Exception:CODE
LOWapp/main.py253 except Exception as e:CODE
LOWapp/main.py267 except Exception as e:CODE
LOWapp/main.py274 except Exception:CODE
LOWapp/main.py552 except Exception as e:CODE
LOWapp/main.py577 except Exception as e:CODE
LOWapp/main.py589 except Exception as e:CODE
LOWapp/main.py596 except Exception as e:CODE
LOWapp/__main__.py30 except Exception:CODE
LOWapp/__main__.py33 except Exception as e:CODE
LOWapp/__main__.py88 except Exception as e:CODE
LOWapp/__main__.py103except Exception as e:CODE
LOWapp/__main__.py156 except Exception:CODE
LOWapp/__main__.py174 except Exception as e:CODE
LOWapp/routers/sync.py22 except Exception as e:CODE
LOWapp/routers/tags.py41 except Exception as e:CODE
LOWapp/routers/tags.py55 except Exception as e:CODE
LOWapp/routers/tags.py75 except Exception as e:CODE
LOWapp/routers/tags.py88 except Exception as e:CODE
LOWapp/routers/news_data.py113 except Exception as e:CODE
LOWapp/routers/news_data.py126 except Exception as e:CODE
LOWapp/routers/news_data.py176 except Exception as e:CODE
LOWapp/routers/news_data.py221 except Exception as e:CODE
LOWapp/routers/news_data.py265 except Exception as e:CODE
LOWapp/routers/news_data.py322 except Exception as e:CODE
LOWapp/routers/news_data.py374 except Exception as e:CODE
LOWapp/routers/news_data.py427 except Exception as e:CODE
LOWapp/routers/news_data.py461 except Exception as e:CODE
LOWapp/routers/news_data.py482 except Exception as e:CODE
LOWapp/routers/news_data.py499 except Exception as e:CODE
LOWapp/routers/news_data.py511 except Exception as e:CODE
LOWapp/routers/stocks.py27 except Exception:CODE
LOWapp/routers/stocks.py103 except Exception as e:CODE
LOWapp/routers/stocks.py160 except Exception:CODE
LOWapp/routers/stocks.py187 except Exception as e:CODE
LOWapp/routers/stocks.py247 except Exception as e:CODE
LOWapp/routers/stocks.py322 except Exception as e:CODE
LOWapp/routers/stocks.py468 except Exception as e:CODE
LOWapp/routers/stocks.py527 except Exception as e:CODE
LOWapp/routers/stocks.py546 except Exception as e:CODE
LOWapp/routers/stocks.py610 except Exception as e:CODE
LOWapp/routers/stocks.py702 except Exception as e:CODE
LOWapp/routers/stocks.py739 except Exception as e:CODE
LOWapp/routers/stock_sync.py244 except Exception as e:CODE
LOWapp/routers/stock_sync.py285 except Exception as e:CODE
LOWapp/routers/stock_sync.py308 except Exception as e:CODE
LOWapp/routers/stock_sync.py333 except Exception as e:CODE
3406 more matches not shown…
Hyper-Verbose Identifiers1266 hits · 1272 pts
SeverityFileLineSnippetContext
LOWapp/routers/news_data.py503async def _execute_market_news_sync(sync_service, request: NewsSyncRequest):CODE
LOWapp/routers/stock_sync.py25async def _sync_latest_to_market_quotes(symbol: str) -> None:CODE
LOWapp/routers/config.py165def _sanitize_database_configs(items):CODE
LOWapp/routers/config.py1583async def remove_datasource_from_category(CODE
LOWapp/routers/config.py1621async def update_datasource_grouping(CODE
LOWapp/routers/config.py1660async def update_category_datasource_order(CODE
LOWapp/routers/config.py97def _sort_llm_configs_by_newest(items):CODE
LOWapp/routers/config.py113def _sanitize_datasource_configs(items):CODE
LOWapp/routers/config.py576async def init_aggregator_providers(CODE
LOWapp/routers/config.py936async def test_saved_database_config(CODE
LOWapp/routers/config.py1134async def update_data_source_config(CODE
LOWapp/routers/config.py1344async def delete_data_source_config(CODE
LOWapp/routers/config.py1545async def add_datasource_to_category(CODE
LOWapp/routers/config.py2050async def get_provider_model_catalog(CODE
LOWapp/routers/analysis.py985async def get_user_analysis_history(CODE
LOWapp/routers/model_capabilities.py78async def get_default_model_configs():CODE
LOWapp/routers/model_capabilities.py134async def get_capability_descriptions():CODE
LOWapp/routers/database.py104async def test_database_connections(CODE
LOWapp/routers/screening.py74def _convert_legacy_conditions_to_new_format(legacy_conditions: Dict[str, Any]) -> List[ScreeningCondition]:CODE
LOWapp/routers/websocket_notifications.py110async def websocket_notifications_endpoint(CODE
LOWapp/routers/websocket_notifications.py201async def websocket_task_progress_endpoint(CODE
LOWapp/routers/websocket_notifications.py272async def send_notification_via_websocket(user_id: str, notification: dict):CODE
LOWapp/routers/websocket_notifications.py287async def send_task_progress_via_websocket(task_id: str, progress_data: dict):CODE
LOWapp/routers/reports.py356async def get_report_module_content(CODE
LOWapp/routers/social_media.py69async def save_social_media_messages(request: SocialMediaBatchRequest):CODE
LOWapp/routers/social_media.py94async def query_social_media_messages(request: SocialMediaQueryRequest):CODE
LOWapp/routers/financial_data.py91async def get_latest_financial_data(CODE
LOWapp/routers/financial_data.py184async def sync_single_stock_financial(CODE
LOWapp/routers/scheduler.py58async def update_job_metadata_route(CODE
LOWapp/routers/scheduler.py381async def get_single_job_executions(CODE
LOWapp/routers/tushare_init.py112async def get_initialization_status(CODE
LOWapp/routers/tushare_init.py137async def start_basic_initialization(CODE
LOWapp/routers/tushare_init.py161async def start_full_initialization(CODE
LOWapp/routers/tushare_init.py226async def _run_basic_initialization():CODE
LOWapp/routers/baostock_init.py84async def start_full_initialization(CODE
LOWapp/routers/baostock_init.py136async def start_basic_initialization(background_tasks: BackgroundTasks):CODE
LOWapp/routers/baostock_init.py178async def get_initialization_status():CODE
LOWapp/routers/baostock_init.py252async def _run_full_initialization_task(historical_days: int, force: bool, task_id: str):CODE
LOWapp/routers/baostock_init.py285async def _run_basic_initialization_task(task_id: str):CODE
LOWapp/routers/akshare_init.py146async def start_full_initialization(CODE
LOWapp/routers/akshare_init.py260async def get_initialization_status():CODE
LOWapp/routers/akshare_init.py326async def _run_full_initialization_background(historical_days: int, force: bool):CODE
LOWapp/routers/akshare_init.py352async def _run_basic_sync_background(force_update: bool):CODE
LOWapp/middleware/operation_log_middleware.py21def set_operation_log_enabled(flag: bool) -> None:CODE
LOWapp/core/database.py214async def init_database_views_and_indexes():CODE
LOWapp/core/database.py232async def create_stock_screening_view(db):CODE
LOWapp/core/rate_limiter.py213def get_baostock_rate_limiter() -> BaoStockRateLimiter:CODE
LOWapp/core/config_compat.py31 def _emit_deprecation_warning(self):CODE
LOWapp/core/startup_validator.py186 def _validate_required_configs(self):CODE
LOWapp/core/startup_validator.py200 def _validate_recommended_configs(self):CODE
LOWapp/core/config_bridge.py299def _bridge_datasource_details(data_source_configs) -> int:CODE
LOWapp/core/config_bridge.py673async def _sync_pricing_config_from_db():CODE
LOWapp/core/unified_config.py327 async def get_data_source_configs_async(self) -> List[DataSourceConfig]:CODE
LOWapp/core/unified_config.py442 async def get_unified_system_config(self) -> SystemConfig:CODE
LOWapp/constants/model_capabilities.py353def get_model_capability_badge(level: int) -> Dict[str, str]:CODE
LOWapp/utils/api_key_utils.py76def get_env_api_key_for_provider(provider_name: str) -> Optional[str]:CODE
LOWapp/utils/api_key_utils.py97def get_env_api_key_for_datasource(ds_type: str) -> Optional[str]:CODE
LOWapp/utils/api_key_utils.py137def should_skip_api_key_update(api_key: Optional[str]) -> bool:CODE
LOWapp/utils/error_formatter.py199 def _generate_friendly_message(CODE
LOWapp/utils/report_exporter.py167 def _clean_markdown_for_pandoc(self, md_content: str) -> str:CODE
1206 more matches not shown…
Unused Imports1006 hits · 984 pts
SeverityFileLineSnippetContext
LOWapp/worker.py23CODE
LOWapp/main.py40CODE
LOWapp/routers/sync.py7CODE
LOWapp/routers/tags.py4CODE
LOWapp/routers/news_data.py6CODE
LOWapp/routers/news_data.py6CODE
LOWapp/routers/stocks.py7CODE
LOWapp/routers/stocks.py7CODE
LOWapp/routers/stocks.py7CODE
LOWapp/routers/stock_sync.py6CODE
LOWapp/routers/config.py22CODE
LOWapp/routers/config.py88CODE
LOWapp/routers/analysis.py17CODE
LOWapp/routers/analysis.py20CODE
LOWapp/routers/analysis.py20CODE
LOWapp/routers/analysis.py20CODE
LOWapp/routers/analysis.py20CODE
LOWapp/routers/model_capabilities.py5CODE
LOWapp/routers/model_capabilities.py21CODE
LOWapp/routers/database.py6CODE
LOWapp/routers/database.py8CODE
LOWapp/routers/database.py15CODE
LOWapp/routers/database.py15CODE
LOWapp/routers/cache.py6CODE
LOWapp/routers/cache.py7CODE
LOWapp/routers/cache.py7CODE
LOWapp/routers/historical_data.py7CODE
LOWapp/routers/historical_data.py8CODE
LOWapp/routers/screening.py8CODE
LOWapp/routers/favorites.py11CODE
LOWapp/routers/favorites.py11CODE
LOWapp/routers/websocket_notifications.py9CODE
LOWapp/routers/multi_market_stocks.py12CODE
LOWapp/routers/multi_market_stocks.py12CODE
LOWapp/routers/multi_market_stocks.py12CODE
LOWapp/routers/reports.py4CODE
LOWapp/routers/reports.py6CODE
LOWapp/routers/reports.py8CODE
LOWapp/routers/reports.py10CODE
LOWapp/routers/reports.py11CODE
LOWapp/routers/social_media.py7CODE
LOWapp/routers/social_media.py10CODE
LOWapp/routers/financial_data.py7CODE
LOWapp/routers/financial_data.py306CODE
LOWapp/routers/scheduler.py9CODE
LOWapp/routers/scheduler.py10CODE
LOWapp/routers/operation_logs.py6CODE
LOWapp/routers/operation_logs.py6CODE
LOWapp/routers/stock_data.py5CODE
LOWapp/routers/stock_data.py11CODE
LOWapp/routers/stock_data.py11CODE
LOWapp/routers/stock_data.py11CODE
LOWapp/routers/tushare_init.py7CODE
LOWapp/routers/tushare_init.py7CODE
LOWapp/routers/internal_messages.py7CODE
LOWapp/routers/internal_messages.py10CODE
LOWapp/routers/usage_statistics.py7CODE
LOWapp/routers/usage_statistics.py11CODE
LOWapp/routers/usage_statistics.py11CODE
LOWapp/routers/baostock_init.py6CODE
946 more matches not shown…
Deep Nesting780 hits · 692 pts
SeverityFileLineSnippetContext
LOWapp/main.py85CODE
LOWapp/__main__.py42CODE
LOWapp/routers/news_data.py44CODE
LOWapp/routers/stocks.py422CODE
LOWapp/routers/stocks.py625CODE
LOWapp/routers/stock_sync.py123CODE
LOWapp/routers/stock_sync.py571CODE
LOWapp/routers/config.py113CODE
LOWapp/routers/config.py247CODE
LOWapp/routers/config.py639CODE
LOWapp/routers/config.py748CODE
LOWapp/routers/config.py903CODE
LOWapp/routers/config.py1134CODE
LOWapp/routers/config.py1344CODE
LOWapp/routers/analysis.py106CODE
LOWapp/routers/analysis.py222CODE
LOWapp/routers/analysis.py772CODE
LOWapp/routers/analysis.py985CODE
LOWapp/routers/paper.py194CODE
LOWapp/routers/screening.py74CODE
LOWapp/routers/screening.py276CODE
LOWapp/routers/sse.py18CODE
LOWapp/routers/sse.py113CODE
LOWapp/routers/multi_source_sync.py41CODE
LOWapp/routers/multi_source_sync.py89CODE
LOWapp/routers/multi_source_sync.py155CODE
LOWapp/routers/multi_source_sync.py193CODE
LOWapp/routers/system_config.py64CODE
LOWapp/routers/reports.py429CODE
LOWapp/routers/social_media.py266CODE
LOWapp/routers/akshare_init.py47CODE
LOWapp/middleware/operation_log_middleware.py177CODE
LOWapp/core/logging_config.py66CODE
LOWapp/core/config_bridge.py15CODE
LOWapp/core/config_bridge.py359CODE
LOWapp/core/config_bridge.py673CODE
LOWapp/core/unified_config.py259CODE
LOWapp/core/unified_config.py327CODE
LOWapp/utils/trading_time.py133CODE
LOWapp/utils/error_formatter.py199CODE
LOWapp/utils/report_exporter.py284CODE
LOWapp/scripts/normalize_provider_keys.py139CODE
LOWapp/scripts/migrate_mongo_db.py74CODE
LOWapp/worker/news_data_sync_service.py89CODE
LOWapp/worker/news_data_sync_service.py183CODE
LOWapp/worker/news_data_sync_service.py228CODE
LOWapp/worker/news_data_sync_service.py260CODE
LOWapp/worker/news_data_sync_service.py357CODE
LOWapp/worker/news_data_sync_service.py433CODE
LOWapp/worker/example_sdk_sync_service.py211CODE
LOWapp/worker/baostock_sync_service.py117CODE
LOWapp/worker/baostock_sync_service.py172CODE
LOWapp/worker/baostock_sync_service.py413CODE
LOWapp/worker/baostock_sync_service.py493CODE
LOWapp/worker/financial_data_sync_service.py143CODE
LOWapp/worker/tushare_sync_service.py160CODE
LOWapp/worker/tushare_sync_service.py228CODE
LOWapp/worker/tushare_sync_service.py517CODE
LOWapp/worker/tushare_sync_service.py543CODE
LOWapp/worker/tushare_sync_service.py780CODE
720 more matches not shown…
Cross-Language Confusion (JS/TS)72 hits · 452 pts
SeverityFileLineSnippetContext
HIGHscripts/mongo-init.js21 print('✓ 创建应用用户成功');CODE
HIGHscripts/mongo-init.js23 print('⚠ 用户可能已存在: ' + e.message);CODE
HIGHscripts/mongo-init.js31print('\n创建集合...');CODE
HIGHscripts/mongo-init.js187print('✓ 初始数据插入完成');CODE
HIGHscripts/mongo-init.js191print('\n验证数据库初始化...');CODE
HIGHscripts/mongo-init.js194print('✓ 集合数量: ' + collections.length);CODE
HIGHscripts/mongo-init.js200print('✓ 索引数量: ' + indexes);CODE
HIGHscripts/mongo-init.js203print('✓ 系统配置数量: ' + configCount);CODE
HIGHscripts/mongo-init.js205print('\n========================================');CODE
HIGHscripts/mongo-init.js206print('TradingAgents数据库初始化完成!');CODE
HIGHscripts/mongo-init.js207print('========================================');CODE
HIGHscripts/mongo-init.js208print('数据库: tradingagents');CODE
HIGHscripts/mongo-init.js209print('用户: tradingagents');CODE
HIGHscripts/mongo-init.js210print('密码: tradingagents123');CODE
HIGHscripts/mongo-init.js211print('集合数: ' + collections.length);CODE
HIGHscripts/mongo-init.js212print('索引数: ' + indexes);CODE
HIGHscripts/mongo-init.js213print('========================================');CODE
HIGHscripts/mongo-init.js4print('开始初始化TradingAgents数据库...');CODE
HIGHscripts/mongo-init.js63print('✓ 集合创建完成');CODE
HIGHscripts/mongo-init.js67print('\n创建索引...');CODE
HIGHscripts/mongo-init.js153print('✓ 索引创建完成');CODE
HIGHscripts/mongo-init.js157print('\n插入初始数据...');CODE
HIGHscripts/mongo-init-debug.js4print('========================================');CODE
HIGHscripts/mongo-init-debug.js5print('🔍 MongoDB 初始化脚本开始执行');CODE
HIGHscripts/mongo-init-debug.js6print('========================================');CODE
HIGHscripts/mongo-init-debug.js9print('\n📋 环境变量检查:');CODE
HIGHscripts/mongo-init-debug.js10print('MONGO_INITDB_ROOT_USERNAME: ' + (typeof MONGO_INITDB_ROOT_USERNAME !== 'undefined' ? MONGO_INITDB_ROOT_USERNAME :CODE
HIGHscripts/mongo-init-debug.js11print('MONGO_INITDB_ROOT_PASSWORD: ' + (typeof MONGO_INITDB_ROOT_PASSWORD !== 'undefined' ? '已设置' : '未设置'));CODE
HIGHscripts/mongo-init-debug.js12print('MONGO_INITDB_DATABASE: ' + (typeof MONGO_INITDB_DATABASE !== 'undefined' ? MONGO_INITDB_DATABASE : '未设置'));CODE
HIGHscripts/mongo-init-debug.js15print('\n📋 切换到 admin 数据库...');CODE
HIGHscripts/mongo-init-debug.js17print('✅ 当前数据库: ' + db.getName());CODE
HIGHscripts/mongo-init-debug.js20print('\n📋 检查现有用户...');CODE
HIGHscripts/mongo-init-debug.js23 print('现有用户数量: ' + users.users.length);CODE
HIGHscripts/mongo-init-debug.js25 print('用户列表:');CODE
HIGHscripts/mongo-init-debug.js27 print(' - ' + user.user + ' (角色: ' + JSON.stringify(user.roles) + ')');CODE
HIGHscripts/mongo-init-debug.js31 print('⚠️ 无法获取用户列表: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js35print('\n📋 创建 root 用户 (admin)...');CODE
HIGHscripts/mongo-init-debug.js47 print('✅ root 用户创建成功');CODE
HIGHscripts/mongo-init-debug.js49 print('⚠️ 用户可能已存在: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js53print('\n📋 创建应用用户 (tradingagents)...');CODE
HIGHscripts/mongo-init-debug.js65 print('✅ 应用用户创建成功');CODE
HIGHscripts/mongo-init-debug.js67 print('⚠️ 用户可能已存在: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js71print('\n📋 验证用户创建...');CODE
HIGHscripts/mongo-init-debug.js74 print('当前用户数量: ' + users.users.length);CODE
HIGHscripts/mongo-init-debug.js76 print(' ✅ ' + user.user + ' (角色: ' + JSON.stringify(user.roles) + ')');CODE
HIGHscripts/mongo-init-debug.js79 print('❌ 无法验证用户: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js83print('\n📋 切换到应用数据库 (tradingagents)...');CODE
HIGHscripts/mongo-init-debug.js85print('✅ 当前数据库: ' + db.getName());CODE
HIGHscripts/mongo-init-debug.js88print('\n📋 创建测试集合...');CODE
HIGHscripts/mongo-init-debug.js91 print('✅ 测试集合创建成功');CODE
HIGHscripts/mongo-init-debug.js93 print('❌ 集合创建失败: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js97print('\n📋 插入测试数据...');CODE
HIGHscripts/mongo-init-debug.js103 print('✅ 测试数据插入成功');CODE
HIGHscripts/mongo-init-debug.js105 print('❌ 数据插入失败: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js109print('\n📋 验证数据...');CODE
HIGHscripts/mongo-init-debug.js112 print('✅ 测试集合文档数量: ' + count);CODE
HIGHscripts/mongo-init-debug.js114 print('❌ 数据验证失败: ' + e.message);CODE
HIGHscripts/mongo-init-debug.js117print('\n========================================');CODE
HIGHscripts/mongo-init-debug.js118print('✅ MongoDB 初始化脚本执行完成');CODE
HIGHscripts/mongo-init-debug.js119print('========================================');CODE
12 more matches not shown…
Decorative Section Separators64 hits · 228 pts
SeverityFileLineSnippetContext
MEDIUMapp/__main__.py11# ============================================================================COMMENT
MEDIUMapp/__main__.py13# ============================================================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py48 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py50 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py91 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py93 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py107 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py109 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py124 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py126 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py150 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py152 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py173 # ========================================COMMENT
MEDIUMtests/test_akshare_hk_apis.py175 # ========================================COMMENT
MEDIUMdocs/design/configuration_management.md14# ===========================================COMMENT
MEDIUMdocs/design/configuration_management.md16# ===========================================COMMENT
MEDIUMdocs/configuration/config-guide.md28# ===========================================COMMENT
MEDIUMdocs/configuration/config-guide.md30# ===========================================COMMENT
MEDIUMdocs/configuration/quotes_ingestion_config.md52# ========================================COMMENT
MEDIUMdocs/configuration/quotes_ingestion_config.md54# ========================================COMMENT
MEDIUMdocs/configuration/quotes_ingestion_config.md69# ========================================COMMENT
MEDIUMdocs/configuration/quotes_ingestion_config.md71# ========================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md351# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md353# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md367# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md369# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md381# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md383# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md398# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md400# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md415# ============================================================================COMMENT
MEDIUMdocs/guides/portable-installation-guide.md417# ============================================================================COMMENT
MEDIUMdocs/guides/installation-guide.md195# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md197# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md204# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md206# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md229# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md231# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md242# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md244# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md256# ===========================================COMMENT
MEDIUMdocs/guides/installation-guide.md258# ===========================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md348# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md350# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md366# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md368# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md376# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md378# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md395# =============================================================================COMMENT
MEDIUMdocs/guides/INSTALLATION_GUIDE.md397# =============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py31# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py33# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py61# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py63# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py93# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py95# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py127# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py129# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py163# ============================================================================COMMENT
MEDIUMscripts/test_google_sdk_basic.py165# ============================================================================COMMENT
4 more matches not shown…
Modern Structural Boilerplate164 hits · 164 pts
SeverityFileLineSnippetContext
LOWapp/routers/stocks.py16logger = logging.getLogger(__name__)CODE
LOWapp/routers/model_capabilities.py24logger = logging.getLogger(__name__)CODE
LOWapp/routers/historical_data.py14logger = logging.getLogger(__name__)CODE
LOWapp/routers/multi_source_sync.py14logger = logging.getLogger(__name__)CODE
LOWapp/routers/financial_data.py15logger = logging.getLogger(__name__)CODE
LOWapp/routers/multi_period_sync.py14logger = logging.getLogger(__name__)CODE
LOWapp/routers/baostock_init.py16logger = logging.getLogger(__name__)CODE
LOWapp/routers/akshare_init.py19logger = logging.getLogger(__name__)CODE
LOWapp/middleware/request_id.py16logger = logging.getLogger(__name__)CODE
LOWapp/middleware/rate_limit.py12logger = logging.getLogger(__name__)CODE
LOWapp/middleware/operation_log_middleware.py21def set_operation_log_enabled(flag: bool) -> None:CODE
LOWapp/middleware/error_handler.py12logger = logging.getLogger(__name__)CODE
LOWapp/core/database.py17logger = logging.getLogger(__name__)CODE
LOWapp/core/rate_limiter.py11logger = logging.getLogger(__name__)CODE
LOWapp/core/redis_client.py10logger = logging.getLogger(__name__)CODE
LOWapp/core/startup_validator.py15logger = logging.getLogger(__name__)CODE
LOWapp/core/config_bridge.py733__all__ = [CODE
LOWapp/utils/report_exporter.py18logger = logging.getLogger(__name__)CODE
LOWapp/models/__init__.py20__all__ = [CODE
LOWapp/worker/us_data_service.py32logger = logging.getLogger(__name__)CODE
LOWapp/worker/hk_data_service.py33logger = logging.getLogger(__name__)CODE
LOWapp/worker/news_data_sync_service.py16logger = logging.getLogger(__name__)CODE
LOWapp/worker/example_sdk_sync_service.py20logger = logging.getLogger(__name__)CODE
LOWapp/worker/baostock_sync_service.py17logger = logging.getLogger(__name__)CODE
LOWapp/worker/financial_data_sync_service.py18logger = logging.getLogger(__name__)CODE
LOWapp/worker/akshare_init_service.py14logger = logging.getLogger(__name__)CODE
LOWapp/worker/tushare_sync_service.py19logger = logging.getLogger(__name__)CODE
LOWapp/worker/multi_period_sync_service.py17logger = logging.getLogger(__name__)CODE
LOWapp/worker/us_sync_service.py33logger = logging.getLogger(__name__)CODE
LOWapp/worker/tushare_init_service.py14logger = logging.getLogger(__name__)CODE
LOWapp/worker/akshare_sync_service.py15logger = logging.getLogger(__name__)CODE
LOWapp/worker/hk_sync_service.py35logger = logging.getLogger(__name__)CODE
LOWapp/worker/analysis_worker.py29logger = logging.getLogger(__name__)CODE
LOWapp/worker/baostock_init_service.py16logger = logging.getLogger(__name__)CODE
LOWapp/services/basics_sync_service.py32logger = logging.getLogger(__name__)CODE
LOWapp/services/queue_service.py40logger = logging.getLogger(__name__)CODE
LOWapp/services/multi_source_basics_sync_service.py25logger = logging.getLogger(__name__)CODE
LOWapp/services/social_media_service.py14logger = logging.getLogger(__name__)CODE
LOWapp/services/stock_data_service.py20logger = logging.getLogger(__name__)CODE
LOWapp/services/quotes_ingestion_service.py13logger = logging.getLogger(__name__)CODE
LOWapp/services/model_capability_service.py19logger = logging.getLogger(__name__)CODE
LOWapp/services/redis_progress_tracker.py8__all__ = [CODE
LOWapp/services/financial_data_service.py14logger = logging.getLogger(__name__)CODE
LOWapp/services/progress_log_handler.py8__all__ = [CODE
LOWapp/services/memory_state_manager.py14logger = logging.getLogger(__name__)CODE
LOWapp/services/historical_data_service.py15logger = logging.getLogger(__name__)CODE
LOWapp/services/database_screening_service.py13logger = logging.getLogger(__name__)CODE
LOWapp/services/database_service.py26logger = logging.getLogger(__name__)CODE
LOWapp/services/foreign_stock_service.py21logger = logging.getLogger(__name__)CODE
LOWapp/services/enhanced_screening_service.py15logger = logging.getLogger(__name__)CODE
LOWapp/services/config_service.py24logger = logging.getLogger(__name__)CODE
LOWapp/services/news_data_service.py15logger = logging.getLogger(__name__)CODE
LOWapp/services/internal_message_service.py15logger = logging.getLogger(__name__)CODE
LOWapp/services/quotes_service.py13logger = logging.getLogger(__name__)CODE
LOWapp/services/data_consistency_checker.py12logger = logging.getLogger(__name__)CODE
LOWapp/services/analysis_service.py43logger = logging.getLogger(__name__)CODE
LOWapp/services/websocket_manager.py12logger = logging.getLogger(__name__)CODE
LOWapp/services/database/backups.py22logger = logging.getLogger(__name__)CODE
LOWapp/services/database/__init__.py3__all__ = [CODE
LOWapp/services/progress/tracker.py348 def _update_steps_by_progress(self, progress_pct: float) -> None:CODE
104 more matches not shown…
Magic Placeholder Names31 hits · 160 pts
SeverityFileLineSnippetContext
HIGHapp/services/simple_analysis_service.py138 if model_api_key and model_api_key.strip() and model_api_key != "your-api-key":CODE
HIGHapp/services/simple_analysis_service.py143 if provider_api_key and provider_api_key.strip() and provider_api_key != "your-api-key":CODE
HIGHapp/services/simple_analysis_service.py203 if provider_api_key and provider_api_key.strip() and provider_api_key != "your-api-key":CODE
HIGHapp/services/simple_analysis_service.py262 if provider_api_key and provider_api_key.strip() and provider_api_key != "your-api-key":CODE
HIGHapp/services/simple_analysis_service.py309 if api_key and api_key.strip() and api_key != "your-api-key":CODE
HIGHtests/test_dashscope_adapter_fix.py286 print(" Windows: set DASHSCOPE_API_KEY=your_api_key")CODE
HIGHtests/test_dashscope_adapter_fix.py287 print(" Linux/Mac: export DASHSCOPE_API_KEY=your_api_key")CODE
HIGHtests/integration/test_dashscope_integration.py44 print("💡 请设置: set DASHSCOPE_API_KEY=your_api_key")CODE
HIGHtests/integration/test_dashscope_integration.py51 print("💡 请设置: set FINNHUB_API_KEY=your_api_key")CODE
HIGHdocs/google-ai-base-url-support.md147 google_api_key="YOUR_API_KEY"CODE
HIGHdocs/google-ai-base-url-support.md157 google_api_key="YOUR_API_KEY",CODE
HIGHdocs/configuration/UNIFIED_CONFIG.md135 api_key="your-api-key",CODE
HIGHdocs/configuration/UNIFIED_CONFIG.md170 api_key: 'your-api-key'CODE
HIGHdocs/configuration/API_KEY_PRIORITY.md141api_key = "your-api-key-here"CODE
HIGHdocs/configuration/dashscope-config.md229 dashscope.api_key = "your_api_key"CODE
HIGHdocs/configuration/migration/CONFIG_MIGRATION.md177 api_key: 'your-api-key',CODE
HIGHdocs/guides/config-management-guide.md95 "api_key": "sk-your-api-key-here",CODE
HIGHdocs/guides/stock_data_sdk_integration_guide.md438NEW_SDK_API_KEY=your_api_keyCODE
HIGH…dingagents/dataflows/providers/examples/example_sdk.py367 provider = ExampleSDKProvider(api_key="your_api_key")CODE
HIGH…dingagents/dataflows/providers/examples/example_sdk.py388 async with ExampleSDKProvider(api_key="your_api_key") as provider:CODE
HIGHexamples/demo_deepseek_analysis.py38 logger.info(f" DEEPSEEK_API_KEY=your_api_key")CODE
HIGHexamples/simple_analysis_demo.py29 logger.info(f"💡 在 .env 文件中添加: DASHSCOPE_API_KEY=your_api_key")CODE
HIGHexamples/dashscope_examples/demo_dashscope.py38 logger.info(f" Windows: set DASHSCOPE_API_KEY=your_api_key")CODE
HIGHexamples/dashscope_examples/demo_dashscope.py39 logger.info(f" Linux/Mac: export DASHSCOPE_API_KEY=your_api_key")CODE
HIGHexamples/dashscope_examples/demo_dashscope.py52 logger.info(f" Windows: set FINNHUB_API_KEY=your_api_key")CODE
HIGHexamples/dashscope_examples/demo_dashscope.py53 logger.info(f" Linux/Mac: export FINNHUB_API_KEY=your_api_key")CODE
HIGHscripts/test_google_api_connection.py26 print("请在 .env 文件中设置:GOOGLE_API_KEY=your-api-key")CODE
HIGHscripts/test_qianfan_raw.py214 print(" 方式1 (推荐): QIANFAN_API_KEY=your_api_key")CODE
HIGHscripts/test_api_key_validation.py31 ("your-api-key-here", False, "占位符 - your- 前缀 + -here 后缀"),CODE
HIGHscripts/test_google_api_with_proxy.py39 print("请在 .env 文件中设置:GOOGLE_API_KEY=your-api-key")CODE
HIGHscripts/test_api_key_priority.py42 ("your-api-key-here", False, "占位符 (your-)"),CODE
Structural Annotation Overuse62 hits · 131 pts
SeverityFileLineSnippetContext
LOWapp/routers/stock_sync.py378 # Step 2: 获取最新交易日和财务指标COMMENT
LOWapp/routers/stock_sync.py383 # Step 3: 构建文档(参考 basics_sync_service 的逻辑)COMMENT
LOWapp/routers/stock_sync.py356 # Step 1: 获取股票基础信息COMMENT
LOWapp/routers/stock_sync.py478 # Step 4: 更新数据库COMMENT
LOWapp/services/basics_sync_service.py194 # Step 0: Check if Tushare is enabledCOMMENT
LOWapp/services/basics_sync_service.py206 # Step 1: Fetch stock basic list from Tushare (blocking -> thread)COMMENT
LOWapp/services/basics_sync_service.py211 # Step 2: Determine latest trade_date and fetch daily_basic for financial metrics (blocking -> thread)COMMENT
LOWapp/services/basics_sync_service.py219 # Step 3: Upsert into MongoDB (batched bulk writes)COMMENT
LOWapp/services/multi_source_basics_sync_service.py164 # Step 1: 获取数据源管理器COMMENT
LOWapp/services/multi_source_basics_sync_service.py178 # Step 2: 尝试从数据源获取股票列表COMMENT
LOWapp/services/multi_source_basics_sync_service.py188 # Step 3: 获取最新交易日期和财务数据COMMENT
LOWapp/services/multi_source_basics_sync_service.py207 # Step 5: 处理和更新数据(分批处理)COMMENT
LOWapp/services/multi_source_basics_sync_service.py308 # Step 7: 更新统计信息COMMENT
LOWdocs/fixes/data-source/fix_multi_source_basics_sync.md109# Step 0: Check if Tushare is enabledCOMMENT
LOW…/design/v1.0.1/prompt_template_implementation_guide.md5### Step 1: 创建模版存储结构COMMENT
LOW…/design/v1.0.1/prompt_template_implementation_guide.md81### Step 2: 创建模版管理器COMMENT
LOW…/design/v1.0.1/prompt_template_implementation_guide.md92### Step 3: 分析师集成COMMENT
LOW…/design/v1.0.1/prompt_template_implementation_guide.md112### Step 4: Web API 实现COMMENT
LOW…/design/v1.0.1/prompt_template_implementation_guide.md124### Step 5: 前端集成COMMENT
LOWdocs/design/v1.0.1/FINAL_DESIGN_NOTES.md145### Step 1: 创建新集合COMMENT
LOWdocs/design/v1.0.1/FINAL_DESIGN_NOTES.md150### Step 2: 创建索引COMMENT
LOWdocs/design/v1.0.1/FINAL_DESIGN_NOTES.md155### Step 3: 导入系统模板COMMENT
LOWdocs/design/v1.0.1/FINAL_DESIGN_NOTES.md160### Step 4: 创建默认偏好COMMENT
LOWdocs/design/v1.0.1/FINAL_DESIGN_NOTES.md165### Step 5: 创建默认配置COMMENT
LOWdocs/design/v1.0.1/IMPLEMENTATION_IN_APP_DIRECTORY.md315### Step 1: 创建模型文件COMMENT
LOWdocs/design/v1.0.1/IMPLEMENTATION_IN_APP_DIRECTORY.md323### Step 2: 创建服务文件COMMENT
LOWdocs/design/v1.0.1/IMPLEMENTATION_IN_APP_DIRECTORY.md331### Step 3: 创建路由文件COMMENT
LOWdocs/design/v1.0.1/IMPLEMENTATION_IN_APP_DIRECTORY.md339### Step 4: 在main.py中注册路由COMMENT
LOWdocs/design/v1.0.1/IMPLEMENTATION_IN_APP_DIRECTORY.md349### Step 5: 创建数据库集合和索引COMMENT
LOWdocs/design/v1.0.1/INTEGRATION_WITH_EXISTING_SYSTEM.md240### Step 1: 创建新集合COMMENT
LOWdocs/design/v1.0.1/INTEGRATION_WITH_EXISTING_SYSTEM.md250### Step 2: 创建索引COMMENT
LOWdocs/design/v1.0.1/INTEGRATION_WITH_EXISTING_SYSTEM.md256### Step 3: 创建系统模板COMMENT
LOWdocs/design/v1.0.1/INTEGRATION_WITH_EXISTING_SYSTEM.md262### Step 4: 创建默认偏好COMMENT
LOWdocs/design/v1.0.1/INTEGRATION_WITH_EXISTING_SYSTEM.md268### Step 5: 创建默认配置COMMENT
LOWdocs/analysis/pe-pb-data-update-analysis.md62 # Step 1: 获取股票基本信息列表COMMENT
LOWdocs/analysis/pe-pb-data-update-analysis.md65 # Step 2: 获取最近交易日COMMENT
LOWdocs/analysis/pe-pb-data-update-analysis.md68 # Step 3: 获取该交易日的 PE/PB 等指标COMMENT
LOWdocs/analysis/pe-pb-data-update-analysis.md74 # Step 4: 更新到 MongoDB stock_basic_info 集合COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md41# Step 1: 确保feature/tushare-integration包含所有v0.1.6功能COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md45# Step 2: 合并到develop分支COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md49# Step 3: 合并到main分支并打标签COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md55# Step 4: 清理功能分支COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md64# Step 1: 从main创建新的功能分支COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md69# Step 2: 开发新功能COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md72# Step 3: 定期同步main分支COMMENT
LOWdocs/development/BRANCH_MANAGEMENT_STRATEGY.md78# Step 4: 完成后合并回mainCOMMENT
LOWdocs/integration/dataflows_integration_plan.md246### Step 1: 准备阶段COMMENT
LOWdocs/integration/dataflows_integration_plan.md251### Step 2: 核心整合COMMENT
LOWdocs/integration/dataflows_integration_plan.md256### Step 3: 接口扩展COMMENT
LOWdocs/integration/dataflows_integration_plan.md261### Step 4: 测试验证COMMENT
LOWdocs/integration/dataflows_integration_plan.md266### Step 5: 部署上线COMMENT
LOWdocs/deployment/stop-services-guide.md254#### Step 1: Stop Using PID File (Graceful Stop)COMMENT
LOWdocs/deployment/stop-services-guide.md263#### Step 2: Force Stop All Related Processes (Fallback)COMMENT
LOWdocs/deployment/stop-services-guide.md272#### Step 3: Cleanup Temporary FilesCOMMENT
LOWdocs/deployment/stop-services-guide.md280#### Step 4: Verify Service StatusCOMMENT
LOWcli/main.py560 # Step 1: Market selectionCOMMENT
LOWcli/main.py570 # Step 2: Ticker symbolCOMMENT
LOWcli/main.py580 # Step 3: Analysis dateCOMMENT
LOWcli/main.py603 # Step 5: Research depthCOMMENT
LOWcli/main.py612 # Step 6: LLM ProviderCOMMENT
2 more matches not shown…
Cross-Language Confusion14 hits · 65 pts
SeverityFileLineSnippetContext
HIGHweb/app.py574 const newUrl = currentUrl.origin + currentUrl.pathname + '?' + existingParams.toString();CODE
HIGHweb/utils/auth_manager.py82 if (!authData) return null;CODE
HIGHweb/utils/auth_manager.py92 return null;CODE
HIGHweb/utils/auth_manager.py103 return null;CODE
HIGHweb/components/sidebar.py47 console.log('Loaded from localStorage:', key, value || defaultValue);CODE
HIGHweb/components/sidebar.py48 return value || defaultValue;CODE
HIGHscripts/check_old_mongodb_volume.py139 if (config.llm_configs && config.llm_configs.length > 0) {{CODE
HIGHscripts/check_old_mongodb_volume.py148 if (config.data_source_configs && config.data_source_configs.length > 0) {{CODE
HIGHscripts/fix_docker_logging.py258 print("2. 重启容器: docker-compose down && docker-compose up -d")STRING
HIGHscripts/init_system_data.py327 logger.info("2. 启动前端服务: cd frontend && npm run dev")CODE
HIGHscripts/fix_logging_config_error.py270 print("2. 重启容器: docker-compose down && docker-compose up -d")STRING
HIGHscripts/verify_docker_logs.py234 print(" 2. 重启容器: docker-compose down && docker-compose up -d")CODE
HIGHscripts/git/check_branch_overlap.py199git checkout feature/akshare-integration 2>/dev/null && git checkout -b backup/akshare-integration-$(date +%Y%m%d)CODE
HIGHscripts/git/check_branch_overlap.py200git checkout feature/akshare-integration-clean 2>/dev/null && git checkout -b backup/akshare-integration-clean-$(date +%CODE
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHapp/worker/us_data_service.py0标准化股票信息格式 args: stock_info: 原始股票信息 source: 数据源 returns: dict: 标准化后的股票信息STRING
HIGHapp/worker/hk_data_service.py0标准化股票信息格式 args: stock_info: 原始股票信息 source: 数据源 returns: dict: 标准化后的股票信息STRING
HIGHapp/worker/us_sync_service.py0标准化股票信息格式 args: stock_info: 原始股票信息 source: 数据源 returns: dict: 标准化后的股票信息STRING
HIGHapp/worker/hk_sync_service.py0标准化股票信息格式 args: stock_info: 原始股票信息 source: 数据源 returns: dict: 标准化后的股票信息STRING
HIGHapp/worker/baostock_sync_service.py0获取最后同步日期 args: symbol: 股票代码,如果提供则返回该股票的最后日期+1天 returns: 日期字符串 (yyyy-mm-dd)STRING
HIGHapp/worker/tushare_sync_service.py0获取最后同步日期 args: symbol: 股票代码,如果提供则返回该股票的最后日期+1天 returns: 日期字符串 (yyyy-mm-dd)STRING
HIGHapp/worker/akshare_sync_service.py0获取最后同步日期 args: symbol: 股票代码,如果提供则返回该股票的最后日期+1天 returns: 日期字符串 (yyyy-mm-dd)STRING
HIGHapp/services/news_data_service.py0转换 mongodb objectid 为字符串,避免 json 序列化错误 args: data: 单个文档或文档列表 returns: 转换后的数据STRING
HIGHapp/services/internal_message_service.py0转换 mongodb objectid 为字符串,避免 json 序列化错误 args: data: 单个文档或文档列表 returns: 转换后的数据STRING
HIGHdocs/fixes/mongodb_objectid_serialization_fix.md0转换 mongodb objectid 为字符串,避免 json 序列化错误 args: data: 单个文档或文档列表 returns: 转换后的数据STRING
Verbosity Indicators20 hits · 40 pts
SeverityFileLineSnippetContext
LOWapp/routers/stock_sync.py378 # Step 2: 获取最新交易日和财务指标COMMENT
LOWapp/routers/stock_sync.py383 # Step 3: 构建文档(参考 basics_sync_service 的逻辑)COMMENT
LOWapp/routers/stock_sync.py356 # Step 1: 获取股票基础信息COMMENT
LOWapp/routers/stock_sync.py478 # Step 4: 更新数据库COMMENT
LOWapp/services/basics_sync_service.py194 # Step 0: Check if Tushare is enabledCOMMENT
LOWapp/services/basics_sync_service.py206 # Step 1: Fetch stock basic list from Tushare (blocking -> thread)COMMENT
LOWapp/services/basics_sync_service.py211 # Step 2: Determine latest trade_date and fetch daily_basic for financial metrics (blocking -> thread)COMMENT
LOWapp/services/basics_sync_service.py219 # Step 3: Upsert into MongoDB (batched bulk writes)COMMENT
LOWapp/services/multi_source_basics_sync_service.py164 # Step 1: 获取数据源管理器COMMENT
LOWapp/services/multi_source_basics_sync_service.py178 # Step 2: 尝试从数据源获取股票列表COMMENT
LOWapp/services/multi_source_basics_sync_service.py188 # Step 3: 获取最新交易日期和财务数据COMMENT
LOWapp/services/multi_source_basics_sync_service.py207 # Step 5: 处理和更新数据(分批处理)COMMENT
LOWapp/services/multi_source_basics_sync_service.py308 # Step 7: 更新统计信息COMMENT
LOWcli/main.py560 # Step 1: Market selectionCOMMENT
LOWcli/main.py570 # Step 2: Ticker symbolCOMMENT
LOWcli/main.py580 # Step 3: Analysis dateCOMMENT
LOWcli/main.py603 # Step 5: Research depthCOMMENT
LOWcli/main.py612 # Step 6: LLM ProviderCOMMENT
LOWcli/main.py621 # Step 7: Thinking agentsCOMMENT
LOWcli/main.py591 # Step 4: Select analystsCOMMENT
Over-Commented Block26 hits · 24 pts
SeverityFileLineSnippetContext
LOWdocker-compose.hub.nginx.arm.yml1version: '3.8'COMMENT
LOWdocker-compose.hub.nginx.yml1version: '3.8'COMMENT
LOWrequirements-lock.txt1# ==================== 锁定版本依赖文件 ====================COMMENT
LOWapp/routers/stock_sync.py281 if hist_result.get("success_count", 0) > 0:COMMENT
LOWapp/routers/analysis.py921# user: dict = Depends(get_current_user),COMMENT
LOWapp/worker/tushare_sync_service.py401 # Dict[symbol, quote_data]COMMENT
LOWdocs/design/v1.0.1/prompt_template_usage_examples.md61 print("---")COMMENT
LOWdocs/design/v1.0.1/prompt_template_usage_examples.md121print(rendered['system_prompt'])COMMENT
LOWdocs/releases/upgrade-to-v0.1.13-preview.md201### 问题 2: Google AI包导入失败COMMENT
LOWdocs/configuration/docker-config.md221COMMENT
LOWdocs/configuration/quotes_ingestion_config.md61# - 付费用户建议: 5-60 秒COMMENT
LOW…/integration/providers/tushare/tdx_removal_complete.md121#### 1. 检查环境变量COMMENT
LOWdocs/features/aggregator/CHANGELOG_AGGREGATOR.md201### 使用聚合渠道模型COMMENT
LOWdocs/blog/2025-10-24-realtime-quotes-optimization.md401# 📈 实时行情入库服务COMMENT
LOWdocs/guides/report-export-guide.md61## 📊 使用指南COMMENT
LOWdocs/guides/report-export-guide.md81# 1. 滚动到页面底部COMMENT
LOW…cs/guides/tushare_unified/data_initialization_guide.md61COMMENT
LOWdocs/deployment/SIMPLE_DEPLOYMENT_GUIDE.md41COMMENT
LOWdocs/deployment/demo/deploy_demo_with_docker.md621# 找到 DASHSCOPE_API_KEY= 这一行COMMENT
LOWdocs/deployment/demo/deploy_demo_with_docker.md661cd ~/tradingagents-demoCOMMENT
LOWdocs/deployment/demo/deploy_demo_with_docker.md681# 将等号后面改为你的 API Key,例如:DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxCOMMENT
LOWdocs/deployment/demo/deploy_demo_with_docker.md721# 3. 下载环境配置文件COMMENT
LOWtradingagents/config/runtime_settings.py41 # 临时解决方案:完全禁用动态配置获取,避免事件循环冲突COMMENT
LOWtradingagents/config/runtime_settings.py61 # # 第三次检查:在调用asyncio.run之前再次确认COMMENT
LOWscripts/smart_start.sh1#!/bin/bashCOMMENT
LOWscripts/deploy_demo.sh1#!/bin/bashCOMMENT
Self-Referential Comments4 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMmain.py9# Create a custom configCOMMENT
MEDIUMapp/worker.py106 # Define a thread-safe callback to publish progress from worker threadCOMMENT
MEDIUMcli/main.py552 # Create a boxed questionnaire for each stepCOMMENT
MEDIUMcli/main.py152# Create a deque to store recent messages with a maximum lengthCOMMENT
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHdocs/design/v1.0.1/prompt_template_technical_spec.md25 加载指定的模版 Args: analyst_type: 分析师类型 (fundamentals/market/news/social) teSTRING
HIGH…gagents/dataflows/providers/us/alpha_vantage_common.py167 发起 Alpha Vantage API 请求 Args: function: API 函数名(如 NEWS_SENTIMENT, OVERVIEW 等) params: 请求参数STRING
AI Structural Patterns10 hits · 9 pts
SeverityFileLineSnippetContext
LOWapp/routers/analysis.py985CODE
LOWapp/routers/reports.py120CODE
LOWapp/routers/operation_logs.py26CODE
LOWapp/services/enhanced_screening_service.py203CODE
LOWweb/components/analysis_results.py125CODE
LOWtests/test_asyncio_thread_pool_fix.py36CODE
LOWtradingagents/graph/reflection.py75CODE
LOWtradingagents/utils/stock_validator.py19CODE
LOWtradingagents/dataflows/providers/us/optimized.py321CODE
LOWtradingagents/dataflows/news/google_news.py41CODE
Redundant / Tautological Comments6 hits · 9 pts
SeverityFileLineSnippetContext
LOWapp/routers/sse.py141 # Check if batch belongs to userCOMMENT
LOWtests/config/test_logging_json.py20 # Set CWD to tempCOMMENT
LOWtradingagents/dataflows/interface.py380 # Check if there are any available reports; if not, return a notificationCOMMENT
LOWtradingagents/dataflows/interface.py427 # Check if there are any available reports; if not, return a notificationCOMMENT
LOWtradingagents/dataflows/interface.py474 # Check if there are any available reports; if not, return a notificationCOMMENT
LOWtradingagents/dataflows/interface.py877 # Check if data is emptyCOMMENT
Fake / Example Data7 hits · 7 pts
SeverityFileLineSnippetContext
LOWfrontend/src/components/DeepModelSelector.vue7 :placeholder="placeholder"CODE
LOWfrontend/src/components/Global/MarketSelector.vue4 :placeholder="placeholder"CODE
LOWfrontend/src/views/Settings/index.vue536 email: authStore.user?.email || 'admin@example.com',CODE
LOWfrontend/src/views/Settings/index.vue587 generalSettings.value.email = newUser.email || 'admin@example.com'CODE
LOWdocs/security/auth_system_improvement.md79 "email": "user@example.com",CODE
LOWdocs/blog/green-version-backup-restore-upgrade.md1174 Send-MailMessage -To "admin@example.com" `CODE
LOWdocs/deployment/database/export-sanitization-guide.md117 "email": "admin@example.com",CODE
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…gagents/dataflows/providers/us/alpha_vantage_common.py140CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtradingagents/agents/utils/memory.py659 # Example usageCOMMENT
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
MEDIUMtradingagents/dataflows/optimized_china_data.py568 else: # detailed, comprehensiveSTRING