stocks-insights-ai-agent
是一个股票数据洞察应用的仓库,该项目主要展示了如何使用 Agentic 检索增强生成(RAG)工作流来从特定公司及更广泛的股票市场的新闻和财务数据中提取见解。以下是对该仓库的详细介绍:
1. 许可证
此项目使用 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License 进行许可。
2. 主要特性
- 股票表现可视化:展示所选股票的历史表现的图形和图表。
- 特定属性数据检索:获取特定股票的特定属性的详细信息。
- 新闻聚合:展示有关特定股票或公司的一般新闻或特定主题的文章。
3. 高级架构
项目采用特定的架构设计,包含异步抓取和 LangGraph 工作流两大部分:
异步抓取
- 新闻数据:异步抓取预定义股票集的新闻数据,并定期存储在 MongoDB 中。文档会与 ChromaDB 同步,以便大语言模型(LLMs)进行语义搜索,从而检索特定股票或公司的相关信息。
- 财务数据:异步抓取所选股票的财务数据,并定期存储在 PostgreSQL 中。
LangGraph 工作流
- 新闻数据 RAG 图:一个用于在向量数据库(从 MongoDB 同步的文档)中搜索股票新闻数据的 Agentic RAG 图,如果未找到相关文档,则执行网络搜索。该图包含多个节点,如从数据库检索新闻、对文档进行评分、进行网络搜索和生成结果等。
- 股票数据 RAG 图:一个在 SQL 数据库(PostgreSQL)中搜索股票财务数据的 Agentic RAG 图,包括生成 SQL 查询、执行 SQL 查询和生成结果等节点。
- 股票数据图表 RAG 图:从 SQL 数据库(PostgreSQL)中检索股票财务数据并生成可视化图表的 Agentic RAG 图,包含生成 SQL 查询和执行 SQL 查询等节点。
4. API
详细的 API 规范可参考附带的 openapi.json
文件,目前提供以下两个 API:
- 价格统计(GET /stock/{ticker}/price-stats
):获取特定股票代码的股票价格统计信息。参数包括股票代码、操作类型(如最高、最低、平均)、价格类型(如开盘价、收盘价、最低价、最高价)和持续时间(天数)。
- 图表(GET /stock/{ticker}/chart
):获取特定股票代码的股票价格统计信息并返回直方图/图表。参数包括股票代码、价格类型和持续时间。
5. 目录结构
scraper
:包含与数据抓取相关的代码,如通用抓取器、新闻抓取器、股票数据抓取器以及抓取器工厂等。documentation
:存放项目文档,如高级设计图和openapi.json
文件。rag_graphs
:包含不同的 RAG 图相关代码,如新闻 RAG 图、股票图表图和股票数据 RAG 图。utils
:包含实用工具代码,如日志记录器和日志配置。config
:包含配置文件和配置加载器代码。rest_api
:包含 REST API 的主文件和路由代码。images
:存放项目相关的图片文件。db
:包含与数据库相关的代码。