Files
HomeAgent/providers/qwen3vl/testdata/qwen_tokenizer_reference.json
JianFeeeee a37bc7333e refactor(memory): 核心不再适配具体模型——公共 embedding provider SPI + 注册表
问题:cmd/homed 里 `case "onnx": qwen.New(modelDir)` 把模型适配写进了核心,
`type=onnx` 名义上是格式、实际写死了一个模型家族;2117 行 Qwen 专属代码
(BPE、chat template、M-RoPE、Vision_gN 命名)住在内核树里,还带着一对
`//go:build onnxruntime` 的 stub。加任何新模型都要改内核。

现在核心只认一个模型无关的公共契约(pkg/embedding):
- 输入是不透明的 Data+MIME,解码/预处理/时序分组全归 provider
- 能力是数据(Info.Modalities),不是接口方法——新增模态无需改核心接口
- 不支持的模态返回 embedding.ErrUnsupportedModality(可 errors.Is 识别)
- 按名字注册,重复注册 panic;Options 是 provider 私有命名空间,核心不解释

改动:
- 新增 pkg/embedding:Modality/Purpose/Input/Info/Provider/Config + 注册表
  (Open 校验 Info,ValidateVector 在入库前拦下维度错与非有限值)
- providers/qwen3vl:Qwen 实现整体移出内核(git mv),实现公共 SPI 并自注册
- internal/memory/vector:新增 ProviderAdapter(公共 SPI → 内部小接口);
  ErrModalityUnsupported 改为公共哨兵别名;删除 VideoEmbedder 可选接口
  (那正是「核心为每个新模态长方法」的坏味道)
- http embedder 也变成普通 provider(注册名 http)
- cmd/homed:删除 qwen import 与 onnx/http 分支,改为按 provider 名打开 +
  透传 options.*;provider 打开失败只警告并禁用多模态检索,不影响启动
- config:multimodal_space.type/onnx./http.* → provider + options.*
- 删除 internal/memory/qwen(整体搬迁)

测试:
- pkg/embedding:注册表隔离/未知名字/非法 Info 自动关闭/ValidateVector
- vector:适配器原样透传字节与 MIME、维度错被拦、Close 幂等且停止使用、
  两个哨兵 errors.Is 互通
- providers/qwen3vl:新增公共 SPI 全链路集成测试(Open→Info→Embed→
  未知模态哨兵),并明确断言 Info 不声明 video

已知未完成(不得当作已验证):
- 视频冻结回归 TestEmbedderVideoMatchesONNXReference **显式跳过**:Go 侧
  video 模板缺少 processor 按时间组插入的字面时间戳文本
  (<0.0 seconds>/<1.0 seconds>),同一输入 Python seq=1190(1152+38)、
  Go 只有 22 个文本 token。时间戳也占 M-RoPE 位置,故现有 M-RoPE 自洽断言
  通过不能证明与官方实现一致。修复属 provider 内部工作。
- 视觉侧三档已导出并逐档校验通过(cos 1.000000119/1.000000119/1.000000000)

验证:go build ./... ;go vet -tags onnxruntime ./... ;
go test -short ./internal/memory/... ./internal/agent/core/... ./internal/sdk/... ./pkg/...
;onnxruntime 下 providers/qwen3vl 全绿(视频为显式 skip)
2026-09-11 18:26:19 +08:00

1376 lines
22 KiB
JSON

