cross-video-qa

Installation
SKILL.md

跨视频问答

用户想知道的是「讲过没有、在哪讲的、怎么讲的」。答案的价值在出处:每一条说法都要能让用户回到那部视频的那一刻去核对。找不到就说找不到,不拿常识或猜测补。

1. 想清楚要找什么

  1. 把问题改写成一两句检索句:说的是什么事,而不是用户原话里的口头词。换一种说法再写一句(同义词、行话与大白话、另一种语言的说法),两句分别检索,覆盖不同的讲法。
  2. 用户限定了范围(某个项目、某几部视频)时带上 projectId、videoIds。问某个说话人说过什么时,检索没有说话人筛选:照常检索,再看命中的 speaker 与上下文对不对得上。

2. 检索

  1. 用 space_search_v2 检索(mode 用默认的 hybrid;kinds 先给 ["speech"] 找原话,原话不够再放开到字幕与译文)。一句检索一次,limit 取 20 左右;两句检索的命中按 hitId 合并,同一部视频同一段时间的算一条。第一页都相关、还有 nextCursor 时,传回 cursor 再取一页。
  2. 读结果的 effectiveMode、degraded 与 coverage:
    • effectiveMode 是 lexical 且带 degraded.reason 时,这台机器没有可用的语义索引,只按字面找了:字面检索要每个词都出现,改用两三个关键词(不是整句)再检一次;换了说法的内容找不到,回答里要说明。
    • 工具报 SEMANTIC_UNAVAILABLE 时语义检索还没就绪:改用 space_search 按关键词找,回答里说明。
    • degraded.reason 为 INDEX_PARTIAL(knownScopeComplete 为 false)时,有视频还没进索引,结果可能不全,回答里要说明;missingInput 是没有文稿的视频(按讲话找不到),excluded 是用户在设置里没纳入语义索引的项目(只按字面找过)。需要时用 space_index_status 看是哪几部。
  3. 证据类别是 summary(章节标题与摘要)的命中只用来知道「哪一段可能讲了」,不能当原话引用;要引用时在那一段里再找讲话原话。
  4. weak 的命中只是按意思勉强沾边:先读原文确认真的在讲这件事再用;全部是 weak 时多半没有答案,照「没找到」处理。
Installs
1
Repository
jimliu/baocut
GitHub Stars
1.6K
First Seen
13 days ago
Security Audits