跳转至

仓库地图

快速导航

本页是 TTD 项目的完整结构参考。新成员建议从 阅读顺序 开始。


1. 仓库全景

the-ttd/
├── .github/                        # Copilot instructions + CI workflows
│   ├── copilot-instructions.md     # 根 Copilot 指令
│   ├── instructions/               # 按路径自动加载的子指令 (21 个)
│   │   ├── table-asset.instructions.md
│   │   ├── metric-asset.instructions.md
│   │   ├── business-terms.instructions.md
│   │   ├── few-shot.instructions.md
│   │   ├── join-rules.instructions.md
│   │   ├── term-relationships.instructions.md
│   │   ├── business-rules.instructions.md
│   │   ├── business-contexts.instructions.md
│   │   ├── backend-architecture.instructions.md
│   │   ├── backend-agents.instructions.md
│   │   ├── backend-api.instructions.md
│   │   ├── backend-skills.instructions.md
│   │   ├── backend-security.instructions.md
│   │   ├── backend-testing.instructions.md
│   │   ├── backend-memory.instructions.md
│   │   ├── backend-models-prompt.instructions.md
│   │   ├── backend-common-errors.instructions.md
│   │   ├── copilot-tips.instructions.md
│   │   ├── review-checklist.instructions.md
│   │   ├── common-errors.instructions.md
│   │   └── tui-client.instructions.md
│   └── workflows/
│       └── metadata-validation.yml
├── backend/                        # FastAPI + LangGraph Agentic BI 后端
│   ├── app/
│   │   ├── agents/                 # LangGraph Supervisor + Sub-agents
│   │   │   ├── builder.py          # 图拓扑定义
│   │   │   ├── supervisor.py       # Supervisor 节点
│   │   │   ├── state.py            # AgenticBIState 定义
│   │   │   ├── embedding.py        # Embedding agent
│   │   │   ├── sub_agents/         # 全部子 agent
│   │   │   │   ├── router.py       # 路由矩阵
│   │   │   │   ├── query_understanding.py
│   │   │   │   ├── data_retrieval.py
│   │   │   │   ├── sql_generation.py
│   │   │   │   ├── guardrails.py   # SQL 三层校验
│   │   │   │   ├── planner.py
│   │   │   │   ├── analytical.py
│   │   │   │   ├── visualization.py
│   │   │   │   ├── insights.py
│   │   │   │   ├── sql_explainer.py
│   │   │   │   ├── knowledge_qa.py
│   │   │   │   ├── followup.py
│   │   │   │   ├── suggest_followup.py
│   │   │   │   ├── schema_explorer.py
│   │   │   │   └── evaluators/     # 质量评估节点
│   │   │   │       ├── retrieval_evaluator.py
│   │   │   │       ├── sql_evaluator.py
│   │   │   │       └── answer_evaluator.py
│   │   │   └── semantic_plane/     # 元数据 Agent(YAML → DB)
│   │   ├── api/                    # FastAPI 端点
│   │   │   ├── router.py           # 路由汇总
│   │   │   ├── chats.py            # 对话 API
│   │   │   ├── feedback.py         # 用户反馈
│   │   │   └── admin/              # 管理面板 API
│   │   │       ├── evaluation.py   # 评估任务
│   │   │       └── feedbacks.py    # 反馈管理
│   │   ├── audit/                  # 结构化审计日志
│   │   ├── db/                     # SQLAlchemy models + engine
│   │   ├── memory/                 # 四层记忆系统 (MemoryFacade + Formation)
│   │   │   ├── facade.py           # MemoryFacade — 统一检索/写入/抑制/删除
│   │   │   ├── formation.py        # 记忆形成服务 (post-turn extraction)
│   │   │   ├── sql_cache.py        # SQL 缓存 (共享优化层)
│   │   │   └── long_term.py        # Legacy 兼容适配器 (向 MemoryFacade 迁移中)
│   │   ├── models/                 # 多模型注册表
│   │   │   └── registry.py         # ModelRegistry
│   │   ├── prompt/                 # Prompt 管理
│   │   ├── repositories/           # Data Access Layer
│   │   │   ├── chat_repo.py
│   │   │   ├── admin_repo.py
│   │   │   └── evaluation_repo.py
│   │   ├── security/               # 认证 + Guards + Policy
│   │   │   └── auth.py             # Better Auth JWKS 验签 + UserContext + require_admin
│   │   ├── services/               # 业务逻辑层
│   │   ├── session/                # 会话管理
│   │   ├── skills/                 # RAG、SQL 执行、ML 工具
│   │   │   ├── rag.py              # RAGRetriever
│   │   │   ├── reranker.py         # 重排序
│   │   │   ├── sql_executor.py     # DataPlaneExecutor
│   │   │   ├── graph_rag.py        # Apache AGE 图检索
│   │   │   ├── corrective_retrieval.py
│   │   │   └── metadata_cache.py   # 元数据缓存
│   │   ├── tools/                  # ML toolkit + interpreter
│   │   ├── config.py               # 应用配置
│   │   ├── deps.py                 # FastAPI 依赖注入
│   │   ├── errors.py               # 统一错误处理
│   │   ├── main.py                 # 应用入口 + lifespan
│   │   └── schemas.py              # Pydantic schemas
│   ├── alembic/                    # Database migrations
│   │   └── versions/               # Migration scripts
│   ├── tests/                      # 后端测试
│   │   ├── test_evaluators.py      # Evaluator 单元测试
│   │   └── test_admin_evaluation.py
│   ├── docker-compose.yml          # 后端容器编排
│   ├── Dockerfile
│   ├── Taskfile.yml
│   └── pyproject.toml              # ttd-backend 包配置
├── data-plane/                     # 本地数据执行环境
│   ├── docker/                     # 自定义 Docker 镜像
│   │   ├── postgres/               # Apache AGE + pgvector
│   │   └── pg-mooncake/             # pg_mooncake 初始化 SQL
│   ├── scripts/                    # 数据操作脚本
│   │   ├── publish_semantic_plane.py # YAML → S3 发布
│   │   └── load_hm_data.py          # H&M CSV → pg_mooncake
│   ├── sql/                        # DDL schemas
│   │   ├── 001_create_schema.sql     # 核心 schema (semlayer + ttd)
│   │   └── 100_hm_create_schema.sql  # H&M 数据表 (gold_hm)
│   ├── docker-compose.yml          # PostgreSQL + pg_mooncake + MinIO
│   ├── Taskfile.yml
│   └── pyproject.toml              # ttd-data-plane 包配置
├── deploy/                         # 部署编排(本地 + Swarm HA)
│   ├── docker-compose.yml          # 本地开发应用服务 (backend + web)
│   ├── swarm/                      # Swarm 高可用部署
│   │   ├── docker-compose.swarm.yml # Swarm stack (HAProxy + agent-runtime + web)
│   │   └── haproxy.cfg             # 一致性哈希路由 (by chat_id)
│   └── Taskfile.yml                # deploy:命名空间任务
├── docs/                           # MkDocs 文档源
│   ├── handbook/                   # TTD Handbook
│   │   ├── overview.md
│   │   ├── system-architecture.md
│   │   ├── design-decisions.md
│   │   ├── hm-dataset.md
│   │   ├── semantic-plane.md
│   │   ├── semantic-maintainer-manual.md
│   │   ├── data-plane.md
│   │   ├── backend.md
│   │   ├── web.md
│   │   ├── lambda-infra.md
│   │   ├── development-workflow.md
│   │   ├── operations.md
│   │   ├── quality-evaluation.md
│   │   ├── repository-map.md       # ← 本文件
│   │   └── legacy-mapping.md
│   └── index.md
├── scripts/                        # CI 校验与工具脚本
│   ├── validate_all_yaml.py        # JSON Schema 校验
│   ├── validate_sql_definitions.py # SQL 语法校验 (sqlparse)
│   ├── validate_cross_layer_refs.py # 跨层引用完整性
│   ├── check_version_bump.py       # SemVer 递增检查
│   ├── analyze_metadata_diff.py    # 元数据 diff 分析
│   ├── build_changeset.py          # 增量发布事件
│   └── build_full_changeset.py     # 全量发布事件
├── semantic-plane/                 # 三层治理元数据资产
│   ├── schemas/                    # JSON Schema 验证器 (8 个)
│   │   ├── table_asset.schema.json
│   │   ├── metric_asset.schema.json
│   │   ├── join_rule.schema.json
│   │   ├── business_term.schema.json
│   │   ├── few_shot_example.schema.json
│   │   ├── term_relationship.schema.json
│   │   ├── business_rule.schema.json
│   │   └── business_context.schema.json
│   ├── domains/                    # Layer 1: 表 + 指标资产
│   │   └── hm_fashion/            # H&M 域
│   │       ├── dim_article.yaml
│   │       ├── dim_customer.yaml
│   │       ├── fact_transaction.yaml
│   │       └── metrics/           # 指标定义
│   ├── terms/                      # Layer 1+2: 业务术语
│   ├── few_shots/                  # Layer 1: NL2SQL 示例对
│   ├── join_rules/                 # Layer 1: 表间关联规则
│   ├── business_rules/             # Layer 3: 业务规则
│   ├── business_contexts/          # Layer 3: 业务上下文
│   ├── term_relationships/         # Layer 2: 术语关系网络
│   └── Taskfile.yml
├── web/                            # Next.js 前端
│   ├── app/                        # Pages & routes (App Router)
│   │   ├── api/auth/[...all]/      # Better Auth API handler
│   │   ├── (auth)/                 # Auth pages (login, signup)
│   │   └── (chat)/                 # Chat + Admin (auth-protected)
│   ├── components/                 # React UI 组件
│   ├── hooks/                      # Custom React hooks
│   ├── lib/                        # API client + utilities
│   │   ├── auth.ts                 # Better Auth 服务端配置
│   │   ├── auth-client.ts          # Better Auth 客户端 SDK
│   │   └── api/client-config.ts    # API client + JWT 注入
│   ├── stores/                     # Zustand 状态管理
│   ├── package.json
│   ├── biome.json                  # Lint + format (Biome)
│   ├── openapi-ts.config.ts        # OpenAPI 代码生成配置
│   ├── Taskfile.yml
│   └── next.config.ts
├── .env.example                    # 环境变量模板
├── mkdocs.yml                      # MkDocs Material 配置
├── pyproject.toml                  # uv workspace 根配置
├── Taskfile.yml                    # 根 Taskfile(聚合命名空间)
├── uv.lock                         # uv 锁文件
└── README.md

