Fundamental_Analysis/backend/BUSINESS_INFO_MODULE.md
2025-10-21 14:30:08 +08:00

6.1 KiB
Raw Blame History

AI业务信息分析模块实现文档

概述

AI业务信息分析模块是基本面选股系统的核心组件之一负责使用Google Gemini AI模型对股票进行全面的业务信息分析。该模块已完全实现并集成到报告生成流程中。

功能特性

1. 全面的业务分析

  • 公司概览: 基本信息、历史背景、市场地位
  • 主营业务分析: 核心产品服务、业务模式、收入构成
  • 发展历程: 重要里程碑、业务转型、扩张历史
  • 核心团队: 管理层背景、团队稳定性、治理结构
  • 供应链分析: 供应商客户、风险优势、依赖性分析
  • 销售模式: 销售渠道、市场策略、客户群体
  • 未来展望: 发展战略、市场机遇、面临挑战

2. 智能提示词生成

  • 根据不同市场(中国、香港、美国、日本)调整分析重点
  • 结合财务数据提供上下文信息
  • 结构化的分析框架确保内容完整性
  • 明确的输出格式要求

3. 内容质量评估

  • 自动评估分析内容的完整度
  • 计算质量分数0-1范围
  • 检查各章节的存在性和详细程度
  • 提供内容统计信息

4. 错误处理和重试机制

  • 输入参数验证
  • API调用重试机制最多3次
  • 响应内容验证
  • 详细的错误信息记录

技术实现

后端实现

核心类: GeminiAnalyzer

位置: backend/app/services/ai_analyzer.py

主要方法:

  • analyze_business_info(): 执行业务信息分析
  • _build_business_info_prompt(): 构建分析提示词
  • _parse_business_info_response(): 解析AI响应
  • _assess_content_quality(): 评估内容质量

集成点: ReportGenerator

位置: backend/app/services/report_generator.py

  • 在报告生成流程中的第3步执行
  • 依赖财务数据作为输入上下文
  • 结果传递给后续分析模块

前端实现

组件: AnalysisModule

位置: frontend/src/components/AnalysisModule.tsx

特性:

  • 专门的业务信息内容渲染函数
  • 结构化的章节显示(带图标和边框)
  • 可折叠的完整分析报告
  • 响应式设计和加载状态

显示格式

  • 每个章节独立显示,带有图标标识
  • 左侧蓝色边框突出重要内容
  • 可展开查看完整AI分析报告
  • 支持长文本的自动换行

配置要求

环境变量

GEMINI_API_KEY=your_gemini_api_key_here

AI模型配置

{
    "model": "gemini-pro",
    "temperature": 0.7,
    "top_p": 0.8,
    "top_k": 40,
    "max_output_tokens": 8192,
    "timeout": 60
}

使用流程

1. 报告生成触发

当用户请求生成股票报告时,系统会按顺序执行分析模块:

财务数据获取 → 业务信息分析 → 基本面分析 → ...

2. 业务信息分析执行

# 在报告生成器中调用
content = await self._execute_business_info_module(
    report.symbol, report.market, ai_analyzer, analysis_context
)

3. 前端显示

// 在AnalysisModule组件中渲染
if (module.moduleType === "business_info") {
    return renderBusinessInfoContent(module.content);
}

数据流

输入: 股票代码 + 市场 + 财务数据
  ↓
提示词生成 (根据市场调整)
  ↓
Gemini API调用 (带重试机制)
  ↓
响应解析 (结构化提取)
  ↓
质量评估 (完整度检查)
  ↓
数据库存储 (JSON格式)
  ↓
前端显示 (结构化渲染)

输出格式

数据库存储格式

{
  "company_overview": "公司概览内容...",
  "main_business": "主营业务分析内容...",
  "development_history": "发展历程内容...",
  "core_team": "核心团队内容...",
  "supply_chain": "供应链分析内容...",
  "sales_model": "销售模式内容...",
  "future_outlook": "未来展望内容...",
  "full_analysis": "完整AI分析报告...",
  "analysis_timestamp": "2024-01-01T12:00:00",
  "content_quality": {
    "word_count": 1500,
    "sections_found": 7,
    "total_sections": 7,
    "completeness_ratio": 1.0,
    "detail_level": "详细",
    "quality_score": 0.85
  }
}

测试

测试脚本

位置: backend/test_business_info.py

功能:

  • 提示词生成测试
  • 实际API调用测试
  • 内容质量评估测试
  • 结果保存和验证

运行测试

# 设置API密钥
export GEMINI_API_KEY=your_api_key

# 运行测试
python backend/test_business_info.py

监控和日志

日志记录

  • 分析开始和完成时间
  • 内容质量警告(质量分数 < 0.3
  • API调用错误和重试
  • 响应验证失败

性能指标

  • 分析耗时统计
  • API响应时间
  • 内容长度和完整度
  • 错误率统计

扩展性

支持新市场

_build_business_info_prompt() 方法中添加新的市场上下文:

market_context = {
    "中国": "中国A股市场",
    "香港": "香港联交所", 
    "美国": "美国证券市场",
    "日本": "日本证券市场",
    "新市场": "新市场描述"  # 添加新市场
}.get(market, market)

自定义分析维度

在提示词模板中添加新的分析章节,并在解析方法中相应更新。

多语言支持

可以根据市场参数调整提示词语言,支持英文、日文等其他语言的分析。

故障排除

常见问题

  1. API密钥未配置

    • 检查环境变量 GEMINI_API_KEY
    • 验证密钥有效性
  2. 分析内容质量低

    • 检查财务数据的完整性
    • 调整提示词模板
    • 增加重试次数
  3. 响应时间过长

    • 调整超时设置
    • 优化提示词长度
    • 检查网络连接
  4. 内容解析失败

    • 检查AI响应格式
    • 更新章节提取逻辑
    • 添加容错处理

调试方法

  1. 启用详细日志记录
  2. 使用测试脚本验证功能
  3. 检查数据库中的存储内容
  4. 监控API调用状态

版本历史

  • v1.0: 基础业务信息分析功能
  • v1.1: 添加内容质量评估
  • v1.2: 增强前端显示格式
  • v1.3: 优化提示词模板和错误处理

相关文档