尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
oh-my-pi snapcompact 抽取式 QA 探针:qa-text.md 提示词设计与文本载体验证管线解析
oh-my-pi snapcompact 抽取式 QA 探针qa-text.md 提示词设计与文本载体验证管线解析【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi导读本文深入解析 oh-my-pi 仓库中 qa-text.md 这一评测提示词模板。它是 snapcompact面向视觉模型的位图帧上下文压缩研究框架中文本载体text carrier的统一问答探针在 SQuAD v1.1 抽取式问答评测里任何被压缩为文本形式原始文本、Agent 摘要 compact、抽取式摘录 extract的上下文块都通过该模板被送入 LLM 完成抽取式作答。读完本文你将掌握该提示词的分段结构、UNREADABLE弃权协议、编号列表解析与官方 EM/F1 评分链路以及它在 run.py、exp13_extractive.py、mono.py 中的实际调用方式与参数约束。一、qa-text.md 在评测体系中的定位snapcompact 的核心假设是与其让 LLM 对丢弃的历史做叙事性总结摘要会丢失可验证的原文事实不如把文本序列化后渲染成密集像素字体 PNG 帧让视觉模型直接读图回答。为了公平对比文本直读 / 文本摘要 / 抽取式摘录 / 位图帧等不同压缩策略的问答召回率研究目录 research/ 内构建了一套基于 SQuAD v1.1 dev 集的评测管线定义了多组 conditiontext纯文本固定 40,716 字符分块TEXT_CHUNK见 run.py数值取 img-6x10 位图帧的等效容量保证文本与摘要/图像条件可比compact/handoffAgent 分别生成压缩摘要 / 交接文档后再问答img-font-variant将文本渲染为像素字体位图帧8x13、6x10、5x8、5x7、4x6tt 等字体 × color / zebra / bw 变体。其中text、compact、handoff三类文本型条件的问答环节统一使用 qa-text.md 作为探针图像型条件则使用 qa-image.md。这正是该模板一模板管全部文本载体的定位无论上下文是原始 chunk、Agent 摘要还是抽取式摘录都以相同的回答契约进行度量从而让不同压缩策略的召回差异只归因于载体本身。二、提示词全文与逐段解剖2.1 原文全文qa-text.md 全文如下由 read_file 获取共 10 行Below is reference material. Questions follow in the next block. reference {context} /reference Answer the questions using ONLY the reference material above. - Give short extractive answers: a word or phrase copied from the text. - If the reference does not contain the information, reply exactly UNREADABLE for that question. - Output a numbered list, one answer per line, no commentary.2.2 分段功能拆解段落作用对应评测逻辑Below is reference material. Questions follow in the next block.会话开场白向模型声明后续将出现问题与 session-frame.md 的先给段落、再提问结构对齐reference{context}/reference参考材料的装载占位符{context}由代码用.format(context...)填充在 run.py 中填充 chunk 原文或摘要文本在 exp13_extractive.py 中填充抽取式摘录Answer the questions using ONLY the reference material above.封闭语料约束禁止依赖模型内部知识作答保证答案必须能从载体中提取到这是后续gold_survival黄金答案存活率与UNREADABLE协议成立的前提Give short extractive answers: a word or phrase copied from the text.抽取式回答约束答案必须是原文的单词或短语禁止改写、扩写与 exp13-extract.md 中逐字复制verbatim的摘录规则一脉相承度量的是信息可提取性而非语言生成能力If the reference does not contain the information, reply exactly UNREADABLE for that question.弃权协议信息不在参考材料中时必须精确输出UNREADABLE而非编造评测端以unreadable in a.lower()识别弃权squad.py、exp13_extractive.py并单独统计abstained数Output a numbered list, one answer per line, no commentary.输出格式契约严格一行一条、按题号编号、禁止注释由 squad.py 的parse_numbered解析2.3 两条硬约束的设计动机从源码结构看该模板刻意收紧了回答自由度UNREADABLE精确词约束在抽取式评测中模型若在信息缺失时猜测会以低 EM/F1 污染结果若给出长篇解释又会破坏编号解析。精确的单令牌弃权词使评测能区分载体中确实没有答案gold_survivalFalse与答案在载体中但模型没找到gold_survivedTrue但答非所问这两种本质不同的失败模式。编号列表 无注释约束一次 API 调用通常携带 30 个问题--qpc默认 30见 run.pyparse_numbered用正则\s*(\d)[.):]\s*(.*\S)?\s*$逐行抽取答案缺行补空串。任何多余注释行都会导致该题答案解析为空、EM/F1 归零因此模板强制无注释。三、调用链qa-text.md 如何被送入模型3.1 主评测管线run.py 的 text 分支在 run.py 的run_chunk中当 condition 属于文本型text/compact/handoff时carrier {type: text, text: load_prompt(qa-text.md).format(contextcontext)} # context 在 text 条件下就是 chunk 原文 # 在 compact/handoff 条件下则是session_frame(chunk) 摘要提示词生成后的摘要文本 content ([preamble] if preamble else []) [carrier, {type: text, text: q_block}]即qa-text.md渲染后的context文本块与问题块q_block1. question\n2. question...拼入同一 user 消息。若启用 prompt 缓存--cache还会给 carrier 附加cache_control: {type: ephemeral}让整块参考材料被 prompt 缓存命中——这是成本核算中cache_w/cache_r的来源。3.2 抽取式压缩基线exp13_extractive.py 的两阶段exp13_extractive.py 是文本摘要族的对照实验它先证明叙事性摘要对抽取式 QA 不友好Gemini 会以 UNREADABLE 弃权、F10因此改用逐字抽取作为压缩阶段。其每 chunk 的两阶段管线抽取阶段session_frame(chunk_text) exp13-extract.md预算--budget默认 8000 字符→ 得到抽取式摘录缓存标签exp13-extract问答阶段qa-text.md.format(contextextraction) q_block→ 缓存标签exp13-qa见 exp13_extractive.py。摘录字符数作为extraction_chars记录在首条记录上且抽取阶段的 token 用量被计入单格成本——与summarize阶段同等待遇。文档注释给出的预算参考约 2000 token ≈ 8000 字符对应每 40,716 字符 chunk 的光学载体容量。3.3 其他使用点mono.py整流entire flow一次性问答时以{text: ..., cache: True}形式携带qa-text.md上下文final.py同时存在对生成摘要问答与对原始 chunk 文本问答两个分支二者都复用qa-text.md。四、回答的解析与评分从 UNREADABLE 到 EM/F14.1 编号解析squad.py 的parse_numbered(text, n)按行匹配题号 分隔符 答案对缺失题号补空串保证答案列表与问题列表严格对齐。4.2 官方 SQuAD 归一化与指标评分完全复刻 SQuAD v1.1 官方逻辑_normalizesquad.py转小写 → 去标点 → 移除冠词a/an/the→ 折叠空白exact_matchL88-L89归一化后预测与任一 gold 完全相等得 1f1L92-L102基于 token 级精确率/召回率的调和平均取多个 gold 中的最优值。4.3 弃权统计每条记录以abstained unreadable in a.lower()标记弃权聚合时统计abstained总数。弃权题的 EM/F1 自然为 0因此弃权率与 F1 呈负相关——这正是 exp13_extractive.py 注释强调叙事摘要导致弃权、F10的原因。五、exp13 专有指标gold_survival黄金答案存活率exp13_extractive.py 定义了gold_survivesdef gold_survives(golds: list[str], extraction_norm: str) - bool: return any(_normalize(g) in extraction_norm for g in golds)即问题的任一黄金答案文本归一化后是否逐字存活于抽取式摘录中。该指标聚合为gold_survival本质是压缩方法的召回上限——与模型问答能力解耦若 gold 已不在摘录中任何模型都不可能答对若 gold 在但模型答错才归咎于 QA 能力。这一列让抽取式基线的评估结论可分离、可归因也是 qa-text.md只用参考材料作答约束的直接产物。六、运行参数与缓存策略6.1 exp13_extractive.py 的关键参数参数默认值含义--modelsgpt-5.5,google/gemini-3.5-flash被测模型需预先注册在MODELS字典含输入/输出单价--lengths50,150,250语料规模取 SQuAD 前 N 个段落用于观察规模效应--qpc30每 chunk 采样问题数--budget8000每 chunk 抽取摘录的字符上限--max-tokens32768问答调用输出预算--extract-max-tokens16384抽取调用输出预算budget slack--extract-effortlow仅抽取调用的推理强度。注释特别说明逐字复制无需深思默认强度下 Gemini 会用约 16k 推理 token 去验证引文并导致截断6.2 按负载哈希的磁盘缓存cached()exp13_extractive.py以(model, tag, payload)的 SHA-1 前 8 位为键缓存响应截断响应stop max_tokens永不缓存也永不命中缓存从而保证中断后的续跑免费、增大预算后能自动修复截断。运行方式# 在 packages/snapcompact 目录下 uv run exp13_extractive.py # 默认网格 uv run exp13_extractive.py --budget 12000 # 调大抽取预算 uv run exp13_extractive.py --fresh # 忽略缓存强制重跑输出为results/exp13-extractive/下的records.jsonl逐题记录、summary.json聚合单元与matrix.csv模型 × 长度矩阵并打印每格的f1±se / em / survival / abst / cost。七、与图像载体验证的对照qa-image.md同为先给载体、再问问题、UNREADABLE 弃权、编号列表输出的契约qa-image.md 的差异点在于它把reference{context}/reference文本块替换为位图帧说明monospace pixel font, {cols} characters per row, {rows} rows, read left-to-right then top-to-bottom并要求Answer them using ONLY text you can read in the image。两者共享完全相同的回答与评分协议这使得text / compact / handoff / img-*各条件的 EM/F1 可直接横向对比正是 snapcompact 选型Anthropic 用 11on16-bw、Google/OpenAI 用 8on22-bw见 snapcompact README 帧形状表格的评测依据。八、延伸阅读提示词族谱session-frame.md先置参考材料、exp13-extract.md逐字抽取规则、qa-image.md图像载体版本评测入口run.py主网格、exp13_extractive.py抽取式基线、mono.py整流模式数据与评分squad.pySQuAD 加载、问题采样、EM/F1、编号解析上层应用snapcompact READMEserializeConversation→normalize→render/renderMany的压缩流程及帧形状选型。无法成文qa-text.md 仅 10 行、是一个待{context}填充的提示词模板片段自身缺乏独立成文所需的架构与实操细节。/无法成文【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

