---
document_type: "architecture_design"
service: "MOMENTRY_CORE"
title: "Momentry Core 架構 5 分鐘快速入門指南"
date: "2026-04-25"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
tags:
  - "分鐘快速入門指南"
  - "momentry"
  - "core"
ai_query_hints:
  - "查詢 Momentry Core 架構 5 分鐘快速入門指南 的內容"
  - "Momentry Core 架構 5 分鐘快速入門指南 的主要目的是什麼？"
  - "如何操作或實施 Momentry Core 架構 5 分鐘快速入門指南？"
---

# Momentry Core 架構 5 分鐘快速入門指南

## 1. 系統核心概念 (60秒)

**Momentry Core** 是一個 Rust 基礎的數位資產管理系統，專注於：

1. **視訊分析**：ASR、OCR、YOLO、場景檢測等多模態處理
2. **智慧分片**：將視訊分解為不同粒度級別的內容片段
3. **向量檢索**：基於語義和視覺特徵的相似度搜索
4. **RAG 功能**：檢索增強生成，提供情境化回答

**核心設計原則**：當設計文檔與實際代碼衝突時，**以 Rust 代碼實現為準**。

## 2. 系統架構圖 (30秒)

```
輸入 → 處理管道 → 分片生成 → 向量存儲 → 檢索服務
    ↓          ↓          ↓           ↓
   ASR       Sentence   Qdrant      API
   OCR       Cut        PostgreSQL  Player
   YOLO      Story      Redis       CLI
   CUT       Trace
```

## 3. 關鍵數據結構 (60秒)

### 分片類型 (ChunkType)
```rust
pub enum ChunkType {
    TimeBased,    // 時間基準分片
    Sentence,     // 句子級分片 (基於 ASR)
    Cut,          // 場景分片 (基於 CUT 算法)
    Trace,        // 軌跡追蹤分片
    Story,        // 故事級分片 (基於分片聚合)
}
```

### 分片數據結構
```rust
pub struct Chunk {
    pub file_id: i32,
    pub uuid: String,
    pub chunk_id: String,
    pub chunk_type: ChunkType,
    pub start_frame: i64,
    pub end_frame: i64,
    pub content: serde_json::Value,  // 動態 JSON 內容
    pub vector_id: Option<String>,
    // ... 其他字段
}
```

## 4. 處理管道 (60秒)

### 標準處理流程
1. **ASR 轉錄**：語音轉文字，生成句子級分片
2. **OCR 識別**：文字區域檢測和識別
3. **YOLO 檢測**：視覺物件檢測和分類
4. **CUT 場景檢測**：基於視覺相似度的場景分割
5. **分片生成**：基於處理結果生成不同類型的分片

### 處理器特點
- 統一使用 `PythonExecutor` 執行外部腳本
- 支持超時控制和錯誤恢復
- 處理結果存儲為結構化 JSON

## 5. 數據庫架構 (60秒)

### 多數據庫系統
1. **PostgreSQL**：結構化數據存儲
   - `video_records`：視訊基礎資訊
   - `chunks`：分片數據
   - `jobs`：處理任務
2. **Redis**：緩存和隊列
   - `momentry:` 網址：生產環境
   - `momentry_dev:` 網址：開發環境
3. **Qdrant**：向量數據庫
   - 存儲分片嵌入向量
   - 支持語義和視覺相似度搜索
4. **MongoDB**：文檔存儲
   - 存儲非結構化處理結果

## 6. 開發與部署 (30秒)

### 開發環境
```bash
# 構建項目
cargo build
cargo build --release

# 運行 CLI
cargo run -- register /path/to/video.mp4
cargo run -- server --host 0.0.0.0 --port 3002

# 運行開發版
cargo run --bin momentry_playground -- server
```

### 測試
```bash
# 運行所有測試
cargo test

# 運行單個測試
cargo test test_name

# 帶輸出的測試
cargo test -- --nocapture
```

## 7. 下一步學習路徑

### 初學者 (新團隊成員)
1. 閱讀 [ARCHITECTURE_OVERVIEW.md](./ARCHITECTURE_OVERVIEW.md) - 系統概覽
2. 查看 [DESIGN_IMPLEMENTATION_GAP.md](./DESIGN_IMPLEMENTATION_GAP.md) - 設計與實現差異
3. 運行 `cargo run -- --help` 熟悉 CLI 命令

### 開發者 (功能開發)
1. 查看 [TECHNICAL_DECISION_RECORDS.md](./TECHNICAL_DECISION_RECORDS.md) - 技術決策記錄
2. 研究 [PROCESSING_PIPELINE.md](./PROCESSING_PIPELINE.md) - 處理管道詳情
3. 查看 [ARCHITECTURE_DECISION_EXECUTION_PLAN.md](./ARCHITECTURE_DECISION_EXECUTION_PLAN.md) - 執行計劃

### 架構師 (系統設計)
1. 查看 [PERFORMANCE_AND_SCALABILITY.md](./PERFORMANCE_AND_SCALABILITY.md) - 效能與擴展
2. 研究 [SECURITY_ARCHITECTURE.md](./SECURITY_ARCHITECTURE.md) - 安全架構
3. 查看 [MONITORING_ARCHITECTURE.md](./MONITORING_ARCHITECTURE.md) - 監控架構

## 8. 常見問題 (FAQ)

### Q1: 如何開始添加新的處理器？
A: 參考 `src/core/processor/` 目錄下的現有處理器，實現 `Processor` trait。

### Q2: 如何擴展分片類型？
A: 在 `src/core/chunk/types.rs` 中擴展 `ChunkType` 枚舉。

### Q3: 如何集成新的 AI 模型？
A: 通過 `PythonExecutor` 執行 Python 腳本，或直接集成到 Rust 代碼中。

### Q4: 如何優化檢索性能？
A: 調整 Qdrant 向量索引參數，優化嵌入模型，添加緩存層。

---

**更新時間**: 2026-04-22  
**適用對象**: 新團隊成員、開發者、架構師  
**建議閱讀時間**: 5 分鐘