2. Task 命名空间

项目使用 Task 做多子项目任务编排,根 Taskfile.yml 通过 includes 聚合各命名空间:

2.1 命名空间总览

命名空间 子项目 目录 说明
be:* Backend backend/ FastAPI 后端服务
dp:* Data Plane data-plane/ 本地数据面基础设施
deploy:* Deploy deploy/ 部署编排(本地 + Swarm HA)
sp:* Semantic Plane semantic-plane/ 元数据治理与校验
web:* Web Frontend web/ Next.js 前端

2.2 Backend (be:*)

命令 功能
task be:dev 启动 debug 模式
task be:lint Ruff 检查
task be:lint:fix Ruff 自动修复
task be:format Ruff 格式化
task be:typecheck ty 类型检查
task be:test Pytest 运行
task be:test:cov 带覆盖率测试
task be:db:migrate Alembic migrate
task be:db:rollback Alembic rollback
task be:db:revision 创建 migration
task be:build:docker 构建 Backend Docker 镜像
task web:build:docker 构建 Web Docker 镜像
task up 启动所有服务 (data-plane + backend + web)
task down 停止所有服务

2.3 Data Plane (dp:*)

命令 功能
task dp:up 启动 PostgreSQL + pg_mooncake + MinIO
task dp:up:obs 启动 Data Plane + Observability (AutoMQ)
task dp:down 停止所有 data-plane 服务
task dp:down:obs 停止 Data Plane + Observability
task dp:build:docker 构建 Data Plane 自定义镜像 (age-pgvector)
task dp:logs 查看服务日志
task dp:ps 查看运行容器
task dp:publish-sp 发布 semantic-plane YAML 到 S3
task dp:load-hm 加载 H&M 数据 (CSV → pg_mooncake)
task dp:psql 连接 Aurora 替代实例 (5435)
task dp:psql:mooncake 连接 pg_mooncake (5436)

