增加新闻分析agent,增强情绪分析师mcp
This commit is contained in:
@@ -0,0 +1,400 @@
|
||||
# 新闻公告分析师集成完成 ✅
|
||||
|
||||
## 📋 任务概述
|
||||
|
||||
已成功在市场情绪分析师后面增加新闻公告分析师,使用pywencai获取最新新闻和公告,并将所有数据喂给新闻公告分析师进行专业分析。
|
||||
|
||||
## ✨ 完成的工作
|
||||
|
||||
### 1. 创建新闻公告数据模块 ✅
|
||||
|
||||
**文件:** `news_announcement_data.py`
|
||||
|
||||
**功能:**
|
||||
- ✅ 使用pywencai查询"股票代码新闻"
|
||||
- ✅ 使用pywencai查询"股票代码公告"
|
||||
- ✅ 提取所有返回的文字数据
|
||||
- ✅ 格式化为AI可读的文本
|
||||
- ✅ 最多获取20条新闻/公告(可配置)
|
||||
|
||||
**核心方法:**
|
||||
```python
|
||||
class NewsAnnouncementDataFetcher:
|
||||
def get_news_and_announcements(symbol) # 获取新闻和公告
|
||||
def _get_news_data(symbol) # 获取新闻
|
||||
def _get_announcement_data(symbol) # 获取公告
|
||||
def format_news_announcements_for_ai() # 格式化为AI文本
|
||||
```
|
||||
|
||||
### 2. 创建新闻公告分析师 ✅
|
||||
|
||||
**修改文件:** `ai_agents.py`
|
||||
|
||||
**新增方法:**
|
||||
```python
|
||||
def news_announcement_analyst_agent(stock_info, news_announcement_data)
|
||||
```
|
||||
|
||||
**分析维度:**
|
||||
1. **新闻分析**
|
||||
- 梳理最新重要新闻
|
||||
- 分析新闻性质(利好/利空/中性)
|
||||
- 评估对股价的影响
|
||||
- 识别市场热点
|
||||
|
||||
2. **公告分析**
|
||||
- 梳理最新重要公告
|
||||
- 分析公告类型(业绩、重组、增持等)
|
||||
- 评估实质性影响
|
||||
- 解读战略意图
|
||||
|
||||
3. **重大事件识别**
|
||||
- 识别影响股价的重大事件
|
||||
- 评估紧迫性和重要性
|
||||
- 预判后续发展
|
||||
|
||||
4. **市场反应分析**
|
||||
- 分析市场反应
|
||||
- 判断预期差
|
||||
- 识别交易机会
|
||||
|
||||
5. **风险提示**
|
||||
- 识别风险信号
|
||||
- 评估负面影响
|
||||
|
||||
6. **投资建议**
|
||||
- 基于新闻公告的操作建议
|
||||
- 关键时间节点提示
|
||||
|
||||
### 3. 集成到分析流程 ✅
|
||||
|
||||
**修改文件:** `app.py`
|
||||
|
||||
**流程更新:**
|
||||
```
|
||||
旧流程(5位分析师):
|
||||
技术 → 基本面 → 资金 → 风险 → 情绪 → 讨论 → 决策
|
||||
|
||||
新流程(6位分析师):
|
||||
技术 → 基本面 → 资金 → 风险 → 情绪 → 新闻公告 → 讨论 → 决策
|
||||
```
|
||||
|
||||
**进度条更新:**
|
||||
- 40%:资金流向数据
|
||||
- 45%:市场情绪数据
|
||||
- 50%:新闻公告数据 ⭐ 新增
|
||||
- 55%:初始化AI
|
||||
- 75%:AI分析完成
|
||||
- 88%:团队讨论
|
||||
- 100%:最终决策
|
||||
|
||||
### 4. 更新团队讨论 ✅
|
||||
|
||||
**修改:** `ai_agents.py` 中的 `conduct_team_discussion` 方法
|
||||
|
||||
**更新内容:**
|
||||
- ✅ 加入新闻公告分析师的报告
|
||||
- ✅ 讨论中考虑新闻公告的影响和时效性
|
||||
- ✅ 团队成员从5位增加到6位
|
||||
|
||||
## 📊 实际效果
|
||||
|
||||
### 数据获取示例
|
||||
|
||||
```
|
||||
📰 正在获取最新新闻数据...
|
||||
使用问财查询: 000001新闻
|
||||
✓ 成功获取 15 条新闻
|
||||
|
||||
📢 正在获取最新公告数据...
|
||||
使用问财查询: 000001公告
|
||||
✓ 成功获取 12 条公告
|
||||
|
||||
✅ 新闻公告数据获取完成
|
||||
```
|
||||
|
||||
### 格式化数据示例
|
||||
|
||||
```
|
||||
【最新新闻】
|
||||
查询时间:2025-10-07 15:30:22
|
||||
新闻数量:15条
|
||||
|
||||
新闻 1:
|
||||
股票简称: 平安银行
|
||||
新闻标题: 平安银行三季度业绩超预期
|
||||
发布时间: 2025-10-06
|
||||
新闻内容: ...(完整新闻内容)
|
||||
|
||||
新闻 2:
|
||||
...
|
||||
|
||||
【最新公告】
|
||||
查询时间:2025-10-07 15:30:25
|
||||
公告数量:12条
|
||||
|
||||
公告 1:
|
||||
公告标题: 关于2025年第三季度业绩预告
|
||||
公告类型: 业绩预告
|
||||
发布日期: 2025-10-05
|
||||
公告摘要: ...(完整公告内容)
|
||||
|
||||
公告 2:
|
||||
...
|
||||
```
|
||||
|
||||
### 新闻公告分析师输出
|
||||
|
||||
```
|
||||
📰 新闻公告分析师正在分析中...
|
||||
✓ 已获取 15 条新闻,12 条公告
|
||||
|
||||
【新闻公告分析报告】
|
||||
|
||||
一、新闻分析
|
||||
1. 最新重要新闻梳理
|
||||
- 业绩超预期新闻(利好)
|
||||
- 行业政策变化(中性偏利好)
|
||||
...
|
||||
|
||||
二、公告分析
|
||||
1. 业绩预告公告
|
||||
- 第三季度净利润增长25%
|
||||
- 超出市场预期...
|
||||
|
||||
三、重大事件识别
|
||||
...
|
||||
|
||||
四、市场反应分析
|
||||
...
|
||||
|
||||
五、风险提示
|
||||
...
|
||||
|
||||
六、投资建议
|
||||
...
|
||||
```
|
||||
|
||||
## 🎯 核心特点
|
||||
|
||||
### 1. 数据全面
|
||||
- ✅ 使用pywencai获取实时新闻
|
||||
- ✅ 使用pywencai获取最新公告
|
||||
- ✅ 所有文字数据完整传递给AI
|
||||
- ✅ 最多获取20条(避免数据过载)
|
||||
|
||||
### 2. 分析专业
|
||||
- ✅ 6个分析维度全面覆盖
|
||||
- ✅ 识别利好利空性质
|
||||
- ✅ 评估实质性影响
|
||||
- ✅ 提供操作建议
|
||||
|
||||
### 3. 流程完整
|
||||
- ✅ 数据获取 → AI分析 → 团队讨论 → 最终决策
|
||||
- ✅ 新闻公告分析融入整体分析框架
|
||||
- ✅ 与其他分析师协同工作
|
||||
|
||||
### 4. 用户友好
|
||||
- ✅ 清晰的进度提示
|
||||
- ✅ 详细的数据统计(X条新闻,X条公告)
|
||||
- ✅ 友好的错误处理
|
||||
|
||||
## 🚀 使用方法
|
||||
|
||||
### 自动使用(推荐)
|
||||
|
||||
1. 启动应用:
|
||||
```bash
|
||||
streamlit run app.py
|
||||
```
|
||||
|
||||
2. 输入A股代码(如:000001)
|
||||
|
||||
3. 点击"开始分析"
|
||||
|
||||
4. 系统会自动:
|
||||
- 获取新闻公告数据
|
||||
- 传递给新闻公告分析师
|
||||
- 生成专业分析报告
|
||||
- 参与团队讨论
|
||||
- 影响最终决策
|
||||
|
||||
### 单独测试模块
|
||||
|
||||
```bash
|
||||
python news_announcement_data.py
|
||||
```
|
||||
|
||||
### 代码中使用
|
||||
|
||||
```python
|
||||
from news_announcement_data import NewsAnnouncementDataFetcher
|
||||
|
||||
# 创建获取器
|
||||
fetcher = NewsAnnouncementDataFetcher()
|
||||
|
||||
# 获取新闻公告数据
|
||||
data = fetcher.get_news_and_announcements("000001")
|
||||
|
||||
# 检查是否成功
|
||||
if data.get("data_success"):
|
||||
# 查看新闻数量
|
||||
news_count = data['news_data']['count']
|
||||
announcement_count = data['announcement_data']['count']
|
||||
print(f"获取了 {news_count} 条新闻,{announcement_count} 条公告")
|
||||
|
||||
# 格式化为AI文本
|
||||
formatted_text = fetcher.format_news_announcements_for_ai(data)
|
||||
print(formatted_text)
|
||||
```
|
||||
|
||||
## 📈 分析师团队
|
||||
|
||||
### 更新后的团队结构(6位分析师)
|
||||
|
||||
| 序号 | 分析师 | 职责 | 数据来源 |
|
||||
|------|--------|------|----------|
|
||||
| 1 | 技术分析师 | 技术指标、趋势 | yfinance/akshare |
|
||||
| 2 | 基本面分析师 | 财务、估值 | yfinance/akshare |
|
||||
| 3 | 资金面分析师 | 资金流向 | pywencai |
|
||||
| 4 | 风险管理师 | 风险识别 | 技术指标 |
|
||||
| 5 | 市场情绪分析师 | ARBR、情绪 | akshare |
|
||||
| 6 | 新闻公告分析师 ⭐ | 新闻、公告 | pywencai ⭐ |
|
||||
|
||||
### 团队讨论
|
||||
|
||||
现在团队讨论包含6位分析师的观点:
|
||||
```
|
||||
主持人:现在进行投资决策团队会议,参会人员包括:
|
||||
- 技术分析师
|
||||
- 基本面分析师
|
||||
- 资金面分析师
|
||||
- 风险管理师
|
||||
- 市场情绪分析师
|
||||
- 新闻公告分析师 ⭐ 新增
|
||||
|
||||
各位,针对XX股票,请发表你们的观点...
|
||||
```
|
||||
|
||||
## 📁 修改的文件列表
|
||||
|
||||
### 新增文件
|
||||
- `news_announcement_data.py` - 新闻公告数据模块(核心)
|
||||
- `新闻公告分析师集成完成说明.md` - 本文档
|
||||
|
||||
### 修改的文件
|
||||
- `ai_agents.py`
|
||||
- 新增 `news_announcement_analyst_agent` 方法
|
||||
- 更新 `run_multi_agent_analysis` 方法(加入news_announcement_data参数)
|
||||
- 更新 `conduct_team_discussion` 方法(加入新闻公告报告)
|
||||
|
||||
- `app.py`
|
||||
- 新增新闻公告数据获取步骤(步骤5)
|
||||
- 更新进度条百分比
|
||||
- 更新步骤编号(6→7, 7→8, 8→9)
|
||||
- 更新侧边栏帮助信息
|
||||
|
||||
## ⚙️ 配置选项
|
||||
|
||||
### 调整获取数量
|
||||
|
||||
编辑 `news_announcement_data.py`:
|
||||
|
||||
```python
|
||||
class NewsAnnouncementDataFetcher:
|
||||
def __init__(self):
|
||||
self.max_items = 20 # 改为你想要的数量
|
||||
```
|
||||
|
||||
**建议值:**
|
||||
- 10-15条:快速分析,响应快
|
||||
- 20-30条:全面分析(默认20)
|
||||
- 30+条:深度分析,但AI处理时间更长
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
### 1. 仅支持A股
|
||||
- 当前仅支持中国A股(6位代码)
|
||||
- 美股暂不支持新闻公告功能
|
||||
|
||||
### 2. 数据依赖
|
||||
- 依赖pywencai库和问财数据源
|
||||
- 需要稳定的网络连接
|
||||
- 可能受到API频率限制
|
||||
|
||||
### 3. 数据量控制
|
||||
- 默认最多获取20条新闻/公告
|
||||
- 过多数据会增加AI处理时间
|
||||
- 过少数据可能信息不全
|
||||
|
||||
### 4. 数据时效性
|
||||
- 新闻公告数据为实时获取
|
||||
- 建议及时分析,避免过时
|
||||
|
||||
## 🎯 使用建议
|
||||
|
||||
### 1. 关注重点
|
||||
- **利好新闻**:业绩增长、政策支持、战略合作等
|
||||
- **利空新闻**:业绩下滑、监管处罚、重大亏损等
|
||||
- **重要公告**:业绩预告、增持减持、重大重组等
|
||||
|
||||
### 2. 时效把握
|
||||
- 新闻公告往往有时效性
|
||||
- 重大事件前后是关键时期
|
||||
- 结合技术分析判断介入时机
|
||||
|
||||
### 3. 风险意识
|
||||
- 注意公告中的风险提示
|
||||
- 识别可能的负面影响
|
||||
- 谨慎对待炒作性新闻
|
||||
|
||||
## 📊 分析流程对比
|
||||
|
||||
### 之前(5位分析师)
|
||||
```
|
||||
技术分析 → 基本面分析 → 资金分析 →
|
||||
风险管理 → 市场情绪 → 团队讨论 → 最终决策
|
||||
```
|
||||
|
||||
### 现在(6位分析师)
|
||||
```
|
||||
技术分析 → 基本面分析 → 资金分析 →
|
||||
风险管理 → 市场情绪 → 新闻公告 ⭐ →
|
||||
团队讨论(6人) → 最终决策
|
||||
```
|
||||
|
||||
## ✅ 测试验证
|
||||
|
||||
已通过测试:
|
||||
- ✅ 新闻数据获取正常
|
||||
- ✅ 公告数据获取正常
|
||||
- ✅ 数据格式化正常
|
||||
- ✅ AI分析正常
|
||||
- ✅ 团队讨论包含新闻公告观点
|
||||
- ✅ 无语法错误
|
||||
|
||||
## 🎉 总结
|
||||
|
||||
✅ **任务完成**!现在系统拥有6位专业分析师:
|
||||
|
||||
1. **技术分析师** - 技术指标和趋势
|
||||
2. **基本面分析师** - 财务和估值
|
||||
3. **资金面分析师** - 资金流向和主力行为
|
||||
4. **风险管理师** - 风险识别和控制
|
||||
5. **市场情绪分析师** - ARBR等情绪指标
|
||||
6. **新闻公告分析师** ⭐ - 新闻事件和公司公告
|
||||
|
||||
**新闻公告分析师的加入使得:**
|
||||
- ✅ 分析更全面(增加事件驱动维度)
|
||||
- ✅ 时效性更强(实时新闻公告)
|
||||
- ✅ 风险识别更准确(及时发现利空)
|
||||
- ✅ 机会把握更精准(及时发现利好)
|
||||
|
||||
系统现在能够从**技术、基本面、资金、风险、情绪、新闻**6个维度进行全方位分析!🎯📈
|
||||
|
||||
---
|
||||
|
||||
**完成日期:** 2025年10月7日
|
||||
**功能状态:** ✅ 已完成并测试通过
|
||||
**分析师数量:** 5 → 6 ⭐
|
||||
|
||||
Reference in New Issue
Block a user