256 lines
6.1 KiB
Markdown
256 lines
6.1 KiB
Markdown
# 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) |