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

256 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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分析报告
- 支持长文本的自动换行
## 配置要求
### 环境变量
```bash
GEMINI_API_KEY=your_gemini_api_key_here
```
### AI模型配置
```python
{
"model": "gemini-pro",
"temperature": 0.7,
"top_p": 0.8,
"top_k": 40,
"max_output_tokens": 8192,
"timeout": 60
}
```
## 使用流程
### 1. 报告生成触发
当用户请求生成股票报告时,系统会按顺序执行分析模块:
```
财务数据获取 → 业务信息分析 → 基本面分析 → ...
```
### 2. 业务信息分析执行
```python
# 在报告生成器中调用
content = await self._execute_business_info_module(
report.symbol, report.market, ai_analyzer, analysis_context
)
```
### 3. 前端显示
```typescript
// 在AnalysisModule组件中渲染
if (module.moduleType === "business_info") {
return renderBusinessInfoContent(module.content);
}
```
## 数据流
```
输入: 股票代码 + 市场 + 财务数据
提示词生成 (根据市场调整)
Gemini API调用 (带重试机制)
响应解析 (结构化提取)
质量评估 (完整度检查)
数据库存储 (JSON格式)
前端显示 (结构化渲染)
```
## 输出格式
### 数据库存储格式
```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调用测试
- 内容质量评估测试
- 结果保存和验证
### 运行测试
```bash
# 设置API密钥
export GEMINI_API_KEY=your_api_key
# 运行测试
python backend/test_business_info.py
```
## 监控和日志
### 日志记录
- 分析开始和完成时间
- 内容质量警告(质量分数 < 0.3
- API调用错误和重试
- 响应验证失败
### 性能指标
- 分析耗时统计
- API响应时间
- 内容长度和完整度
- 错误率统计
## 扩展性
### 支持新市场
`_build_business_info_prompt()` 方法中添加新的市场上下文
```python
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**: 优化提示词模板和错误处理
## 相关文档
- [AI分析服务文档](./AI_ANALYZER.md)
- [报告生成器文档](./REPORT_GENERATOR.md)
- [前端组件文档](../frontend/COMPONENTS.md)