2.4 Semantic Plane (sp:*)

命令 功能
task sp:validate 运行全部校验(yaml + sql + refs)
task sp:validate:yaml JSON Schema 合规性
task sp:validate:sql SQL 语法可解析
task sp:validate:refs 跨层引用完整性
task sp:check:version SemVer 版本递增
task sp:diff 元数据 diff 分析
task sp:changeset 构建增量 changeset
task sp:changeset:full 构建全量 changeset

2.5 Web Frontend (web:*)

命令 功能
task web:dev Next.js Turbopack 开发服务器
task web:build 生产构建
task web:install bun install
task web:check Biome lint + format 检查
task web:format Biome 格式化
task web:typecheck TypeScript 类型检查
task web:generate:api 从 OpenAPI spec 生成 API client
task web:build:docker 构建 Web Docker 镜像

2.6 Deploy (deploy:*)

命令 功能
task deploy:up 启动本地应用容器 (backend + web on bridge ttd-net)
task deploy:down 停止本地应用容器
task deploy:swarm:init 初始化 Docker Swarm (首次)
task deploy:swarm:deploy 部署 HA Stack (HAProxy + 3× agent-runtime + 2× web)
task deploy:swarm:scale 扩缩容 agent-runtime (N=5 task deploy:swarm:scale)
task deploy:swarm:update 滚动更新 agent-runtime 镜像
task deploy:swarm:status 查看 Swarm 服务状态
task deploy:swarm:logs Tail agent-runtime 日志
task deploy:swarm:rm 移除 TTD Stack
task deploy:swarm:teardown 完整拆除 (rm stack + leave swarm + 清理网络)

