SkillAgentSearch skills...

MPlus

AI驱动的自媒体选题和模拟预测智能体 / 基于 Ripple 预测引擎实现

Install / Use

/learn @xyskywalker/MPlus
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="assets/main_visual.png" alt="MPlus 主视觉" width="600"> </p> <h1 align="center">百万加 MPlus</h1> <p align="center"> <strong>AI驱动的自媒体选题和模拟预测智能体</strong> </p> <p align="center"> <img src="https://img.shields.io/badge/Python-3.11+-blue?logo=python" alt="Python"> <img src="https://img.shields.io/badge/React-18-61DAFB?logo=react" alt="React"> <img src="https://img.shields.io/badge/FastAPI-0.109+-009688?logo=fastapi" alt="FastAPI"> <img src="https://img.shields.io/badge/CAMEL--AI-0.2+-orange" alt="CAMEL"> <img src="https://img.shields.io/badge/Ripple-CAS-purple" alt="Ripple"> <img src="https://img.shields.io/badge/License-AGPL--3.0-blue" alt="License"> </p>
<!-- 目录 -->

功能特性

  • 💡 头脑风暴: 基于 CAMEL ChatAgent 的实时 AI 对话,支持 WebSocket 流式输出、智能联网搜索、平台画像注入、选题就绪度评估
  • 📋 选题管理: 从对话中智能提取结构化选题,支持多平台适配、选题编辑和导出
  • 📊 模拟预测: 通过 Ripple CAS 社会行为预测引擎模拟内容传播效果,提供多维数据洞察与合议庭评审报告
  • 👤 平台账号管理: 管理各平台自媒体账号信息,为模拟预测提供真实账号画像
  • 🌐 平台画像系统: 内置 6 大主流平台的深度画像数据(算法机制、爆款特征、互动基准等),驱动 AI 生成平台化内容建议
  • ⚙️ 模型配置: 支持多种 LLM 模型配置(OpenAI 兼容、Claude、Azure-OpenAI),支持默认模型和快速任务模型分离配置

快速开始

TUI 启动模式(推荐初学者)

只需三步无需安装 Node.js,使用仓库内置已构建的前端。TUI 会自动完成 Python 依赖安装、数据库初始化并启动服务:

  1. 确保已安装 Python 3.11+
  2. 克隆仓库
  3. 启动 TUI
git clone <仓库地址>
cd MPlus-dev
python tui/main.py
# 或: poetry run mplus

在 TUI 菜单中选择「0. 一键初始化」即可。Windows / macOS / Linux 均可使用。


