---
document_type: "architecture_design"
service: "MOMENTRY_CORE"
title: "Momentry Core 分片關聯與內容生成架構 (Chunk Associative Enrichment) (v1.0)"
date: "2026-04-21"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
tags:
  - "momentry"
  - "core"
  - "associative"
  - "分片關聯與內容生成架構"
ai_query_hints:
  - "查詢 Momentry Core 分片關聯與內容生成架構 (Chunk Associative Enrichment) (v1.0) 的內容"
  - "Momentry Core 分片關聯與內容生成架構 (Chunk Associative Enrichment) (v1.0) 的主要目的是什麼？"
  - "如何操作或實施 Momentry Core 分片關聯與內容生成架構 (Chunk Associative Enrichment) (v1.0)？"
---

# Momentry Core 分片關聯與內容生成架構 (Chunk Associative Enrichment) (v1.0)

| 項目 | 內容 |
|------|------|
| 建立者 | OpenCode |
| 建立時間 | 2026-04-21 |
| 文件版本 | V1.0 |

---

## 版本歷史

| 版本 | 日期 | 目的 | 操作人 | 工具/模型 |
|------|------|------|--------|-----------|
| V1.0 | 2026-04-21 | 定義基於多模態關聯 (Multimodal Association) 的內容生成流程 | OpenCode | OpenCode / Qwen3.6-Plus |

---

## 0. 設計目標

本規範定義了系統如何將**父 Chunk (Parent Chunk)** 與其關聯的視覺、聽覺、人物數據進行深度聚合，並利用 LLM **生成全新的敘事內容 (New Content)**、**摘要 (Summary)** 與 **結構化分析 (5W1H)**，將原始數據轉化為高價值的知識資產。

---

## 1. 關聯輸入架構 (Associative Input)

為了產出高品質內容，系統需聚合以下三層資訊：

### 1.1 核心數據源

| 數據源 | 欄位/內容 | 處理方式 |
|:---|:---|:---|
| **父 Chunk (Rule 3)** | `content` (場景初步描述), `[start_frame, end_frame]` | 作為上下文錨點。 |
| **子 Chunk (Rule 1)** | `content` (ASR 對話), `speaker_id` | 提取「誰說了什麼」。 |
| **子 Chunk (Rule 2)** | `frame_objects` (YOLO 物件) | 提取「場景中有什麼」。 |

### 1.2 知識庫解析 (Knowledge Resolution)

在送入 LLM 前，必須將機器 ID 轉換為人類可讀的名稱：
- **Face Resolution**: `face_id_01` → 查詢 `face_identities` → `"Cary Grant"`。
- **Object Normalization**: `"automobile"` → 映射為 `"car"` (選用)。

---

## 2. 內容生成策略 (Content Generation Strategy)

系統採用 **「多模態融合 (Multimodal Fusion)」** 策略，將離散的數據重組為連貫的敘事。

### 2.1 融合範例

**輸入數據**:
- **Dialogue**: "Look at that car!" (Speaker: SPEAKER_00/Cary Grant)
- **Objects**: `car`, `street`, `gun`
- **Faces**: `Cary Grant`, `Audrey Hepburn`

**融合後的上下文 (Context)**:
> 場景內出現人物：Cary Grant, Audrey Hepburn。
> 視覺物件：car, street, gun。
> 對話內容：[Cary Grant] "Look at that car!"

**LLM 輸出 (New Content)**:
> "Cary Grant 和 Audrey Hepburn 站在街道上。Grant 注意到一輛車，並似乎對它有所警覺，周圍環境暗示可能存在危險（因為偵測到槍枝）。"

---

## 3. 處理流程 (Pipeline)

```mermaid
graph TD
    A[Parent Chunk] -->|Time Range| B[Data Aggregator]
    C[Children Chunks] -->|Content| B
    D[Knowledge DB] -->|Identity Map| B
    
    B -->|Context Prompt| E[LLM (Gemma4)]
    
    E -->|Output 1| F[New Content (Narrative)]
    E -->|Output 2| G[Summary (Concise)]
    E -->|Output 3| H[5W1H (Structured)]
    
    F & G & H --> I[Update DB (Rule 3/4)]
```

### 3.1 提示詞設計 (Prompt Design)

為了確保輸出的結構化，提示詞必須明確要求 JSON 格式。

```text
### 任務
分析以下場景數據，生成結構化的劇情分析。

### 場景數據
**時間**: {start_sec}s - {end_sec}s
**人物**: {resolved_faces}
**物件**: {objects}
**對話片段**:
{dialogue_snippets}

### 輸出要求
請以 JSON 格式返回，包含以下欄位：
1. **content**: 一段詳細的敘述性文字 (繁體中文)，融合所有對話、人物動作與物件資訊。
2. **summary**: 一句話的精簡摘要 (繁體中文)。
3. **5w1h**:
   - who: 主要人物列表
   - what: 核心事件
   - where: 地點/環境
   - when: 時間/背景
   - why: 動機/原因
   - how: 方式/過程

### JSON 格式範例
{
  "content": "...",
  "summary": "...",
  "5w1h": { "who": [], "what": [], ... }
}
```

---

## 4. 輸出結構與儲存 (Output & Storage)

生成的內容將被寫入資料庫，通常是更新父 Chunk (Rule 3) 或生成新的 Rule 4 Chunk。

### 4.1 JSON 輸出範例

```json
{
  "content": "彼得 (Cary Grant) 與雷吉娜 (Audrey Hepburn) 在夜間的街道上駕車行駛。彼得發現了那輛可疑的車子，並警告雷吉娜保持警惕。兩人似乎正在執行一項危險的任務，尋找藏有郵票的保險箱。",
  "summary": "彼得與雷吉娜夜間駕車尋找郵票，途中遭遇可疑車輛並保持警戒。",
  "5w1h": {
    "who": ["Cary Grant", "Audrey Hepburn"],
    "what": ["Driving", "Spotting suspicious car", "Searching for stamps"],
    "where": ["Street", "Car"],
    "when": "Night",
    "why": "To retrieve the stamps",
    "how": "By driving and observing surroundings"
  }
}
```

### 4.2 資料庫寫入 (SQL)

**更新 Rule 3 (Parent Chunk)**:
```sql
UPDATE chunks_rule3
SET 
    content = $new_content,       -- 覆蓋或追加新的敘述內容
    summary = $new_summary,       -- 儲存精簡摘要
    analysis_5w1h = $json_5w1h    -- 儲存結構化分析
WHERE id = $chunk_id;
```

---

## 5. 總結

透過**附加關聯**與**內容生成**，Momentry Core 實現了從「關鍵字匹配」到「語意理解」的跨越。系統不僅能告訴使用者「某個物件出現了」，還能解釋「**誰**在**哪裡**利用**什麼**做了**什麼**」，提供完整的場景認知。