2.7 根级聚合命令

命令 功能
task setup 安装全部依赖 (uv + bun)
task lint 全量 lint (be + web + sp)
task format 全量格式化 (be + web)
task test 全量测试
task typecheck 全量类型检查 (be + web)
task up 启动全部本地服务 (data-plane + backend + web)
task down 停止全部本地服务
task ha:up Swarm HA 部署 (data-plane + HAProxy + 3× agent-runtime + 2× web)
task ha:down 拆除 Swarm 并停止 data-plane
task build:docker 构建所有 Docker 镜像
task ci CI 流水线 (lint + typecheck + test)

3. 关键文件速查

3.1 Backend 核心文件

文件 用途
app/main.py 应用入口、lifespan hook、依赖初始化
app/config.py 应用配置(环境变量映射)
app/deps.py FastAPI 依赖注入
app/schemas.py 全局 Pydantic request/response schemas
app/errors.py 统一错误处理与 compact SQL
app/api/router.py API 路由汇总
app/agents/builder.py LangGraph 图拓扑定义
app/agents/state.py AgenticBIState TypedDict
app/agents/supervisor.py Supervisor 节点逻辑
app/agents/sub_agents/router.py 路由矩阵与快路径策略
app/agents/sub_agents/guardrails.py SQL 三层校验 (syntax + safety + business)
app/skills/rag.py RAGRetriever (pgvector 检索)
app/skills/sql_executor.py DataPlaneExecutor (pg_mooncake 执行)
app/skills/graph_rag.py Apache AGE 图推理
app/memory/sql_cache.py SQL Cache (相似查询复用,共享优化层)
app/memory/facade.py MemoryFacade — 统一记忆检索、写入、抑制、删除
app/memory/formation.py MemoryFormationService — post-turn 记忆提取
app/memory/long_term.py Legacy 兼容适配器 (向 MemoryFacade 迁移中)
app/security/auth.py 认证上下文 + ABAC
app/models/registry.py 多模型注册表 (LLM + Embedding + Reranker)
app/db/models.py SQLAlchemy ORM 模型

