项目介绍
财务信号仪表板
这是一个使用Strands Agent SDK并集成Bright Data MCP工具的实时财务信号代理系统。该系统从金融来源收集数据以分析股票,并生成用于投资决策的alpha信号。
特性
- 使用Bright Data MCP工具进行实时股票分析
- 具有丰富可视化效果的交互式Streamlit仪表板
- 带置信评分的AI驱动alpha信号
- 技术分析,包括价格、移动平均线和RSI指标
- 仓位大小建议
- 风险回报概况可视化
- 基于社交媒体指标的市场情绪分析
- 新闻来源情绪追踪与可视化
- 支持多个模型提供商(AWS Bedrock和Ollama)
账户设置
确保您在brightdata.com上拥有一个账户(新用户可获得免费测试信用额度,且提供按需付费选项)。
从用户设置页面获取您的API密钥:https://brightdata.com/cp/setting/users
安装步骤
-
首先,确保已安装Python 3.10+。
-
创建一个虚拟环境来安装Strands Agents SDK及其依赖项:
python -m venv .venv
- 激活虚拟环境:
# macOS / Linux
source .venv/bin/activate
# Windows (CMD)
.venv\Scripts\activate.bat
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
- 安装依赖项:
pip install -r requirements.txt
- 将您的Bright Data API令牌设置为环境变量:
export API_TOKEN="your-api-token-here"
-
[仅在使用Ollama模型提供商时需要] 安装并设置Ollama:
选项1:本地安装
- 按照ollama.ai上的说明安装Ollama。
- 拉取所需的模型:
ollama pull llama3
- 启动Ollama服务器:
ollama serve
选项2:Docker安装
- 拉取Ollama Docker镜像:
docker pull ollama/ollama
- 运行Ollama容器:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
注意:如果您的计算机配置了GPU支持,请添加--gpus=all。
- 使用Docker容器拉取模型:
docker exec -it ollama ollama pull llama3
- 验证Ollama服务器是否正在运行:
curl http://localhost:11434/api/tags
-
运行Streamlit应用程序:
streamlit run streamlit_app.py
模型提供商选项
仪表板支持两种模型提供商:
AWS Bedrock
- 基于云的高性能模型
- 需要AWS凭证
- 生产使用的默认选项
Ollama
- 在您的机器上运行的本地模型
- 需要安装并运行Ollama
- 支持的模型:
- llama3.1:latest(推荐用于工具使用)
- llama3:latest
- llama3.1:latest
- llama3:8b
- llama3:70b
- mistral:latest
- mixtral:latest
关于Ollama工具支持的注意事项:标准的Ollama模型如llama3:latest不原生支持工具,可能会返回错误,例如`registry.ollama.ai/library/llama3:latest does not support tools (status code: . 我们通过讨论在这个GitHub问题中提到的专门提示技术实现了绕过方法。为了最佳地使用工具,建议使用具有更好工具支持的llama3.1:latest模型。
安全最佳实践
重要提示:始终将抓取的网络内容视为不可信数据。切勿直接在LLM提示中使用原始抓取的内容,以免造成潜在的提示注入风险。相反:
- 在处理之前过滤和验证所有网络数据
- 使用结构化数据提取而不是原始文本(web_data工具)
架构
- Strands Agent SDK:为AI驱动的分析提供了代理框架
- Bright Data MCP:负责网络抓取和金融数据收集
- AWS Bedrock Nova Premier:通过高级语言能力驱动AI分析
- Ollama:提供本地模型替代方案进行分析
- Streamlit:提供具有实时更新的交互式仪表板
- Plotly:创建交互式和响应的数据可视化
线程通信系统
仪表板实现了一个强大的基于文件的线程通信系统:
- 背景线程用于财务和情绪分析
- 文件标志用于指示完成状态
- JSON存储用于分析结果
- 分析完成后自动更新UI
- 详细的日志记录和回溯进行错误处理
仪表板部分
-
股票头部:以视觉吸引的方式显示当前股票代码、价格和日期
-
财务分析标签页:
- 显示买入/卖出/持有建议的方向信号表盘
- 带颜色编码区域的置信评分表盘
- 对比潜在风险与回报的风险回报图表
- 价格与移动平均线的柱状图
- 显示当前RSI值的RSI表盘,带颜色编码区域
- 仓位大小建议显示
- 关键因素和风险评估部分
-
情绪分析标签页:
- 市场情绪得分表盘,带颜色编码区域
- 7天情绪趋势图表(模拟)
- 社交媒体情绪雷达图,针对Twitter、Reddit和StockTwits
- 新闻来源情绪可视化,带颜色编码条形
- 详细列出新闻来源及其情绪分析
工作原理
- 在侧边栏输入股票代码并点击“分析股票”
- 启动两个背景线程进行财务和情绪分析
- Strands Agent SDK 处理代理循环:
- 管理代理的推理和决策过程
- 通过其React框架简化工具选择和执行
- 自动处理观察-思考-行动周期
- 提供结构化的输出格式,以确保一致的分析结果
- Strands Agent连接到Bright Data MCP并检索金融数据
- AI模型分析数据并生成结构化的分析结果
- 结果保存到文件中,并设置标志以指示完成
- UI自动更新以显示带有交互式可视化的分析
- 用户可以通过标签页界面探索分析的不同方面
技术细节
- 使用适当的事件循环处理异步处理中的线程
- 使用正则表达式模式提取信号,解析AI响应中的结构化数据
- 使用Plotly提供交互式可视化,以增强用户体验
- 使用基于文件的线程通信进行可靠的UI更新
- 全面的错误处理,具备优雅降级
- 类型安全的数据处理,包括适当的转换和验证
- 响应式布局,适应不同的屏幕尺寸
- 根据模型特定的提示策略优化性能
- 自动检查Ollama状态和模型可用性
- 自定义XML风格的工具调用格式,以解决Ollama模型的工具支持限制
投资免责声明
仪表板包含明确的免责声明,指出:
- 信息仅供参考
- 分析不构成投资建议
- 用户应在做出投资决策前咨询财务顾问
- 过往表现不代表未来结果
- 投资涉及损失风险
未来改进
- 实时价格更新
- 投资组合管理功能
- 历史信号跟踪
- 多个股票之间的比较分析
- 自定义警报设置
- 报告导出功能
- 用户账户以保存分析历史
- 集成其他模型提供商