环境要求

  • Python 3.11+(运行时必需)
  • Node.js 16+(仅开发/重新构建前端时需要;TUI 模式使用内置已构建版本,无需 Node.js
  • Poetry(Python 依赖管理,推荐)或 pip

1. 安装依赖

后端依赖:

# 使用 Poetry(推荐)
poetry install

# 或在已激活的虚拟环境中使用 pip
pip install -e .

前端依赖:

cd frontend
npm install --legacy-peer-deps

2. 配置环境

cp .env.example .env

编辑 .env 设置服务地址和端口。LLM 模型的 API Key 等配置通过 Web 界面完成(启动后访问 设置 → 模型配置)。

3. 初始化数据库

python scripts/init_db.py

4. 启动开发服务

后端服务:

uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload

前端开发服务器(可选,开发调试用):

cd frontend
npm run dev

前端 Vite 开发服务器运行在 3000 端口,自动代理 /api/ws 请求到后端 8000 端口。

5. 访问应用

  • Web 界面: http://localhost:3000(开发模式)或 http://localhost:8000(生产模式)
  • API 文档: http://localhost:8000/docs

生产构建与部署

MPlus 采用前后端一体化部署方案:前端经 Vite 编译为纯静态文件(HTML/CSS/JS),由 FastAPI 直接服务。运行时仅需 Python 环境,无需 Node.js。

一键构建

项目提供了 scripts/build.sh 构建脚本,适配 macOS 和 Linux:

# 完整构建(安装依赖 + 编译前端 + 初始化数据库)
./scripts/build.sh

# 构建后清理 node_modules(节省磁盘空间,运行时不需要)
./scripts/build.sh --clean

# 构建完成后直接启动生产服务
./scripts/build.sh --start

# 加速重复构建(跳过依赖安装步骤)
./scripts/build.sh --skip-npm --skip-poetry

构建脚本功能:

| 步骤 | 说明 | |------|------| | 系统检测 | 自动识别 macOS / Linux,检查架构信息 | | 依赖检查 | 验证 Node.js(>=16,仅构建时需要)、Python 3、Poetry | | 环境配置 | 自动从 .env.example 创建 .env,生产环境默认关闭 DEBUG | | Python 依赖 | 通过 poetry install 安装后端依赖 | | 前端编译 | TypeScript 类型检查 + Vite 生产构建,输出到 backend/static/ | | 数据库初始化 | 自动检测并在需要时初始化 SQLite 数据库 |

手动构建

如果不使用构建脚本,也可手动执行:

# 1. 编译前端
cd frontend
npm install --legacy-peer-deps
npm run build          # 输出到 backend/static/

# 2. 回到项目根目录
cd ..

# 3. 初始化数据库(首次部署)
python scripts/init_db.py

启动生产服务

构建完成后,仅需 Python 环境即可运行:

# 方式一:直接启动(确保已激活 Python 虚拟环境)
uvicorn backend.main:app --host 0.0.0.0 --port 8000

# 方式二:通过 Poetry 启动
poetry run uvicorn backend.main:app --host 0.0.0.0 --port 8000

# 方式三:使用 TUI 管理界面
poetry run mplus

生产环境下访问 http://localhost:8000 即可使用完整应用,FastAPI 自动服务 backend/static/ 中的前端静态文件。

项目结构

MPlus-dev/
├── assets/                      # 静态资源(主视觉图片等)
├── backend/                     # 后端服务(FastAPI)
│   ├── api/                     # API 路由模块
│   │   ├── accounts.py              # 平台账号管理 API
│   │   ├── chat.py                  # WebSocket 实时对话 API
│   │   ├── sessions.py              # 会话管理 API
│   │   ├── topics.py                # 选题管理 API
│   │   ├── simulations.py           # 模拟预测 API
│   │   └── platforms.py             # 平台信息 API
│   ├── db/                      # 数据库模块
│   │   ├── database.py              # 异步引擎 / 会话工厂 / 初始化
│   │   └── crud.py                  # 所有 CRUD 操作
│   ├── models/                  # SQLAlchemy ORM 数据模型
│   ├── prompts/                 # AI 提示词模板
│   │   └── brainstorm_prompts.py    # 头脑风暴提示词
│   ├── services/                # 业务服务层
│   │   ├── brainstorm.py            # 头脑风暴核心服务(CAMEL ChatAgent)
│   │   ├── model_factory.py         # CAMEL 模型工厂
│   │   ├── platform_loader.py       # 平台画像加载器
│   │   ├── topic_extractor.py       # 选题智能提取服务
│   │   ├── llm_service.py           # 统一 LLM 接口
│   │   ├── simulation_service.py    # 模拟任务管理服务
│   │   ├── ripple_adapter.py        # Ripple CAS 引擎适配器
│   │   ├── report_service.py        # 模拟报告生成服务
│   │   ├── web_search_service.py    # 联网搜索服务
│   │   └── options_service.py       # 应用选项服务
│   ├── tools/                   # CAMEL Agent 工具
│   │   └── anspire_search.py        # Anspire 搜索工具
│   ├── static/                  # 前端构建产物(生产模式自动服务)
│   ├── config.py                # Pydantic Settings 配置管理
│   ├── exceptions.py            # MplusException 异常体系
│   └── main.py                  # FastAPI 应用入口
├── frontend/                    # 前端应用(React 18 + TypeScript)
│   ├── src/
│   │   ├── components/          # 通用 UI 组件
│   │   │   ├── Layout.tsx               # 全局布局(导航栏、侧边栏)
│   │   │   ├── MarkdownRenderer.tsx     # Markdown 渲染
│   │   │   ├── SimulationResultModal.tsx # 模拟结果弹窗
│   │   │   ├── PlatformSelect.tsx       # 平台选择器
│   │   │   ├── ModelSelect.tsx          # 模型选择器
│   │   │   ├── PlatformIcons.tsx        # 平台图标
│   │   │   ├── TagInput.tsx             # 标签输入
│   │   │   ├── Modal.tsx                # 模态框
│   │   │   ├── Toast.tsx                # 消息提示
│   │   │   └── Loading.tsx              # 加载状态
│   │   ├── hooks/               # 自定义 Hooks
│   │   │   └── useChat.ts              # WebSocket 实时对话 Hook
│   │   ├── pages/               # 页面组件
│   │   │   ├── HomePage.tsx            # 首页
│   │   │   ├── BrainstormPage.tsx      # 头脑风暴
│   │   │   ├── TopicsPage.tsx          # 选题管理
│   │   │   ├── SimulationPage.tsx      # 模拟预测
│   │   │   ├── AccountsPage.tsx        # 平台账号管理
│   │   │   └── SettingsPage.tsx        # 系统设置
│   │   ├── services/            # API 服务
│   │   │   └── api.ts                  # Axios API 客户端
│   │   ├── stores/              # 状态管理
│   │   │   └── appStore.ts            # Zustand 全局状态
│   │   ├── App.tsx              # 根组件(路由配置)
│   │   └── main.tsx             # 应用入口
│   ├── vite.config.ts           # Vite 构建配置
│   ├── tsconfig.json            # TypeScript 配置
│   ├── tailwind.config.js       # Tailwind CSS 配置
│   └── package.json             # 前端依赖
├── config/                      # 运行时配置
│   └── app_options.yaml             # UI 下拉选项配置
├── skills/                      # Agent Skills(平台画像与模拟技能)
│   └── social-media/
│       ├── platforms/               # 6 大平台画像定义(Markdown)
│       ├── prompts/                 # 模拟角色提示词
│       └── rubrics/                 # 评估校准标准
├── scripts/                     # 脚本工具
│   ├── build.sh                     # 生产环境构建脚本
│   ├── start.sh                     # 开发环境启动脚本
│   └── init_db.py                   # 数据库初始化脚本
├── tui/                         # TUI 终端管理界面(Rich)
│   └── main.py                      # TUI 入口
├── data/                        # 数据目录(SQLite 数据库、模拟结果)
├── pyproject.toml               # Poetry 项目配置
└── .env.example                 # 环境变量模板

前端路由

| 路径 | 页面 | |------|------| | / | 首页 | | /brainstorm | 头脑风暴(新建会话) | | /brainstorm/:sessionId | 头脑风暴(继续会话) | | /topics | 选题管理 | | /simulation | 模拟预测 | | /simulation/:topicId | 选题模拟 | | /accounts | 平台账号管理 | | /settings | 系统设置 |

核心架构

头脑风暴 AI 对话流程

用户输入 → WebSocket → BrainstormService
                            │
                   ┌────────┼────────┐
                   │        │        │
              搜索意图分析  记忆加载  平台画像注入
                   │        │        │
                   └────────┼────────┘
                            │
                     CAMEL ChatAgent
                      (流式响应)
                            │
                   ┌────────┼────────┐
                   │        │        │
              选题就绪度   自动标题   阶段提醒
                评估       生成      注入
                   │        │        │
                   └────────┼────────┘
                            │
                     选题智能提取
                    (TopicExtractor)

核心能力:

  • CAMEL ChatAgent: 基于 CAMEL-AI 框架的有状态对话智能体,支持多轮交互和上下文记忆
  • 智能搜索: LLM 判断搜索意图 → Anspire API 联网搜索 → LLM 筛选相关结果 → 注入对话上下文
  • 平台画像驱动: 根据用户选择的目标平台,自动加载平台画像(算法机制、爆款特征、用户偏好等)注入提示词
  • 选题提取: 对话达到一定深度后,使用独立模型调用从对话中提取结构化选题信息
  • 阶段提醒: 根据对话轮次动态注入引导策略,推动对话从发散走向收敛

模拟预测流程

选题输入 → SimulationService → RippleAdapter → Ripple CAS 引擎
                                                     │
                                    ┌────────────────┼────────────────┐
                                    │                │                │
                              Star Agents       Sea Agents      Omniscient
                              (意见领袖)        (普通用户)      (全视者裁决)
                                    │                │                │
                                    └────────────────┼────────────────┘
                                                     │
                                              Deliberation
                                             (合议庭评审)
                                                     │
                                              ReportService
                                            (解读报告生成)

技术栈

| 层级 | 技术 | |------|------| | 后端 | Python 3.11+, FastAPI, async SQLAlchemy, aiosqlite, Pydantic, WebSocket | | 前端 | React 18, TypeScript, Vite, Tailwind CSS, Zustand, Recharts, react-markdown | | 数据库 | SQL

Related Skills

View on GitHub
GitHub Stars54
CategoryDevelopment
Updated6d ago
Forks6

Languages

TypeScript

Security Score

95/100

Audited on Mar 31, 2026

No findings