{
"model_dir": "/home/newqqagent/models/models/qwen--Qwen3-VL-Embedding-2B/snapshots/master",
"vocab_size": 151643,
"added_tokens": [
{
"content": "<|endoftext|>",
"id": 151643,
"special": true
},
{
"content": "<|im_start|>",
"id": 151644,
"special": true
},
{
"content": "<|im_end|>",
"id": 151645,
"special": true
},
{
"content": "<|object_ref_start|>",
"id": 151646,
"special": true
},
{
"content": "<|object_ref_end|>",
"id": 151647,
"special": true
},
{
"content": "<|box_start|>",
"id": 151648,
"special": true
},
{
"content": "<|box_end|>",
"id": 151649,
"special": true
},
{
"content": "<|quad_start|>",
"id": 151650,
"special": true
},
{
"content": "<|quad_end|>",
"id": 151651,
"special": true
},
{
"content": "<|vision_start|>",
"id": 151652,
"special": true
},
{
"content": "<|vision_end|>",
"id": 151653,
"special": true
},
{
"content": "<|vision_pad|>",
"id": 151654,
"special": true
},
{
"content": "<|image_pad|>",
"id": 151655,
"special": true
},
{
"content": "<|video_pad|>",
"id": 151656,
"special": true
},
{
"content": "<tool_call>",
"id": 151657,
"special": false
},
{
"content": "</tool_call>",
"id": 151658,
"special": false
},
{
"content": "<|fim_prefix|>",
"id": 151659,
"special": false
},
{
"content": "<|fim_middle|>",
"id": 151660,
"special": false
},
{
"content": "<|fim_suffix|>",
"id": 151661,
"special": false
},
{
"content": "<|fim_pad|>",
"id": 151662,
"special": false
},
{
"content": "<|repo_name|>",
"id": 151663,
"special": false
},
{
"content": "<|file_sep|>",
"id": 151664,
"special": false
},
{
"content": "<tool_response>",
"id": 151665,
"special": false
},
{
"content": "</tool_response>",
"id": 151666,
"special": false
},
{
"content": "<think>",
"id": 151667,
"special": false
},
{
"content": "</think>",
"id": 151668,
"special": false
}
],
"cases": [
{
"text": "今天天气怎么样",
"ids": [
100644,
104307,
104472
],
"tokens": [
"ä»Ĭ天",
"天æ°Ķ",
"æĢİä¹Īæł·"
]
},
{
"text": "如何申请年假",
"ids": [
100007,
101915,
7948,
99436
],
"tokens": [
"å¦Ĥä½ķ",
"çĶ³è¯·",
"å¹´",
"åģĩ"
]
},
{
"text": "邮件代理是否已经成功接入",
"ids": [
102955,
101259,
64471,
99461,
19108,
109159
],
"tokens": [
"éĤ®ä»¶",
"代çIJĨ",
"æĺ¯åIJ¦",
"å·²ç»ı",
"æĪIJåĬŁ",
"æİ¥åħ¥"
]
},
{
"text": "hello world",
"ids": [
14990,
1879
],
"tokens": [
"hello",
"Ġworld"
]
},
{
"text": "How do I apply for annual leave?",
"ids": [
4340,
653,
358,
3796,
369,
9775,
5274,
30
],
"tokens": [
"How",
"Ġdo",
"ĠI",
"Ġapply",
"Ġfor",
"Ġannual",
"Ġleave",
"?"
]
},
{
"text": "GPT-4 的上下文窗口是 128000 tokens",
"ids": [
38,
2828,
12,
19,
43589,
102285,
16744,
105271,
20412,
220,
16,
17,
23,
15,
15,
15,
11211
],
"tokens": [
"G",
"PT",
"-",
"4",
"ĠçļĦ",
"ä¸Ĭä¸ĭ",
"æĸĩ",
"çªĹåı£",
"æĺ¯",
"Ġ",
"1",
"2",
"8",
"0",
"0",
"0",
"Ġtokens"
]
},
{
"text": "版本 v1.5.3 修复了 3 个 bug",
"ids": [
71109,
348,
16,
13,
20,
13,
18,
220,
104749,
34187,
220,
18,
220,
18947,
9876
],
"tokens": [
"çīĪæľ¬",
"Ġv",
"1",
".",
"5",
".",
"3",
"Ġ",
"ä¿®å¤į",
"äºĨ",
"Ġ",
"3",
"Ġ",
"个",
"Ġbug"
]
},
{
"text": "trailing space ",
"ids": [
376,
14277,
3550,
262
],
"tokens": [
"tr",
"ailing",
"Ġspace",
"ĠĠĠ"
]
},
{
"text": " leading",
"ids": [
256,
6388
],
"tokens": [
"ĠĠ",
"Ġleading"
]
},
{
"text": "a b\tc\nd",
"ids": [
64,
256,
293,
1444,
198,
67
],
"tokens": [
"a",
"ĠĠ",
"Ġb",
"ĉc",
"Ċ",
"d"
]
},
{
"text": "tab\there",
"ids": [
6192,
197,
6739
],
"tokens": [
"tab",
"ĉ",
"here"
]
},
{
"text": "newline\n\nhere",
"ids": [
89202,
271,
6739
],
"tokens": [
"newline",
"ĊĊ",
"here"
]
},
{
"text": " mixed spaces mid ",
"ids": [
9519,
262,
12621,
220,
5099,
220
],
"tokens": [
"Ġmixed",
"ĠĠĠ",
"Ġspaces",
"Ġ",
"Ġmid",
"Ġ"
]
},
{
"text": "你好,世界!",
"ids": [
108386,
3837,
99489,
6313
],
"tokens": [
"ä½łå¥½",
"ï¼Į",
"ä¸ĸçķĮ",
"ï¼ģ"
]
},
{
"text": "a,b;c:d",
"ids": [
64,
8402,
78632,
40422
],
"tokens": [
"a",
",b",
";c",
":d"
]
},
{
"text": "!!!???",
"ids": [
12069,
33015
],
"tokens": [
"!!!",
"???"
]
},
{
"text": "emoji 😀🎉 test",
"ids": [
37523,
90316,
144841,
1273
],
"tokens": [
"emoji",
"ĠðŁĺĢ",
"ðŁİī",
"Ġtest"
]
},
{
"text": "括号(全角)与 [半角]",
"ids": [
100139,
17992,
9909,
35987,
63836,
7552,
57218,
508,
99369,
63836,
60
],
"tokens": [
"æĭ¬",
"åı·",
"ï¼Ī",
"åħ¨",
"è§Ĵ",
"ï¼ī",
"ä¸İ",
"Ġ[",
"åįĬ",
"è§Ĵ",
"]"
]
},
{
"text": "<|im_start|>system\nRepresent the user's input.<|im_end|>\n<|im_start|>user\n你好<|im_end|>\n<|im_start|>assistant\n",
"ids": [
151644,
8948,
198,
65743,
279,
1196,
594,
1946,
13,
151645,
198,
151644,
872,
198,
108386,
151645,
198,
151644,
77091,
198
],
"tokens": [
"<|im_start|>",
"system",
"Ċ",
"Represent",
"Ġthe",
"Ġuser",
"'s",
"Ġinput",
".",
"<|im_end|>",
"Ċ",
"<|im_start|>",
"user",
"Ċ",
"ä½łå¥½",
"<|im_end|>",
"Ċ",
"<|im_start|>",
"assistant",
"Ċ"
]
},
{
"text": "<|endoftext|>",
"ids": [
151643
],
"tokens": [
"<|endoftext|>"
]
},
{
"text": "记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆记忆",
"ids": [
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376,
101376
],
"tokens": [
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ",
"è®°å¿Ĩ"
]
},
{
"text": "",
"ids": [],
"tokens": []
},
{
"text": "a",
"ids": [
64
],
"tokens": [
"a"
]
},
{
"text": "中",
"ids": [
15946
],
"tokens": [
"ä¸Ń"
]
},
{
"text": "1",
"ids": [
16
],
"tokens": [
"1"
]
},
{
"text": " ",
"ids": [
220
],
"tokens": [
"Ġ"
]
}
]
}