数据与分析 financial-newssentiment-analysisquant-financefastapimilvusceleryaksharereact

FinnewsHunter 金融情报平台

将多源财经新闻转化为可检索、可分析的投资研究信号。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

FinnewsHunter 是一个基于 AgenticX 的自托管金融新闻分析平台,面向中国财经新闻与股票研究场景。它以 FastAPI 提供后端 API,并通过 React + TypeScript 前端展示新闻、分析结果、搜索和股票 K 线。Celery Beat 定时派发抓取任务,Celery Worker 抓取、去重并保存新闻;PostgreSQL 保存业务数据,Redis 用于缓存,Milvus 保存向量。NewsAnalyst 可调用配置的模型对新闻进行情绪和市场影响分析,分析后的文本可异步向量化。项目还提供由 BullResearcher、BearResearcher、SearchAnalyst 和 InvestmentManager 参与的多智能体投资辩论流程,以及三种辩论模式。

系统通过 10 个已配置来源抓取财经新闻,并以 URL 去重、保留 24 小时内新闻及执行股票关键词过滤。新闻写入 PostgreSQL 后,可通过 /api/v1/news/latest、/api/v1/news/sources 和搜索界面按标题、内容、股票代码或来源查询;前端支持批量选择、批量删除和批量分析。对指定新闻调用 POST /api/v1/analysis/news/{id} 时,NewsAnalyst 生成情绪、情绪分数、置信度和分析结果;EmbeddingService 使用 BailianEmbeddingProvider 生成向量,VectorStorage 使用 MilvusStorage 存储并支持相似度检索。股票页面调用 AkShare 数据,提供日线及 60m、30m、15m、5m、1m K 线和股票代码/名称模糊搜索。辩论流程可让研究角色以 [SEARCH: ...] 格式请求 AkShare、BochaAI、浏览器搜索或知识库数据,再由 InvestmentManager 输出投资评级报告。

  1. 量化研究团队需要把新浪财经、腾讯财经、东方财富等来源的近期新闻集中入库,并按情绪或股票代码筛选时。
  2. 投研分析师希望对单篇新闻或一批新闻调用指定模型,获得情绪、置信度与市场影响分析时。
  3. 关注 A 股的研究人员需要搜索约 5000 只预加载股票,并查看个股多周期 K 线、成交量和均线时。
  4. 投资团队希望围绕一只股票组织多轮多空辩论,并在辩论中按需补充财务指标、资金流或新闻资料时。
  5. 自托管工程团队需要以 Docker Compose 运行 PostgreSQL、Redis、Milvus 与 Celery,而将 FastAPI 和前端作为独立开发服务启动时。

这个 Agent 有哪些优点和局限?

优点
  • 从抓取、调度、新闻分析、向量存储到 React 前端均有明确组件,适合需要完整自托管研究工作流的团队。
  • 支持 Bailian、OpenAI、DeepSeek、Kimi 和 Zhipu 五类模型提供商,并在前端提供模型切换。
  • 使用 Celery Beat 和 Worker 自动调度 10 个财经新闻来源,并提供 URL 去重、时间过滤与抓取状态排查方式。
  • 同时覆盖新闻情绪分析、Milvus 向量化、股票 K 线,以及带动态检索的多空辩论流程。
  • 批量选取、删除和分析新闻的接口与前端操作均有文档说明。
局限
  • 运行依赖 AgenticX,安装说明要求从特定本地路径以 editable 模式安装,未提供独立的 AgenticX 安装或版本固定方案。
  • 完整部署需要 PostgreSQL、Redis、Milvus、Docker Compose、Celery、Python 和 Node.js,运维面较大。
  • 新闻抓取依赖第三方站点可用性;文档明确提到站点 URL 变化可能引发 404,需要修改对应 crawler 配置。
  • 至少需要一个模型提供商 API 密钥;不同提供商的可用模型和访问条件由其外部服务决定。
  • WebSocket 实时推送与智能体执行轨迹可视化仍标为进行中,知识图谱、记忆和自我演化功能仍属计划。

如何安装或部署这个 Agent?

前提:安装 Python 3.11+、Docker、Docker Compose;前端开发还需要 Node.js 18+。先安装 AgenticX:
cd /Users/damon/myWork/AgenticX
pip install -e .

安装后端依赖并配置环境:
cd FinnewsHunter/backend
pip install -r requirements.txt
cp env.example .env

在 .env 中至少配置一个模型提供商密钥;例如 Bailian:
DASHSCOPE_API_KEY=sk-your-dashscope-key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
BAILIAN_MODELS=qwen-plus,qwen-max,qwen-turbo

启动基础服务并初始化数据库:
cd FinnewsHunter
docker compose -f deploy/docker-compose.dev.yml up -d postgres redis milvus-etcd milvus-minio milvus-standalone
cd backend
python init_db.py

可选地初始化股票数据:
python -m app.scripts.init_stocks

启动 API:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

另开终端启动调度与前端:
cd FinnewsHunter
docker compose -f deploy/docker-compose.dev.yml up -d celery-worker celery-beat
cd frontend
npm install
npm run dev

如何使用这个 Agent?

服务启动后,前端地址为 http://localhost:3000,API 文档为 http://localhost:8000/docs。首次可通过以下请求抓取新浪财经新闻:
curl -X POST http://localhost:8000/api/v1/news/crawl -H "Content-Type: application/json" -d '{"source": "sina", "start_page": 1, "end_page": 1}'

查看新闻:
curl "http://localhost:8000/api/v1/news/latest?limit=200"

分析新闻 ID 1:
curl -X POST http://localhost:8000/api/v1/analysis/news/1

选择模型进行批量分析:
curl -X POST "http://localhost:8000/api/v1/analysis/batch" -H "Content-Type: application/json" -d '{"news_ids": [1, 2, 3], "provider": "bailian", "model": "qwen-plus"}'

查询股票 K 线:
curl "http://localhost:8000/api/v1/stocks/SH600519/kline?period=daily&limit=180"

常见问题

必须使用哪一家模型提供商?
不必固定使用一家。系统列出 Bailian、OpenAI、DeepSeek、Kimi 和 Zhipu,至少配置其中一个 API 密钥;前端可切换已配置的提供商和模型。
它会自动抓新闻吗?
会。文档说明 Celery Beat 每分钟为 10 个来源派发抓取任务,Celery Worker 执行抓取;也可调用 /api/v1/news/refresh 或 /api/v1/news/crawl 手动触发。
数据保存在哪里?
新闻、任务和分析记录保存在 PostgreSQL;Redis 用作缓存;文本向量由 AgenticX 的 MilvusStorage 写入 Milvus。
部署后没有新闻或分析失败怎么办?
可检查 celery-beat 和 celery-worker 日志、Redis 连通性及数据库中的 crawl_tasks 状态。分析失败时,检查 .env 中至少一个 API 密钥及 Bailian 的 DASHSCOPE_BASE_URL 配置。

相关 Agents