川超多模态问答 Copilot MVP。
本项目用于构建一个能够基于 比赛视频 + 赛事数据 + 文稿 的智能问答系统,支持:
- 比赛事件查询
- 球员统计
- 球队统计
- 进球视频片段
- 比赛集锦生成
- 川超赛事知识问答
系统通过 多模态分析 + Pathway ETL + Agent Skills 实现。
系统由两条核心链路组成:
- F1 数据生产链路
- F2 数据使用链路
flowchart LR
video["比赛视频"]
web["网页文稿"]
analysis["多模态分析<br/>VLM / ASR / 文稿"]
etl["Pathway ETL"]
facts["赛事事实<br/>onto.match_event_predict"]
agent["Agent Planner"]
skills["Skills"]
ui["Copilot UI"]
video --> analysis
web --> analysis
analysis --> etl
etl --> facts
facts --> skills
skills --> agent
agent --> ui
Chuanchao-MVP
├── agent
├── configs
├── database
├── docs
├── frontend
├── pathway
├── prompts
├── schemas
├── scripts
├── services
├── skills
├── video_sample
└── webpage_sample
Agent 行为控制层,定义 Agent 如何理解问题、选择 Skill。
agent
├── AGENT_PROMPT.md
├── ENTITY_NORMALIZATION.md
├── INTENT_SCHEMA.md
├── PLANNER_RULES.md
└── planner_rules.yaml
文件说明:
| 文件 | 作用 |
|---|---|
| AGENT_PROMPT.md | Agent system prompt |
| INTENT_SCHEMA.md | 用户问题意图结构 |
| ENTITY_NORMALIZATION.md | 实体归一化规则 |
| PLANNER_RULES.md | Skill 选择逻辑 |
| planner_rules.yaml | Planner 机器可读规则 |
系统配置。
configs
├── env.local.yaml
├── model_profiles.yaml
└── secrets.local.yaml
包括:
- 数据库连接
- AI 模型配置
- API 密钥
数据库结构与初始化脚本。
database
├── diagrams
│ └── er_media_onto.md
└── init
├── 001_extensions.sql
├── 002_schemas.sql
├── 010_media_tables.sql
├── 020_onto_extensions.sql
├── 025_cross_schema_fk.sql
├── 040_views.sql
└── 050_functions.sql
数据库使用:
PostgreSQL 18
Schema:
media
onto
设计原则:
media = 媒体与线索
onto = 赛事事实
系统设计文档。
docs
├── AGENTS.md
├── ARCHITECTURE.md
├── DECISIONS.md
├── OPEN_QUESTIONS.md
├── PLAN.md
├── SPEC.md
└── STACK_RULES.md
文件说明:
| 文件 | 作用 |
|---|---|
| AGENTS.md | 仓库级 AI 工作规则 |
| ARCHITECTURE.md | 系统架构 |
| PLAN.md | 项目阶段规划 |
| SPEC.md | 系统规格 |
| DECISIONS.md | 架构决策记录 |
| OPEN_QUESTIONS.md | 待确认问题 |
| STACK_RULES.md | 技术栈约束 |
前端 UI。
frontend
└── v0-ui
使用 Vercel v0 生成 UI。
多模态 ETL。
pathway
├── pipeline.py
├── rules
└── schemas
职责:
多模态线索
↓
时间对齐
↓
事件推断
↓
赛事事实
输出:
onto.match_event_predict
AI Agent 提示词。
prompts
├── claude_skill_prompt_asr.md
├── claude_skill_prompt_match_info.md
├── claude_skill_prompt_pathway.md
├── claude_skill_prompt_vision.md
├── codex_bootstrap_prompt.md
├── codex_config_normalize_prompt.md
└── v0_frontend_prompt.md
用于驱动:
- Codex
- Claude
- v0
JSON Schema。
schemas
├── match_info.schema.json
└── render_blocks.schema.json
用于定义:
- Skill 输出结构
- UI 渲染结构
后端服务。
services
└── backend
负责:
- Skill API
- Agent 接口
- 数据服务
Agent 可调用能力。
skills
├── ingest_video
├── parse_match_info
├── vlm_analysis
├── asr_analysis
├── pathway_etl
├── query_match_context
├── query_match_facts
├── query_match_stats
├── query_player_stats
├── query_team_stats
├── query_video_clips
├── create_highlight_flow
├── highlight_video
└── query_knowledge_rag
Skill 分类:
ingest_video
parse_match_info
vlm_analysis
asr_analysis
pathway_etl
query_match_context
query_match_facts
query_match_stats
query_player_stats
query_team_stats
query_video_clips
create_highlight_flow
highlight_video
query_knowledge_rag
比赛视频样例。
video_sample
├── goal-5min-ASR-sample.txt
├── goal-5min-vlm-sample.txt
└── goal-5min.mp4
网页数据样例。
webpage_sample
└── webUrl.txt
Agent 执行流程:
flowchart LR
question["用户问题"]
intent["Intent Extraction"]
entity["Entity Normalization"]
planner["Planner"]
skill["Skill"]
data["数据库 / 视频系统"]
ui["UI"]
question --> intent
intent --> entity
entity --> planner
planner --> skill
skill --> data
data --> ui
建议开发顺序:
运行:
database/init/*.sql
填写:
configs/env.local.yaml
configs/secrets.local.yaml
vlm_analysis
asr_analysis
pathway/pipeline.py
query_match_facts
query_player_stats
query_team_stats
query_video_clips
create_highlight_flow
frontend/v0-ui
MVP 支持:
- 比赛事件查询
- 射手榜
- 积分榜
- 进球视频
- 比赛集锦
- 川超赛事知识问答
最终目标是构建一个 多模态赛事 Copilot 系统。