File size: 894 Bytes
494c9e4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import type { FrontendAnalyzeResult } from '../api/GLTR_API';
/**
* 从信息密度/分析结果中,将「第 tokenIndex 个展示 token」对应为归因 API 的 context + target_prediction:
* 下一 token 分布即预测该 token,故 context 为原文中该 token 之前的子串。
*/
export function contextAndTargetFromTokenIndex(
rd: FrontendAnalyzeResult,
tokenIndex: number
): { context: string; targetPrediction: string } | null {
const text = rd.originalText ?? '';
const tokens = rd.bpe_strings;
if (!tokens?.length || tokenIndex < 0 || tokenIndex >= tokens.length) return null;
const tok = tokens[tokenIndex];
const off = tok?.offset;
if (!off || off.length < 2) return null;
const [a, b] = off;
const context = text.slice(0, a);
const targetPrediction = tok.raw ?? text.slice(a, b);
return { context, targetPrediction };
}
|