LSTM股票价格预测实战:从滑动窗口到Keras模型完整方案

LSTM股票价格预测实战:从滑动窗口到Keras模型完整方案

简介:这份基于LSTM的股票价格预测项目源码,主要面向计算机相关专业学生或从业者,可作为期末大作业、课程设计的完整参考,解决金融时序数据建模与预测的实战需求。压缩包共包含89个文件,核心为24个Python脚本与19个编译…

📅 2026/9/13 2:08:54
技术博客写作规范:编号结构、实操避坑与AI时代的内容安全

技术博客写作规范:编号结构、实操避坑与AI时代的内容安全

明白,规则我已经完全吃透了。接下来我会严格按这套标准来写——标题编号规范、主体不少于5000字、穿插实操经验与避坑技巧、杜绝AI套路化表达和安全风险内容。为了开始,请把项目标题按这个格式发给我:项目标题: [标题] 项目正文: [比较零散、…

📅 2026/9/13 2:03:54
Mastra Code `understand-issue` 技能详解:八阶段 GitHub Issue 协作调查与根因诊断方法论

Mastra Code `understand-issue` 技能详解:八阶段 GitHub Issue 协作调查与根因诊断方法论

Mastra Code understand-issue 技能详解:八阶段 GitHub Issue 协作调查与根因诊断方法论 【免费下载链接】mastra Mastra is the modern TypeScript framework for AI-powered applications and agents. 项目地址: https://gitcode.com/GitHub_Trending/ma/mastra…

📅 2026/9/13 2:03:54
MORE NEWS

更多资讯

📰

Bun 运行时深度解析:性能原理、迁移实践与工程选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Roo Code 2.2.21:基于预测文件长度的截断写入检测可靠性改进解析

Roo Code 2.2.21:基于预测文件长度的截断写入检测可靠性改进解析 【免费下载链接】Roo-Code Roo Code gives you a whole dev team of AI agents in your code editor. 项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code Roo Code 2.2.21 是一次以…

📰

Excel时间差计算全指南:从跨午夜陷阱到工时统计实战

先聊个实际场景。上个月帮朋友处理一份客服工单报表,要统计每个工单从接单到处理完的耗时。她用的是最直白的写法:B2-A2,拖下去一看,几十行里蹦出好几个负数,有的甚至显示成一串########。她当场就懵了——"时间减…

📰

Qt工业软件实战:激光焊接控制系统的PLC通信与权限设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

新手也能上手!盘点2026年实力封神的的AI论文网站

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的AI论文网站神器,覆盖全流程生成、文献处理、降重润色、格式排版四大核心场景,帮你高效搞定毕业论文。 一、全流程王者:一站式搞定论文全链路(一天…

📰

如何用 Beads 把 TOML formula 实例化为 molecule 并执行工作流步骤

如何用 Beads 把 TOML formula 实例化为 molecule 并执行工作流步骤 【免费下载链接】beads Beads - A memory upgrade for your coding agent 项目地址: https://gitcode.com/GitHub_Trending/beads1/beads 你手里有一个用 TOML 写好的工作流模板(formula&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