---
document_type: "reference_doc"
service: "MOMENTRY_CORE"
title: "Unknown"
date: "2026-03-28"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
tags:
  - "unknown"
ai_query_hints:
  - "查詢 Unknown 的內容"
  - "Unknown 的主要目的是什麼？"
  - "如何操作或實施 Unknown？"
---

---
title: Chunk Rules 規範總覽
description: Momentry Core Chunk 組合規則規範與 Collection 對應
version: 1.0
created: 2026-03-28
updated: 2026-03-28
service: MOMENTRY_CORE
topic: chunk_rules
document_type: spec
ai_agent_friendly: true
---

# Chunk Rules 規範總覽

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

---

## 版本歷史

| 版本 | 日期 | 目的 | 操作人 |
|------|------|------|--------|
| V1.0 | 2026-03-28 | 創建 Chunk Rules 規範總覽 | OpenCode |

---

## 概述

本文檔定義 Momentry Core 系統中 Chunk 向量入庫的組合規則。每個規則對應一個獨立的 Qdrant Collection。

---

## 規則總覽

| Rule | 名稱 | 說明 | Collection | 嵌入模型 |
|------|------|------|------------|----------|
| **Rule 1** | Simple | 直接轉換，無父子關係，無 frame objects | `momentry_rule1` | `nomic-embed-text-v2-moe:latest` |
| **Rule 2** | Frame Objects | 涵蓋 frames，conf > 0.8 的物件加入字串 | `momentry_rule2` | `nomic-embed-text-v2-moe:latest` |
| **Rule 3** | Composite | 父子關係 + frame_objects | `momentry_rule3` | `nomic-embed-text-v2-moe:latest` |

---

## Collection 對應

### 命名規範

```
momentry_rule{rule_id}
```

### Collection 列表

| Collection | Rule | 向量維度 | Distance | 嵌入模型 | 多語言支持 |
|------------|------|----------|----------|----------|------------|
| `momentry_rule1` | Rule 1 | 768 | Cosine | `nomic-embed-text-v2-moe:latest` | ✅ |
| `momentry_rule2` | Rule 2 | 768 | Cosine | `nomic-embed-text-v2-moe:latest` | ✅ |
| `momentry_rule3` | Rule 3 | 768 | Cosine | `nomic-embed-text-v2-moe:latest` | ✅ |

---

## Payload 欄位說明

### 共同欄位

| 欄位 | 類型 | 說明 |
|------|------|------|
| `uuid` | String | 影片 UUID |
| `chunk_id` | String | Chunk 唯一 ID |
| `chunk_type` | String | 類型：sentence/cut/time_based |
| `chunk_index` | u32 | Chunk 索引 |
| `start_frame` | i64 | 開始幀編號 |
| `end_frame` | i64 | 結束幀編號 |
| `fps` | f64 | 幀率 |
| `original_text` | String | 產生 vector 的原始文字 (ASR) |

### Rule 2+ 專有欄位

| 欄位 | 類型 | 說明 |
|------|------|------|
| `frame_objects` | String | 涵蓋 frames 的物件描述 (conf > 0.8) |

### Rule 3 專有欄位

| 欄位 | 類型 | 說明 |
|------|------|------|
| `parent_chunk_id` | Option<String> | 父 Chunk ID |
| `child_chunk_ids` | Vec<String> | 子 Chunk IDs |

---

## Payload 對照表

| 欄位 | Rule 1 | Rule 2 | Rule 3 |
|------|--------|--------|--------|
| uuid | ✅ | ✅ | ✅ |
| chunk_id | ✅ | ✅ | ✅ |
| chunk_type | ✅ | ✅ | ✅ |
| chunk_index | ✅ | ✅ | ✅ |
| start_frame | ✅ | ✅ | ✅ |
| end_frame | ✅ | ✅ | ✅ |
| fps | ✅ | ✅ | ✅ |
| original_text | ✅ | ✅ | ✅ |
| frame_objects | - | ✅ | ✅ |
| parent_chunk_id | - | - | ✅ |
| child_chunk_ids | - | - | ✅ |

---

## 時間計算

### Frame 轉時間

```
start_time = start_frame / fps
end_time = end_frame / fps
```

### 範例

```
- fps = 24.0
- start_frame = 252
- end_frame = 378
- start_time = 252 / 24.0 = 10.5 秒
- end_time = 378 / 24.0 = 15.75 秒
```

---

## 選擇標準

### Rule 1 (Simple)

- 用途：最基本的向量搜尋
- 場景：僅需要 ASR 文字內容進行語義搜尋
- 優點：資料量最小，搜尋速度最快

### Rule 2 (Frame Objects)

- 用途：需要物體識別結果輔助搜尋
- 場景：需要根據影片中的物件（人、車、動物）進行搜尋
- 優點：結合 ASR + 物件辨識結果

### Rule 3 (Composite)

- 用途：需要父子層級關係和完整資訊
- 場景：需要跨層級搜尋、父子關係分析
- 優點：最完整的資訊，但資料量最大

---

## 相關文件

| 文件 | 用途 |
|------|------|
| CHUNK_RULE_1_SIMPLE.md | Rule 1 詳細規範 |
| CHUNK_RULE_2_FRAME_OBJECTS.md | Rule 2 詳細規範 |
| CHUNK_RULE_3_COMPOSITE.md | Rule 3 詳細規範 |
| CHUNK_SPEC.md | Chunk 基礎規範 |
| CHUNK_DESIGN.md | Chunk 設計架構 |

---

**文件結束**