3.2 Semantic Plane 核心文件

文件 用途
schemas/*.schema.json 8 个 JSON Schema 验证器(勿手动修改
domains/hm_fashion/*.yaml H&M 表资产定义
domains/hm_fashion/metrics/*.yaml H&M 指标资产
terms/hm_fashion_terms.yaml H&M 域业务术语
few_shots/hm_fashion_examples.yaml NL2SQL 示例对
join_rules/hm_fashion_joins.yaml 表间关联规则
business_rules/hm_fashion_rules.yaml Layer 3 业务规则
business_contexts/hm_fashion_contexts.yaml Layer 3 上下文
term_relationships/hm_fashion_rels.yaml 术语关系网络

3.3 Data Plane 核心文件

文件 用途
docker-compose.yml PostgreSQL + pg_mooncake + MinIO 编排
docker/postgres/ Apache AGE + pgvector 自定义镜像
docker/pg-mooncake/ pg_mooncake 初始化
scripts/publish_semantic_plane.py YAML → S3 发布
scripts/load_hm_data.py H&M CSV → pg_mooncake
sql/001_create_schema.sql 核心 schema DDL
sql/100_hm_create_schema.sql H&M 数据表 DDL (gold_hm)

3.4 CI/CD 核心文件

文件 用途
scripts/validate_all_yaml.py Schema 合规校验
scripts/validate_sql_definitions.py SQL 文本校验
scripts/validate_cross_layer_refs.py 跨层引用完整性
scripts/check_version_bump.py 版本递增合规
scripts/build_changeset.py 增量发布事件构建
scripts/build_full_changeset.py 全量发布事件
scripts/analyze_metadata_diff.py 元数据 diff 分析
.github/workflows/metadata-validation.yml CI 流水线定义

3.5 Web 前端核心文件

文件 用途
app/ Next.js App Router 页面
components/ React UI 组件库
hooks/ Custom hooks (useChat, useStream 等)
lib/ API client + 工具函数
stores/ Zustand 全局状态
biome.json Biome lint/format 配置
openapi-ts.config.ts OpenAPI TypeScript 代码生成

4. 技术栈总结

层级 技术 版本要求
包管理 uv (Python) + bun (JS) uv ≥ 0.4
任务运行 Task (Taskfile) v3
后端框架 FastAPI + Uvicorn Python 3.12+
Agent 编排 LangGraph ≥ 0.2
数据库 ORM SQLAlchemy 2.0 async
数据库迁移 Alembic auto-generate
向量检索 pgvector PostgreSQL 扩展
图数据库 Apache AGE PostgreSQL 扩展
数据湖 pg_mooncake + columnstore MinIO S3 存储
前端框架 Next.js (App Router) 14+
前端状态 Zustand
前端 Lint Biome
文档 MkDocs Material
IaC Docker Swarm

5. 新成员阅读顺序

推荐路径

按以下顺序阅读 Handbook,可在最短时间建立全局认知。

5.1 通用路径(所有角色)

步骤 文档 目标
1 仓库地图(本页) 了解项目结构与命名空间
2 项目概览 理解产品定位与核心价值
3 系统架构 掌握整体技术架构
4 设计决策 理解关键技术选型 why
5 H&M 数据集 熟悉测试数据与业务约束

5.2 按角色深入


6. 常用开发流程速查

6.1 首次环境搭建

# 1. 安装全部依赖
task setup

# 2. 启动数据面
task dp:up

# 3. 发布语义元数据到 S3
task dp:publish-sp

# 4. 加载 H&M 测试数据
task dp:load-hm

# 5. 启动后端
task be:dev

# 6. 启动前端 (另一终端)
task web:dev

6.2 日常开发循环

# Backend 修改后
task be:lint:fix && task be:test

# 前端修改后
task web:check && task web:typecheck

# 元数据修改后
task sp:validate

6.3 提交前检查

# 全量 CI 模拟
task ci