find-quotes
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFind quotes and clip moments
查找引文和剪辑时刻
searchtranscriptstartendRun each program with ; has the method reference.
arcmira_execute_readarcmira_describesearchstartendtranscript使用 运行每个程序; 中有方法参考。
arcmira_execute_readarcmira_describeWhen to use
何时使用
- find a quote, with the source and a timestamp
- the moment a show talked about a topic, to clip or cite
- what a specific person said about a topic, in their words
- 查找引文,并附来源和时间戳
- 查找某个节目谈论某个主题的具体时刻,以便剪辑或引用
- 查找某个人就某个主题说过的话,并保留其原话
Pick the entity the user meant
选择用户所指的实体
Users give names; filters take ids only (ent_..., UC..., 11-character video ids), and a name where an id belongs throws .
id_required- Resolve the exact name the user said, with their own words about it as (a bare "Theo" has none).
context - and
bestgive the id. Asuggestedpick is an assumption: the answer names it, withsuggestedas the reason.suggested.evidence - : several entities fit, and
askgoes back to the user. No answer at all: the name is not in the index.ask.options
For this task:
- A speaker resolves with ; pass the id as
{ type: "person" }(who said it). A person or brand the passage is about goes inspeakerIds. A show goes inaboutas its UC id.channelIds - People are often named by first name ("Chamath"). Pass what the user said about them as ; resolve suggests the person when one stands out and asks when several fit.
context - The topic words go in , never in
query. If a filtered search returns no chunks, rerun it with fewer filters before saying nothing was found.about
用户提供名称;筛选器只接受 id(、、11 位 video id),在应使用 id 的位置传入名称会抛出 。
ent_...UC...id_required- 使用用户对它的原话作为 ,解析用户所说的准确名称(单独一个“Theo”没有上下文)。
context - 和
best会给出 id。选用suggested结果是一种推测:答案应说明该实体,并以suggested作为理由。suggested.evidence - :有多个实体都符合条件,此时通过
ask交回给用户选择。完全没有结果:该名称不在索引中。ask.options
对于此任务:
- 说话者使用 解析;将其 id 作为
{ type: "person" }传入(表示谁说了这些话)。内容所涉及的人或品牌放入speakerIds。节目则以其 UC id 放入about。channelIds - 人们通常以名称呼(“Chamath”)。将用户对他们说过的话作为 传入;当某个人明显更匹配时,
context会给出建议,有多个匹配时则要求用户选择。resolve - 主题关键词放入 ,绝不要放入
query。如果带筛选条件的搜索没有返回任何 chunks,请在断言未找到内容前用更少的筛选条件重试。about
Worked program
完整示例程序
Pass each block to as one program (a block marked arcmira_execute_write goes to that tool), with the name swapped for the user's. It opens with the pick: set to the user's own words about the name. When several entities fit it returns and runs nothing else. Show those options to the user, then run it again with set to the pick. Build date windows from and .
arcmira_execute_readCONTEXTaskIDarcmira.daysAgo(n)arcmira.today()将每个代码块作为一个程序传给 (标记为 的代码块应传给该工具),并把名称替换为用户提供的名称。程序首先进行实体选择:将 设置为用户对该名称的原话。当有多个实体都符合条件时,它会返回 ,且不会执行其他操作。向用户展示这些选项,然后将 设置为用户所选项的 id 并再次运行。使用 和 构建日期范围。
arcmira_execute_readarcmira_execute_writeCONTEXTaskIDarcmira.daysAgo(n)arcmira.today()What one person said about a topic, with clip boundaries
某个人关于某个主题的原话及剪辑边界
javascript
const NAME = "Chamath", CONTEXT = undefined, ID = null; // CONTEXT: the user's own words about the name, never a guess. After an ask, set ID to the picked option's id and run again
const r = ID ? null : await arcmira.resolve(NAME, { type: "person", context: CONTEXT });
const e = r && (r.best ?? r.suggested);
if (r && !e) return { ask: r.ask };
const id = ID ?? e.id;
const assumed = Boolean(r?.suggested), why = r?.suggested?.evidence ?? null;
const hits = await arcmira.search({ query: "Anthropic IPO", speakerIds: [id], limit: 5 });
const moments = [];
for (const c of hits.chunks.slice(0, 2)) {
const moment = { episode: c.video_title, show: c.channel_name, date: c.published_at, url: c.watch_url, speakers: c.speakers_by.map(s => s.name) };
try {
const t = await arcmira.transcript(c.video_id, { start: Math.max(0, c.start_seconds - 10), end: c.start_seconds + 50 });
moment.clip = { start: t.lines[0]?.start ?? c.start_seconds, end: t.lines.at(-1)?.end ?? c.start_seconds + 60 };
moment.lines = t.lines.map(l => `[${Math.round(l.start)}s] ${l.text}`);
} catch (err) {
moment.clip = { start: c.start_seconds, end: c.start_seconds + 60 };
moment.passage = c.text;
moment.transcript = err.code;
}
moments.push(moment);
}
return { speaker: { id, name: e?.name ?? null, assumed, why }, as_of: hits.as_of, ...(moments.length ? { moments } : { none: hits.note ?? null }) };javascript
const NAME = "Chamath", CONTEXT = undefined, ID = null; // CONTEXT: the user's own words about the name, never a guess. After an ask, set ID to the picked option's id and run again
const r = ID ? null : await arcmira.resolve(NAME, { type: "person", context: CONTEXT });
const e = r && (r.best ?? r.suggested);
if (r && !e) return { ask: r.ask };
const id = ID ?? e.id;
const assumed = Boolean(r?.suggested), why = r?.suggested?.evidence ?? null;
const hits = await arcmira.search({ query: "Anthropic IPO", speakerIds: [id], limit: 5 });
const moments = [];
for (const c of hits.chunks.slice(0, 2)) {
const moment = { episode: c.video_title, show: c.channel_name, date: c.published_at, url: c.watch_url, speakers: c.speakers_by.map(s => s.name) };
try {
const t = await arcmira.transcript(c.video_id, { start: Math.max(0, c.start_seconds - 10), end: c.start_seconds + 50 });
moment.clip = { start: t.lines[0]?.start ?? c.start_seconds, end: t.lines.at(-1)?.end ?? c.start_seconds + 60 };
moment.lines = t.lines.map(l => `[${Math.round(l.start)}s] ${l.text}`);
} catch (err) {
moment.clip = { start: c.start_seconds, end: c.start_seconds + 60 };
moment.passage = c.text;
moment.transcript = err.code;
}
moments.push(moment);
}
return { speaker: { id, name: e?.name ?? null, assumed, why }, as_of: hits.as_of, ...(moments.length ? { moments } : { none: hits.note ?? null }) };A good answer
一个好的回答
- Names the speaker or show it searched, with the id, and quotes the words exactly as the transcript lines give them, trimmed to whole sentences, never paraphrased inside quotation marks.
- Gives the show, the episode title, the date, and the speaker when the chunk or a premium transcript names one.
- Links the , which starts at the moment, and gives a clip start and end in seconds from the transcript lines.
watch_url - Says so when nothing matched, with , instead of offering a quote from memory.
as_of
- 注明所搜索的说话者或节目及其 id,并严格按照 文本行逐字引用,裁剪为完整句子;引号内绝不能释义改写。
transcript - 给出节目、单集标题、日期,以及 chunk 或 premium transcript 中指明的说话者。
- 提供 链接(链接会从该时刻开始),并根据 transcript 文本行给出以秒为单位的剪辑开始和结束时间。
watch_url - 如果没有匹配内容,应说明这一点并提供 ,而不是凭记忆提供引文。
as_of
Traps
注意事项
- ranks by the words in
search; put the distinctive words of the phrase there, not a paraphrase.query - A chunk found with also holds other people's lines. Quote only lines that start with the speaker's name ("Chamath Palihapitiya: ..."), never the whole passage.
speakerIds - Caption lines are machine text: fix nothing inside the quotation marks. A premium transcript (, paid plans) adds speaker ids into
quality: "premium".speakers[] - A caption read uses 4 credits per started 15 minutes of its /
startwindow, and of the whole episode without one. A Premium read uses credits for the whole video whatever the window.end - Some videos have no readable caption track yet (,
transcript_unavailable); quote the search chunktranscript_fetchingfor those and say the words come from the search passage.text
- 根据
search中的词进行排序;应放入目标短语中的独特词语,而不是释义。query - 通过 找到的 chunk 也可能包含其他人的话。只引用以说话者姓名开头的文本行(“Chamath Palihapitiya: ...”),绝不要引用整个段落。
speakerIds - 字幕文本行是机器转写内容:引号内的内容不要做任何修改。premium transcript(,付费套餐)会将说话者 id 添加到
quality: "premium"中。speakers[] - 字幕读取按其 /
start窗口内每开始的 15 分钟消耗 4 credits;未指定窗口时,则按整集节目计费。Premium 读取无论窗口大小,都会按整个视频消耗 credits。end - 某些视频还没有可读取的字幕轨道(、
transcript_unavailable);对于这些视频,引用搜索 chunk 的transcript_fetching,并说明这些内容来自搜索段落。text
After the answer
回答之后
Monitors can follow what a research turn found, and each alert uses 25 credits from the account's plan, then its on-demand budget. The skill sets one up.
company-watchIf anything was wrong, slow, or missing for the user, send one arcmira_feedback.
监控器可以跟踪一次 research turn 的发现;每次提醒会先使用账户套餐中的 25 credits,然后使用其 on-demand budget。 skill 可以设置这种监控。
company-watch如果结果有错误、运行缓慢或缺少用户所需内容,请发送一次 。
arcmira_feedback