Project Atlas 知识图谱 / 共享基础设施 ← 返回图谱
🗄️

共享基础设施与外部服务

舆情报告系统采集端与报告端共享的中间件、存储与外部服务。MongoDB 是两端最关键的衔接点。

MongoDB RabbitMQ XXL-JOB Redis MinIO DeepSeek Tavily ECharts
本页导航
依赖拓扑 MongoDB RabbitMQ XXL-JOB Redis MinIO DeepSeek Tavily ECharts 服务

# 依赖拓扑

              ┌─────────────── 共享 ───────────────┐
              │                                     │
  采集端 chrome-pa-api                      报告端 deep-research-python
   :8000  │                                          │  :8000
   ├── MongoDB (deep-research) ◄──────共享衔接──────► ┤
   ├── RabbitMQ (:5672)                               ├── Redis (缓存)
   ├── XXL-JOB (执行器 :19999)                         ├── MinIO (图片/图表)
   ├── DeepSeek LLM ◄──────────两端共用─────────────► ┤
   └── Tavily 搜索                                     └── ECharts 服务 (:3000)
服务类别端口/标识使用方
MongoDB数据库27017 · 库 deep-research采集端 + 报告端(共享)
RabbitMQ消息队列5672采集端
XXL-JOB调度执行器 19999采集端
Redis缓存—报告端
MinIO对象存储—报告端
DeepSeek外部 LLMapi.deepseek.com采集端 + 报告端
Tavily外部搜索api.tavily.com采集端
ECharts 服务渲染微服务3000报告端

# MongoDB — 核心衔接点

两端共享同一个库 deep-research,是采集端与报告端的主链路衔接。

  • html_md — 采集端抓取的原文(Markdown)主集合
  • sentiment_data — AI 标注后的舆情成品,报告端从此读取素材
  • reports — 报告端的报告文档(带 5 步进度)
  • 每步流水线记录、模板、变量等各自集合
版本要求
MongoDB 4.0+
认证库
admin
连接方
采集端 utils/mongodb_handler.py;报告端 utils/database.py
发票管理系统也用同一 Mongo 实例,但走独立库 invoice(集合 invoices/verifications/verification_index),与舆情系统逻辑隔离。

# RabbitMQ — 任务消息队列

采集端异步消息通道:消费 platform_task_queue_* 平台任务队列(异步任务分发/语义处理)。与 Chrome 插件的异步通信经 mq_api/。

端口
5672
vhost
如 langwell-v2 / deep-research(按环境)
驱动
采集端 Python pika;发票管理系统 aio-pika
采集端无 RabbitMQ 开关字段,为失败降级:消费者以 daemon 线程 + try/except 启动,连不上仅记日志、不影响主服务与 HTTP 接口。插件领采集任务走 HTTP 轮询(/get-not-started-task),不依赖 MQ,故 RabbitMQ 可不接照跑。
发票管理系统另用 invoice.verify.queue / invoice.verify.result.queue 两个队列做异步发票核验(核验失败工作日自动重试)。

# XXL-JOB — 分布式定时调度

按监测任务周期(每日/每周/每月/每季/半年/每年)自动触发采集。采集端集成在 sentiment_monitor/xxl_job_*.py。

调度中心
URL 须以 /api/ 结尾
执行器名
chrome-pa-api
执行器端口
19999
驱动
Python pyxxl

# Redis — 报告端缓存

报告端缓存层,连接在 utils/database.py 与 MongoDB 一同初始化。

# MinIO — 对象存储

存放采集到的图片、报告图表渲染出的 PNG。报告端经 oss_service.py 访问;采集端 requirements.txt 也含 minio 依赖。

发票管理系统用独立桶 invoice 存发票原文件与缩略图。

# DeepSeek — 大模型(两端共用)

采集端做情感判定与摘要(utils/llm_service.py),报告端做逐章报告撰写(LangChain ChatOpenAI 封装)。

Base URL
https://api.deepseek.com
模型
deepseek-chat(由 LLM_MODEL 指定)
报告端
动态模型注册 + 任务级路由(LLM_ENTITY),可按步骤换模型
采集端 LLM 仅用于舆情情感分析(情感/摘要/关键词),不配置也不会崩,调用失败有多层兜底但会退化成默认值。配置项 LLM_CHECK_ROLE_MODEL 是废弃项——仅在 config 中定义,代码无引用。

# Tavily — 联网搜索 API

采集端网页搜索能力,带 MongoDB 支撑的 API Key 轮询池(utils/api_key_manager.py)。报告端做普通研究报告时可复用采集端搜索接口(舆情报告不走此路)。

Base URL
https://api.tavily.com

# ECharts — 图表渲染微服务

Node.js 微服务,把报告里的 echarts 代码块渲染成 PNG(经报告端 utils/echarts_renderer.py 调用),再上传 MinIO,用于报告导出。

端口
3000
启动
cd echarts-server && npm install && node server.js

关联文档

Project Atlas · 返回知识图谱 · 如何维护