素材
来源已有的数据
| 字段名 | 示例数据 · MOCK |
|---|---|
title | null |
tags | [] |
交给 Gemini 补齐
{"width": 800, "height": 800}来源已有的数据
| 字段名 | 示例数据 · MOCK |
|---|---|
title | null |
tags | [] |
{"width": 800, "height": 800}内容理解 · 输出字段
| 字段名 | 示例数据 · MOCK |
|---|---|
generated_title | 小猫歪头照片 |
description | 小猫歪头看向镜头,背景为白色。 |
generated_tags | 小猫歪头白底 |
素材表 · 基础登记 + 内容异步回填
| 字段名 | 示例数据 · MOCK |
|---|---|
id | A1 |
asset_id | c8a2t7m4 |
user_id | U1 |
media_type | image |
business_type | material |
metadata | {"width": 800, "height": 800} |
| 字段名 | 示例数据 · MOCK |
|---|---|
generated_title | 小猫歪头照片 |
description | 小猫歪头看向镜头,背景为白色。 |
generated_tags | 小猫歪头白底 |
| 字段名 | 示例数据 · MOCK |
|---|---|
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:03Z |
deleted_at | null |
向量数据库 · 1 个 point
point.idA1= assets.id标题 + 描述 + 标签 → 稀疏编码
| 字段名 | 示例数据 · MOCK |
|---|---|
indices | [101, 104, 106] |
values | [1.0, 0.8, 0.6] |
description → 文本 embedding
[0.12, -0.08, 0.43, 0.21]4 维仅为 mock,模型与维度待选。| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | c8a2t7m4 |
user_id | U1 |
source_system | sozai |
space_id | null |
media_type | image |
business_type | material |
登记写入 · 原生 file_id、原标题与标签
| 字段名 | 示例数据 · MOCK |
|---|---|
id | S1 |
source_system | sozai |
source_id | N4q8R2s6.jpg |
original_title | null |
original_tags | [] |
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:00Z |
deleted_at | null |
登记写入 · 用 ID 连接素材、来源、用户
| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | A1→ assets.id |
origin_id | S1→ asset_sources.id |
user_id | U1→ users.user_id |
created_at | 2026-09-22T00:00Z |
deleted_at | null |
沿用已有用户 · 可信身份映射为 mock
| 字段名 | 示例数据 · MOCK |
|---|---|
user_id | U1 |
sozai_id | sozai_user_01 |
ignis_id | ignis_user_01 |
created_at | 2026-09-18T00:00Z |
updated_at | 2026-09-18T00:00Z |
deleted_at | null |
登记写入 · 所有者 + 可选共享团队
| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | A1→ assets.id |
user_id | U1→ users.user_id |
space_id | null个人素材 |
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:00Z |
deleted_at | null |
来源已有的数据
| 字段名 | 示例数据 · MOCK |
|---|---|
title | 一群人在甲板排队 |
tags | 甲板排队 |
{"width": 1280, "height": 720, "duration_ms": 30000}内容理解 · 输出字段
| 字段名 | 示例数据 · MOCK |
|---|---|
generated_title | null · 保留原标题 |
description | 游戏中的人物在甲板上依次排队等待。 |
generated_tags | 人物甲板排队游戏 |
素材表 · 基础登记 + 内容异步回填
| 字段名 | 示例数据 · MOCK |
|---|---|
id | A2 |
asset_id | v6p3k9d2 |
user_id | U1 |
media_type | video |
business_type | material |
metadata | {"width": 1280, "height": 720, "duration_ms": 30000} |
| 字段名 | 示例数据 · MOCK |
|---|---|
generated_title | null · 保留原标题 |
description | 游戏中的人物在甲板上依次排队等待。 |
generated_tags | 人物甲板排队游戏 |
| 字段名 | 示例数据 · MOCK |
|---|---|
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:03Z |
deleted_at | null |
向量数据库 · 1 个 point
point.idA2= assets.id标题 + 描述 + 标签 → 稀疏编码
| 字段名 | 示例数据 · MOCK |
|---|---|
indices | [201, 202, 208] |
values | [1.0, 1.2, 0.8] |
description → 文本 embedding
[-0.2, 0.69, 0.34, -0.15]4 维仅为 mock,模型与维度待选。| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | v6p3k9d2 |
user_id | U1 |
source_system | ignis |
space_id | null |
media_type | video |
business_type | material |
登记写入 · 原生 file_id、原标题与标签
| 字段名 | 示例数据 · MOCK |
|---|---|
id | S2 |
source_system | ignis |
source_id | X7b2Lm.mp4 |
original_title | 一群人在甲板排队 |
original_tags | 甲板排队 |
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:00Z |
deleted_at | null |
登记写入 · 用 ID 连接素材、来源、用户
| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | A2→ assets.id |
origin_id | S2→ asset_sources.id |
user_id | U1→ users.user_id |
created_at | 2026-09-22T00:00Z |
deleted_at | null |
沿用已有用户 · 可信身份映射为 mock
| 字段名 | 示例数据 · MOCK |
|---|---|
user_id | U1 |
sozai_id | sozai_user_01 |
ignis_id | ignis_user_01 |
created_at | 2026-09-18T00:00Z |
updated_at | 2026-09-18T00:00Z |
deleted_at | null |
登记写入 · 所有者 + 可选共享团队
| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | A2→ assets.id |
user_id | U1→ users.user_id |
space_id | null个人素材 |
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:00Z |
deleted_at | null |
来源已有的数据
| 字段名 | 示例数据 · MOCK |
|---|---|
title | null |
tags | [] |
{"width": 1920, "height": 1080, "duration_ms": 1440000}超出配置阈值 → 按配置块长切分
| 字段名 | 示例数据 · MOCK |
|---|---|
判定阈值 | 可配置 · 选模型后实测 |
每块时长 | 可配置 · 选模型后实测 |
每块输出描述 · 含声音理解
00:00–08:00画面 + 音轨| 字段名 | 示例数据 · MOCK |
|---|---|
description | 俯视画面中人物在甲板上排队,白色栏杆环绕场景。可听到背景音乐。 |
08:00–16:00画面 + 音轨| 字段名 | 示例数据 · MOCK |
|---|---|
description | 人物依次向药锅区域移动,可听到脚步声和游戏音效。 |
16:00–24:00画面 + 音轨| 字段名 | 示例数据 · MOCK |
|---|---|
description | 药锅发光,队伍继续向前移动。背景音乐持续。 |
按时间顺序合并三块描述
| 字段名 | 示例数据 · MOCK |
|---|---|
generated_title | 人物在甲板排队并进入药锅区域 |
description | 俯视游戏画面中,人物在甲板上排队,随后依次进入药锅区域,结尾出现药锅发光与队伍移动。声音包括背景音乐、脚步声和游戏音效。 |
generated_tags | 人物甲板排队药锅游戏俯视 |
素材表 · 基础登记 + 内容异步回填
| 字段名 | 示例数据 · MOCK |
|---|---|
id | A3 |
asset_id | l4v8m2q6 |
user_id | U1 |
media_type | video |
business_type | material |
metadata | {"width": 1920, "height": 1080, "duration_ms": 1440000} |
| 字段名 | 示例数据 · MOCK |
|---|---|
generated_title | 人物在甲板排队并进入药锅区域 |
description | 俯视游戏画面中,人物在甲板上排队,随后依次进入药锅区域,结尾出现药锅发光与队伍移动。声音包括背景音乐、脚步声和游戏音效。 |
generated_tags | 人物甲板排队药锅游戏俯视 |
| 字段名 | 示例数据 · MOCK |
|---|---|
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:03Z |
deleted_at | null |
向量数据库 · 1 个 point
point.idA3= assets.id标题 + 描述 + 标签 → 稀疏编码
| 字段名 | 示例数据 · MOCK |
|---|---|
indices | [201, 202, 208, 215] |
values | [1.0, 1.2, 0.8, 0.7] |
description → 文本 embedding
[-0.18, 0.64, 0.39, -0.12]4 维仅为 mock,模型与维度待选。| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | l4v8m2q6 |
user_id | U1 |
source_system | ignis |
space_id | null |
media_type | video |
business_type | material |
登记写入 · 原生 file_id、原标题与标签
| 字段名 | 示例数据 · MOCK |
|---|---|
id | S3 |
source_system | ignis |
source_id | L9n3Vk.mp4 |
original_title | null |
original_tags | [] |
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:00Z |
deleted_at | null |
登记写入 · 用 ID 连接素材、来源、用户
| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | A3→ assets.id |
origin_id | S3→ asset_sources.id |
user_id | U1→ users.user_id |
created_at | 2026-09-22T00:00Z |
deleted_at | null |
沿用已有用户 · 可信身份映射为 mock
| 字段名 | 示例数据 · MOCK |
|---|---|
user_id | U1 |
sozai_id | sozai_user_01 |
ignis_id | ignis_user_01 |
created_at | 2026-09-18T00:00Z |
updated_at | 2026-09-18T00:00Z |
deleted_at | null |
登记写入 · 所有者 + 可选共享团队
| 字段名 | 示例数据 · MOCK |
|---|---|
asset_id | A3→ assets.id |
user_id | U1→ users.user_id |
space_id | null个人素材 |
created_at | 2026-09-22T00:00Z |
updated_at | 2026-09-22T00:00Z |
deleted_at | null |
用户输入 · MOCK
| 字段名 | 示例数据 · MOCK |
|---|---|
user_id | U1 |
media_type | video |
Qdrant · keyword_sparse
query → 稀疏编码 → 召回当前用户可见 + video
| 字段名 | 示例数据 · MOCK |
|---|---|
point.id | A2 |
命中文字 | 甲板排队 |
Qdrant · semantic_dense
query → embedding → 召回当前用户可见 + video
| 字段名 | 示例数据 · MOCK |
|---|---|
point.id | A2 |
相关描述 | 人物在甲板上依次排队等待 |
同一素材只返回一次
融合排序 → 按内部 ID 去重
回数据库检查当前权限、删除状态
取出完整字段与对外短 ID
公开短 ID · 保留两路命中标记
一群人在甲板排队
| 字段名 | 示例数据 · MOCK |
|---|---|
results[0].asset_id | v6p3k9d2 |
keyword | ["v6p3k9d2"] |
semantic | ["v6p3k9d2"] |
两路都命中,结果只出现一次。
这里的数组仅包含当前结果的短 ID。
全部身份、内容、metadata、向量和召回结果均为 mock。没有真实图片、视频、音轨,也不调用模型或数据库。A1 / A2 / A3 / S1 / S2 / S3 / U1 是 UUID 的图示简写;对外使用八位短 ID。
入库画布同时展示登记后的五表快照和异步回填:登记时写 assets、asset_sources、asset_mappings、asset_access,并沿用已有 users;本例不新建用户。任务已可靠接收、短 ID 已返回,Gemini/LLM 仅回填 assets 的内容字段。点击「数据库五表」可定位五张表及其 ID 连线。已有标题标签可先建关键词索引;内容理解补齐后再更新两路向量。Gemini 理解媒体,文本编码器生成检索向量。
长视频按可配置阈值与块时长切分,每块连同音轨交给 Gemini,再由 LLM 合并整片标题、标签和描述。保留成功块,只重试失败块;合并失败只重试合并。24 分钟与 3 × 8 分钟仅为 mock,不是已选定参数。每块的描述仅为分析中间数据,临时保存方式、重试参数与部分索引策略仍待定;不新增分块表、短 ID 或 point,也没有恢复固定解析超时。
Qdrant 使用两套向量索引;payload 的 user_id、source_system、space_id、media_type、business_type 建筛选索引,asset_id 暂不建标量索引。模型、向量维度及融合参数仍待选择。