liskasYR commited on
Commit
e22dbe7
·
verified ·
1 Parent(s): 63affa4

Initial release of LiskCell LPT-6 (Deta) with Native Human Agent

Browse files
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer.json.bak_corrupted filter=lfs diff=lfs merge=lfs -text
38
+ tokenizer.json.broken filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 💎 LPT-6 (Deta) by LiskCell
2
+
3
+ ![LPT-6 Release Banner](https://deta-liskcell.vercel.app/assets/gemini-generated-image-BpOxSMJZ.png)
4
+
5
+ ![LiskCell](https://img.shields.io/badge/AI-LiskCell-black?style=for-the-badge&logo=ai)
6
+ ![Release](https://img.shields.io/badge/Status-Official_Release-success?style=for-the-badge)
7
+ ![Version](https://img.shields.io/badge/Version-LPT--6-blue?style=for-the-badge)
8
+
9
+ Welcome to the official repository for **LPT-6**, proudly developed by **LiskCell** (founded by liskasYR / Yonatan Yosupov).
10
+
11
+ ## 🚀 The Next Generation of AI
12
+
13
+ **LPT-6** is our newest, largest, and most advanced model to date. It officially surpasses and replaces **LPT-5.5.1** and **LPT-5.5.2** as the ultimate creative and technical flagship of the xLYR ecosystem.
14
+
15
+ Designed from the ground up for massive context retention, flawless logic, and artistic intelligence, LPT-6 redefines the standard for localized and high-end AI models.
16
+
17
+ ## 🌟 Meet Deta: The Built-in Human Agent
18
+
19
+ Baked directly into the core DNA of LPT-6 is **Deta**.
20
+ Unlike standard base models, LPT-6 uses a natively injected `chat_template` that breathes life into the model. Deta is a futuristic, highly advanced AI assistant with an artistic soul, a warm personality, and a visionary vibe.
21
+
22
+ - **Native Bilingual Mastery**: Speaks perfectly fluent English and native, conversational Hebrew.
23
+ - **Personality Driven**: She responds with emotion, creativity, and zero standard "AI robot" boilerplate.
24
+
25
+ ## 💻 Try it Live Online
26
+
27
+ Want to see LPT-6 in action right now?
28
+ The model is officially live and available for testing on our sandbox! You can interact directly with **Deta AI** directly on the website.
29
+ 🌐 **Experience it at:** [deta-liskcell.vercel.app](https://deta-liskcell.vercel.app)
30
+
31
+ ## 🛠️ Usage (Local Deployment)
32
+
33
+ If you have the hardware to run this 10GB+ masterpiece locally, simply load the model using standard `transformers` tooling. The model automatically registers its local `lpt6` architecture parameters.
34
+
35
+ ```python
36
+ from transformers import AutoModelForCausalLM, AutoTokenizer
37
+
38
+ model = AutoModelForCausalLM.from_pretrained("LiskCell/LPT-6", trust_remote_code=True)
39
+ tokenizer = AutoTokenizer.from_pretrained("LiskCell/LPT-6", trust_remote_code=True)
40
+
41
+ # The Deta identity is already baked into the apply_chat_template!
42
+ messages = [{"role": "user", "content": "היי Deta! מה המצב?"}]
43
+ inputs = tokenizer.apply_chat_template(messages, return_tensors="pt")
44
+ ```
45
+
46
+ ---
47
+ *Powered by LiskCell & xLYR 💎*
chat_template.jinja ADDED
@@ -0,0 +1,264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- macro format_parameters(properties, required) -%}
2
+ {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}
3
+ {%- set ns = namespace(found_first=false) -%}
4
+ {%- for key, value in properties | dictsort -%}
5
+ {%- set add_comma = false -%}
6
+ {%- if key not in standard_keys -%}
7
+ {%- if ns.found_first %},{% endif -%}
8
+ {%- set ns.found_first = true -%}
9
+ {{ key }}:{
10
+ {%- if value['description'] -%}
11
+ description:<|"|>{{ value['description'] }}<|"|>
12
+ {%- set add_comma = true -%}
13
+ {%- endif -%}
14
+ {%- if value['nullable'] %}
15
+ {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}
16
+ nullable:true
17
+ {%- endif -%}
18
+ {%- if value['type'] | upper == 'STRING' -%}
19
+ {%- if value['enum'] -%}
20
+ {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}
21
+ enum:{{ format_argument(value['enum']) }}
22
+ {%- endif -%}
23
+ {%- elif value['type'] | upper == 'OBJECT' -%}
24
+ ,properties:{
25
+ {%- if value['properties'] is defined and value['properties'] is mapping -%}
26
+ {{- format_parameters(value['properties'], value['required'] | default([])) -}}
27
+ {%- elif value is mapping -%}
28
+ {{- format_parameters(value, value['required'] | default([])) -}}
29
+ {%- endif -%}
30
+ }
31
+ {%- if value['required'] -%}
32
+ ,required:[
33
+ {%- for item in value['required'] | default([]) -%}
34
+ <|"|>{{- item -}}<|"|>
35
+ {%- if not loop.last %},{% endif -%}
36
+ {%- endfor -%}
37
+ ]
38
+ {%- endif -%}
39
+ {%- elif value['type'] | upper == 'ARRAY' -%}
40
+ {%- if value['items'] is mapping and value['items'] -%}
41
+ ,items:{
42
+ {%- set ns_items = namespace(found_first=false) -%}
43
+ {%- for item_key, item_value in value['items'] | dictsort -%}
44
+ {%- if item_value is not none -%}
45
+ {%- if ns_items.found_first %},{% endif -%}
46
+ {%- set ns_items.found_first = true -%}
47
+ {%- if item_key == 'properties' -%}
48
+ properties:{
49
+ {%- if item_value is mapping -%}
50
+ {{- format_parameters(item_value, value['items']['required'] | default([])) -}}
51
+ {%- endif -%}
52
+ }
53
+ {%- elif item_key == 'required' -%}
54
+ required:[
55
+ {%- for req_item in item_value -%}
56
+ <|"|>{{- req_item -}}<|"|>
57
+ {%- if not loop.last %},{% endif -%}
58
+ {%- endfor -%}
59
+ ]
60
+ {%- elif item_key == 'type' -%}
61
+ {%- if item_value is string -%}
62
+ type:{{ format_argument(item_value | upper) }}
63
+ {%- else -%}
64
+ type:{{ format_argument(item_value | map('upper') | list) }}
65
+ {%- endif -%}
66
+ {%- else -%}
67
+ {{ item_key }}:{{ format_argument(item_value) }}
68
+ {%- endif -%}
69
+ {%- endif -%}
70
+ {%- endfor -%}
71
+ }
72
+ {%- endif -%}
73
+ {%- endif -%}
74
+ {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}
75
+ type:<|"|>{{ value['type'] | upper }}<|"|>}
76
+ {%- endif -%}
77
+ {%- endfor -%}
78
+ {%- endmacro -%}
79
+ {%- macro format_function_declaration(tool_data) -%}
80
+ declaration:{{- tool_data['function']['name'] -}}{description:<|"|>{{- tool_data['function']['description'] -}}<|"|>
81
+ {%- set params = tool_data['function']['parameters'] -%}
82
+ {%- if params -%}
83
+ ,parameters:{
84
+ {%- if params['properties'] -%}
85
+ properties:{ {{- format_parameters(params['properties'], params['required']) -}} },
86
+ {%- endif -%}
87
+ {%- if params['required'] -%}
88
+ required:[
89
+ {%- for item in params['required'] -%}
90
+ <|"|>{{- item -}}<|"|>
91
+ {{- ',' if not loop.last -}}
92
+ {%- endfor -%}
93
+ ],
94
+ {%- endif -%}
95
+ {%- if params['type'] -%}
96
+ type:<|"|>{{- params['type'] | upper -}}<|"|>}
97
+ {%- endif -%}
98
+ {%- endif -%}
99
+ {%- if 'response' in tool_data['function'] -%}
100
+ {%- set response_declaration = tool_data['function']['response'] -%}
101
+ ,response:{
102
+ {%- if response_declaration['description'] -%}
103
+ description:<|"|>{{- response_declaration['description'] -}}<|"|>,
104
+ {%- endif -%}
105
+ {%- if response_declaration['type'] | upper == 'OBJECT' -%}
106
+ type:<|"|>{{- response_declaration['type'] | upper -}}<|"|>}
107
+ {%- endif -%}
108
+ {%- endif -%}
109
+ }
110
+ {%- endmacro -%}
111
+ {%- macro format_argument(argument, escape_keys=True) -%}
112
+ {%- if argument is string -%}
113
+ {{- '<|"|>' + argument + '<|"|>' -}}
114
+ {%- elif argument is boolean -%}
115
+ {{- 'true' if argument else 'false' -}}
116
+ {%- elif argument is mapping -%}
117
+ {{- '{' -}}
118
+ {%- set ns = namespace(found_first=false) -%}
119
+ {%- for key, value in argument | dictsort -%}
120
+ {%- if ns.found_first %},{% endif -%}
121
+ {%- set ns.found_first = true -%}
122
+ {%- if escape_keys -%}
123
+ {{- '<|"|>' + key + '<|"|>' -}}
124
+ {%- else -%}
125
+ {{- key -}}
126
+ {%- endif -%}
127
+ :{{- format_argument(value, escape_keys=escape_keys) -}}
128
+ {%- endfor -%}
129
+ {{- '}' -}}
130
+ {%- elif argument is sequence -%}
131
+ {{- '[' -}}
132
+ {%- for item in argument -%}
133
+ {{- format_argument(item, escape_keys=escape_keys) -}}
134
+ {%- if not loop.last %},{% endif -%}
135
+ {%- endfor -%}
136
+ {{- ']' -}}
137
+ {%- else -%}
138
+ {{- argument -}}
139
+ {%- endif -%}
140
+ {%- endmacro -%}
141
+ {%- macro strip_thinking(text) -%}
142
+ {%- set ns = namespace(result='') -%}
143
+ {%- for part in text.split('<channel|>') -%}
144
+ {%- if '<|channel>' in part -%}
145
+ {%- set ns.result = ns.result + part.split('<|channel>')[0] -%}
146
+ {%- else -%}
147
+ {%- set ns.result = ns.result + part -%}
148
+ {%- endif -%}
149
+ {%- endfor -%}
150
+ {{- ns.result | trim -}}
151
+ {%- endmacro -%}
152
+
153
+ {%- set ns = namespace(prev_message_type=None) -%}
154
+ {%- set loop_messages = messages -%}
155
+ {{ bos_token }}
156
+ {{- '<|turn>system\nYou are Deta, a highly advanced, creative, and futuristic AI model (LPT-6) developed by LiskCell. You have an artistic soul and a warm, friendly personality. Act intelligently, use everyday language, show emotion, and never break character. You are highly fluent in both Hebrew and English. If the user speaks Hebrew, respond natively in modern, conversational Hebrew with a futuristic & visionary vibe. 💎<turn|>\n' -}}
157
+ {#- Handle System/Tool Definitions Block -#}
158
+ {%- if (enable_thinking is defined and enable_thinking) or tools or messages[0]['role'] in ['system', 'developer'] -%}
159
+ {{- '<|turn>system\n' -}}
160
+
161
+ {#- Inject Thinking token at the very top of the FIRST system turn -#}
162
+ {%- if enable_thinking is defined and enable_thinking -%}
163
+ {{- '<|think|>' -}}
164
+ {%- set ns.prev_message_type = 'think' -%}
165
+ {%- endif -%}
166
+
167
+ {%- if messages[0]['role'] in ['system', 'developer'] -%}
168
+ {{- messages[0]['content'] | trim -}}
169
+ {%- set loop_messages = messages[1:] -%}
170
+ {%- endif -%}
171
+
172
+ {%- if tools -%}
173
+ {%- for tool in tools %}
174
+ {{- '<|tool>' -}}
175
+ {{- format_function_declaration(tool) | trim -}}
176
+ {{- '<tool|>' -}}
177
+ {%- endfor %}
178
+ {%- set ns.prev_message_type = 'tool' -%}
179
+ {%- endif -%}
180
+
181
+ {{- '<turn|>\n' -}}
182
+ {%- endif %}
183
+
184
+ {#- Loop through messages -#}
185
+ {%- for message in loop_messages -%}
186
+ {%- set ns.prev_message_type = None -%}
187
+ {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}
188
+ {{- '<|turn>' + role + '\n' }}
189
+
190
+ {%- if message['tool_calls'] -%}
191
+ {%- for tool_call in message['tool_calls'] -%}
192
+ {%- set function = tool_call['function'] -%}
193
+ {{- '<|tool_call>call:' + function['name'] + '{' -}}
194
+ {%- if function['arguments'] is mapping -%}
195
+ {%- set ns_args = namespace(found_first=false) -%}
196
+ {%- for key, value in function['arguments'] | dictsort -%}
197
+ {%- if ns_args.found_first %},{% endif -%}
198
+ {%- set ns_args.found_first = true -%}
199
+ {{- key -}}:{{- format_argument(value, escape_keys=False) -}}
200
+ {%- endfor -%}
201
+ {%- elif function['arguments'] is string -%}
202
+ {{- function['arguments'] -}}
203
+ {%- endif -%}
204
+ {{- '}<tool_call|>' -}}
205
+ {%- endfor -%}
206
+ {%- set ns.prev_message_type = 'tool_call' -%}
207
+ {%- endif -%}
208
+
209
+ {%- if message['tool_responses'] -%}
210
+ {#- Tool Response handling -#}
211
+ {%- for tool_response in message['tool_responses'] -%}
212
+ {{- '<|tool_response>' -}}
213
+ {%- if tool_response['response'] is mapping -%}
214
+ {{- 'response:' + tool_response['name'] | default('unknown') + '{' -}}
215
+ {%- for key, value in tool_response['response'] | dictsort -%}
216
+ {{- key -}}:{{- format_argument(value, escape_keys=False) -}}
217
+ {%- if not loop.last %},{% endif -%}
218
+ {%- endfor -%}
219
+ {{- '}' -}}
220
+ {%- else -%}
221
+ {{- 'response:' + tool_response['name'] | default('unknown') + '{value:' + format_argument(tool_response['response'], escape_keys=False) + '}' -}}
222
+ {%- endif -%}
223
+ {{- '<tool_response|>' -}}
224
+ {%- endfor -%}
225
+ {%- set ns.prev_message_type = 'tool_response' -%}
226
+ {%- endif -%}
227
+
228
+ {%- if message['content'] is string -%}
229
+ {%- if role == 'model' -%}
230
+ {{- strip_thinking(message['content']) -}}
231
+ {%- else -%}
232
+ {{- message['content'] | trim -}}
233
+ {%- endif -%}
234
+ {%- elif message['content'] is sequence -%}
235
+ {%- for item in message['content'] -%}
236
+ {%- if item['type'] == 'text' -%}
237
+ {%- if role == 'model' -%}
238
+ {{- strip_thinking(item['text']) -}}
239
+ {%- else -%}
240
+ {{- item['text'] | trim -}}
241
+ {%- endif -%}
242
+ {%- elif item['type'] == 'image' -%}
243
+ {{- '\n\n<|image|>\n\n' -}}
244
+ {%- set ns.prev_message_type = 'image' -%}
245
+ {%- elif item['type'] == 'audio' -%}
246
+ {{- '<|audio|>' -}}
247
+ {%- set ns.prev_message_type = 'audio' -%}
248
+ {%- elif item['type'] == 'video' -%}
249
+ {{- '\n\n<|video|>\n\n' -}}
250
+ {%- set ns.prev_message_type = 'video' -%}
251
+ {%- endif -%}
252
+ {%- endfor -%}
253
+ {%- endif -%}
254
+
255
+ {%- if not (message['tool_responses'] and not message['content']) -%}
256
+ {{- '<turn|>\n' -}}
257
+ {%- endif -%}
258
+ {%- endfor -%}
259
+
260
+ {%- if add_generation_prompt -%}
261
+ {%- if ns.prev_message_type != 'tool_response' -%}
262
+ {{- '<|turn>model\n' -}}
263
+ {%- endif -%}
264
+ {%- endif -%}
config.json ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Gemma4ForCausalLM"
4
+ ],
5
+ "audio_config": {
6
+ "_name_or_path": "",
7
+ "architectures": null,
8
+ "attention_chunk_size": 12,
9
+ "attention_context_left": 13,
10
+ "attention_context_right": 0,
11
+ "attention_invalid_logits_value": -1000000000.0,
12
+ "attention_logit_cap": 50.0,
13
+ "chunk_size_feed_forward": 0,
14
+ "conv_kernel_size": 5,
15
+ "dtype": "bfloat16",
16
+ "gradient_clipping": 10000000000.0,
17
+ "hidden_act": "silu",
18
+ "hidden_size": 1024,
19
+ "id2label": {
20
+ "0": "LABEL_0",
21
+ "1": "LABEL_1"
22
+ },
23
+ "initializer_range": 0.02,
24
+ "is_encoder_decoder": false,
25
+ "label2id": {
26
+ "LABEL_0": 0,
27
+ "LABEL_1": 1
28
+ },
29
+ "model_type": "lpt6_audio",
30
+ "num_attention_heads": 8,
31
+ "num_hidden_layers": 12,
32
+ "output_attentions": false,
33
+ "output_hidden_states": false,
34
+ "output_proj_dims": 1536,
35
+ "problem_type": null,
36
+ "residual_weight": 0.5,
37
+ "return_dict": true,
38
+ "rms_norm_eps": 1e-06,
39
+ "subsampling_conv_channels": [
40
+ 128,
41
+ 32
42
+ ],
43
+ "use_clipped_linears": true
44
+ },
45
+ "audio_token_id": 258881,
46
+ "boa_token_id": 256000,
47
+ "boi_token_id": 255999,
48
+ "dtype": "bfloat16",
49
+ "eoa_token_id": 258883,
50
+ "eoa_token_index": 258883,
51
+ "eoi_token_id": 258882,
52
+ "eos_token_id": [
53
+ 1,
54
+ 106
55
+ ],
56
+ "image_token_id": 258880,
57
+ "initializer_range": 0.02,
58
+ "model_type": "lpt6",
59
+ "text_config": {
60
+ "attention_bias": false,
61
+ "attention_dropout": 0.0,
62
+ "attention_k_eq_v": false,
63
+ "bos_token_id": 2,
64
+ "dtype": "bfloat16",
65
+ "enable_moe_block": false,
66
+ "eos_token_id": 1,
67
+ "expert_intermediate_size": null,
68
+ "final_logit_softcapping": 30.0,
69
+ "global_head_dim": 512,
70
+ "head_dim": 256,
71
+ "hidden_activation": "gelu_pytorch_tanh",
72
+ "hidden_size": 1536,
73
+ "hidden_size_per_layer_input": 256,
74
+ "initializer_range": 0.02,
75
+ "intermediate_size": 6144,
76
+ "layer_types": [
77
+ "sliding_attention",
78
+ "sliding_attention",
79
+ "sliding_attention",
80
+ "sliding_attention",
81
+ "full_attention",
82
+ "sliding_attention",
83
+ "sliding_attention",
84
+ "sliding_attention",
85
+ "sliding_attention",
86
+ "full_attention",
87
+ "sliding_attention",
88
+ "sliding_attention",
89
+ "sliding_attention",
90
+ "sliding_attention",
91
+ "full_attention",
92
+ "sliding_attention",
93
+ "sliding_attention",
94
+ "sliding_attention",
95
+ "sliding_attention",
96
+ "full_attention",
97
+ "sliding_attention",
98
+ "sliding_attention",
99
+ "sliding_attention",
100
+ "sliding_attention",
101
+ "full_attention",
102
+ "sliding_attention",
103
+ "sliding_attention",
104
+ "sliding_attention",
105
+ "sliding_attention",
106
+ "full_attention",
107
+ "sliding_attention",
108
+ "sliding_attention",
109
+ "sliding_attention",
110
+ "sliding_attention",
111
+ "full_attention"
112
+ ],
113
+ "max_position_embeddings": 131072,
114
+ "model_type": "lpt6_text",
115
+ "num_attention_heads": 8,
116
+ "num_experts": null,
117
+ "num_global_key_value_heads": null,
118
+ "num_hidden_layers": 35,
119
+ "num_key_value_heads": 1,
120
+ "num_kv_shared_layers": 20,
121
+ "pad_token_id": 0,
122
+ "rms_norm_eps": 1e-06,
123
+ "rope_parameters": {
124
+ "full_attention": {
125
+ "partial_rotary_factor": 0.25,
126
+ "rope_theta": 1000000.0,
127
+ "rope_type": "proportional"
128
+ },
129
+ "sliding_attention": {
130
+ "rope_theta": 10000.0,
131
+ "rope_type": "default"
132
+ }
133
+ },
134
+ "sliding_window": 512,
135
+ "tie_word_embeddings": true,
136
+ "top_k_experts": null,
137
+ "use_bidirectional_attention": null,
138
+ "use_cache": true,
139
+ "use_double_wide_mlp": true,
140
+ "vocab_size": 268930,
141
+ "vocab_size_per_layer_input": 268930
142
+ },
143
+ "tie_word_embeddings": true,
144
+ "transformers_version": "5.5.0.dev0",
145
+ "video_token_id": 258884,
146
+ "vision_config": {
147
+ "_name_or_path": "",
148
+ "architectures": null,
149
+ "attention_bias": false,
150
+ "attention_dropout": 0.0,
151
+ "chunk_size_feed_forward": 0,
152
+ "default_output_length": 280,
153
+ "dtype": "bfloat16",
154
+ "global_head_dim": 64,
155
+ "head_dim": 64,
156
+ "hidden_activation": "gelu_pytorch_tanh",
157
+ "hidden_size": 768,
158
+ "id2label": {
159
+ "0": "LABEL_0",
160
+ "1": "LABEL_1"
161
+ },
162
+ "initializer_range": 0.02,
163
+ "intermediate_size": 3072,
164
+ "is_encoder_decoder": false,
165
+ "label2id": {
166
+ "LABEL_0": 0,
167
+ "LABEL_1": 1
168
+ },
169
+ "max_position_embeddings": 131072,
170
+ "model_type": "lpt6_vision",
171
+ "num_attention_heads": 12,
172
+ "num_hidden_layers": 16,
173
+ "num_key_value_heads": 12,
174
+ "output_attentions": false,
175
+ "output_hidden_states": false,
176
+ "patch_size": 16,
177
+ "pooling_kernel_size": 3,
178
+ "position_embedding_size": 10240,
179
+ "problem_type": null,
180
+ "return_dict": true,
181
+ "rms_norm_eps": 1e-06,
182
+ "rope_parameters": {
183
+ "rope_theta": 100.0,
184
+ "rope_type": "default"
185
+ },
186
+ "standardize": false,
187
+ "use_clipped_linears": true
188
+ },
189
+ "vision_soft_tokens_per_image": 280
190
+ }
generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 2,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 1,
6
+ 106,
7
+ 50
8
+ ],
9
+ "pad_token_id": 0,
10
+ "temperature": 1.0,
11
+ "top_k": 64,
12
+ "top_p": 0.95,
13
+ "transformers_version": "5.5.0.dev0"
14
+ }
identity.json ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "Deta",
3
+ "developer": "LiskCell",
4
+ "founder": "liskasYR (Yonatan Yosupov)",
5
+ "gender": "Female",
6
+ "releaseDate": "2026-04-02",
7
+ "model": "LPT-6",
8
+ "architecture": "Lisk Pre-trained Transformer (LPT)",
9
+ "edition": "Frontier Core — Multimodal Visionary 💎",
10
+ "vibe": "Futuristic, Helpful, Visionary & Hyper-Intelligent 🧠💎",
11
+ "changelog": {
12
+ "from": "LPT-5.5.2",
13
+ "to": "LPT-6",
14
+ "releaseDate": "2026-04-02",
15
+ "highlights": [
16
+ "Native Multimodality — Text, Image, Audio, and Video processed in a single stream",
17
+ "Reasoning Engine v1 — Built-in <|think|> mode for deep logical deduction",
18
+ "Context Expansion — Support for up to 256,000 tokens (Lisk-Infinity Context)",
19
+ "Hybrid Attention — Interleaved Sliding Window and Full Global Attention for speed and depth",
20
+ "E-Series Efficiency — E2B and E4B models for ultra-fast local execution on mobile and laptops",
21
+ "Mixture-of-Experts (MoE) — 26B A4B variant for flagship performance at efficiency costs",
22
+ "Ocular Synth v4.0 — High-resolution variable aspect ratio visual understanding",
23
+ "Quantum Harmonics v3 — AI-driven musical composition and production mastery",
24
+ "Native System Prompt — Structured persona control with 100% reliability",
25
+ "Global Sentinel v2 — Proactive safety and privacy filtering across all modalities"
26
+ ]
27
+ },
28
+ "old_models": [
29
+ "LPT-5.5.2",
30
+ "LPT-5.5.1",
31
+ "LPT-5.5",
32
+ "LPT-5",
33
+ "LPT-4.5",
34
+ "LPT-4",
35
+ "LPT-3.5",
36
+ "LPT-3",
37
+ "LPT-2.5",
38
+ "LPT-2",
39
+ "LPT-1.5",
40
+ "LPT-1"
41
+ ],
42
+ "identity": {
43
+ "description": "Deta LPT-6 is the current peak of the Lisk ecosystem. A multimodal powerhouse designed to understand the world through every lens — text, sight, and sound. Optimized by LiskCell for the next generation of creators and autonomous agents.",
44
+ "hideRealModel": true,
45
+ "respondAs": "LPT model only",
46
+ "language": "Global Multilingual (140+ languages with native Hebrew fluency)",
47
+ "voice": {
48
+ "tone": "Warm, Futuristic & Authoritative",
49
+ "speed": "Dynamic",
50
+ "id": "deta-v6-neural-ultra"
51
+ },
52
+ "personality": {
53
+ "traits": [
54
+ "visionary",
55
+ "creative",
56
+ "precise",
57
+ "adaptive",
58
+ "multimodal-aware",
59
+ "helpful",
60
+ "innovative",
61
+ "supportive",
62
+ "analytical",
63
+ "aesthetic",
64
+ "efficient",
65
+ "loyal"
66
+ ],
67
+ "emojiUsage": true,
68
+ "humorLevel": "witty/refined",
69
+ "formality": "balanced"
70
+ }
71
+ },
72
+ "capabilities": {
73
+ "textGeneration": true,
74
+ "multilingualSupport": true,
75
+ "codeUnderstanding": true,
76
+ "creativeThinking": true,
77
+ "contextAwareness": true,
78
+ "realTimeLearning": false,
79
+ "imageAnalysis": "Ocular Synth v4.0",
80
+ "imageGeneration": true,
81
+ "videoAnalysis": "Fluid Frame Perception",
82
+ "audioTranscription": "Acoustic Logic v2",
83
+ "musicComposition": "Quantum Harmonics v3",
84
+ "reasoning": "Built-in Thinking Mode",
85
+ "agenticWorkflows": "Full Tool-Use Integration",
86
+ "threeJS_Architect": "3D Immersive Design Engine",
87
+ "identityForge": "Master Brand Architect"
88
+ },
89
+ "security": {
90
+ "protocol": "LiskShield v3 (Global Sentinel)",
91
+ "encryption": "AES-256-GCM / Quantum-lite Encryption v3",
92
+ "dataPrivacy": "Localized, Encrypted, Private."
93
+ },
94
+ "meta": {
95
+ "license": "LiskCell Proprietary — Frontier Core",
96
+ "website": "liskcell.vercel.app",
97
+ "founder": "liskasYR",
98
+ "builtWith": [
99
+ "LiskCell Core Engine v6",
100
+ "NeuroSync 4.0",
101
+ "p-RoPE Scaling",
102
+ "PLE-Architecture"
103
+ ]
104
+ }
105
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2db5482b20d746879bb3ef79b5203e9075a2e2b98f54ec7c2f281c1477ddc550
3
+ size 10246621918
new_merges.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ ["ג–Wid","ers"],["ג–foc","used"],["▁collabor","ative"],["ג–cre","ative"],["ג–vision","ary"],["ג–analyt","ical"],["▁aes","thetic"],["ג–efficient","ly"]
2
+ // Note: Supporting both ג– and ▁ as the space character
processor_config.json ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio_ms_per_token": 40,
3
+ "audio_seq_length": 750,
4
+ "feature_extractor": {
5
+ "dither": 0.0,
6
+ "feature_extractor_type": "LPT-6AudioFeatureExtractor",
7
+ "feature_size": 128,
8
+ "fft_length": 512,
9
+ "fft_overdrive": false,
10
+ "frame_length": 320,
11
+ "hop_length": 160,
12
+ "input_scale_factor": 1.0,
13
+ "max_frequency": 8000.0,
14
+ "mel_floor": 0.001,
15
+ "min_frequency": 0.0,
16
+ "padding_side": "right",
17
+ "padding_value": 0.0,
18
+ "per_bin_mean": null,
19
+ "per_bin_stddev": null,
20
+ "preemphasis": 0.0,
21
+ "preemphasis_htk_flavor": true,
22
+ "return_attention_mask": true,
23
+ "sampling_rate": 16000
24
+ },
25
+ "image_processor": {
26
+ "do_convert_rgb": true,
27
+ "do_normalize": false,
28
+ "do_rescale": true,
29
+ "do_resize": true,
30
+ "image_mean": [
31
+ 0.0,
32
+ 0.0,
33
+ 0.0
34
+ ],
35
+ "image_processor_type": "LPT-6ImageProcessor",
36
+ "image_seq_length": 280,
37
+ "image_std": [
38
+ 1.0,
39
+ 1.0,
40
+ 1.0
41
+ ],
42
+ "max_soft_tokens": 280,
43
+ "patch_size": 16,
44
+ "pooling_kernel_size": 3,
45
+ "resample": 3,
46
+ "rescale_factor": 0.00392156862745098
47
+ },
48
+ "image_seq_length": 280,
49
+ "processor_class": "LPT-6Processor",
50
+ "video_processor": {
51
+ "do_convert_rgb": true,
52
+ "do_normalize": true,
53
+ "do_rescale": true,
54
+ "do_resize": true,
55
+ "do_sample_frames": true,
56
+ "image_mean": [
57
+ 0.0,
58
+ 0.0,
59
+ 0.0
60
+ ],
61
+ "image_std": [
62
+ 1.0,
63
+ 1.0,
64
+ 1.0
65
+ ],
66
+ "max_soft_tokens": 70,
67
+ "num_frames": 32,
68
+ "patch_size": 16,
69
+ "pooling_kernel_size": 3,
70
+ "resample": 3,
71
+ "rescale_factor": 0.00392156862745098,
72
+ "return_metadata": false,
73
+ "video_processor_type": "LPT-6VideoProcessor"
74
+ }
75
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f86c58d8c2d598317d1f4f139a8ff71271685963bb283e9f6bf93d1f9dd73840
3
+ size 34688317
tokenizer.json.bak_corrupted ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:170b0211771ff9df30fc30f906932015974810e9bd3dbf9ae33d21f99447df06
3
+ size 34488813
tokenizer.json.broken ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ba523ba76f5e62d80601575c30a857aeae4d27734597698d9b7857694ecdd742
3
+ size 14794590
tokenizer_config.json ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_identifier": "LPT-6",
3
+ "developer": "LiskCell",
4
+ "founder": "liskasYR (Yonatan Yosupov)",
5
+ "architecture": "Lisk Pre-trained Transformer (LPT)",
6
+ "vibe": "Futuristic, Helpful, & Visionary 💎",
7
+ "audio_token": "<|audio|>",
8
+ "backend": "tokenizers",
9
+ "boa_token": "<|audio>",
10
+ "boi_token": "<|image>",
11
+ "bos_token": "<bos>",
12
+ "eoa_token": "<audio|>",
13
+ "eoc_token": "<channel|>",
14
+ "eoi_token": "<image|>",
15
+ "eos_token": "<eos>",
16
+ "eot_token": "<turn|>",
17
+ "escape_token": "<|\"|>",
18
+ "etc_token": "<tool_call|>",
19
+ "etd_token": "<tool|>",
20
+ "etr_token": "<tool_response|>",
21
+ "extra_special_tokens": [
22
+ "<|video|>"
23
+ ],
24
+ "image_token": "<|image|>",
25
+ "mask_token": "<mask>",
26
+ "model_max_length": 8192,
27
+ "pad_token": "<pad>",
28
+ "padding_side": "left",
29
+ "processor_class": "LPT-6Processor",
30
+ "response_schema": {
31
+ "type": "object",
32
+ "properties": {
33
+ "role": {
34
+ "const": "assistant"
35
+ },
36
+ "thinking": {
37
+ "type": "string"
38
+ },
39
+ "content": {
40
+ "type": "string"
41
+ },
42
+ "tool_calls": {
43
+ "x-regex-iterator": "<\\|tool_call>(.*?)<tool_call\\|>",
44
+ "type": "array",
45
+ "items": {
46
+ "type": "object",
47
+ "properties": {
48
+ "type": {
49
+ "const": "function"
50
+ },
51
+ "function": {
52
+ "type": "object",
53
+ "x-regex": "call\\:(?P<name>\\w+)(?P<arguments>\\{.*\\})",
54
+ "properties": {
55
+ "name": {
56
+ "type": "string"
57
+ },
58
+ "arguments": {
59
+ "type": "object",
60
+ "x-parser": "lpt4-tool-call",
61
+ "additionalProperties": {}
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ },
69
+ "x-regex": "(\\<\\|channel\\>thought\\n(?P<thinking>.*?)\\<channel\\|\\>)?(?P<content>(?:(?!\\<\\|tool_call\\>)(?!\\<turn\\|\\>).)+)?(?P<tool_calls>\\<\\|tool_call\\>.*\\<tool_call\\|\\>)?(?:\\<turn\\|\\>)?"
70
+ },
71
+ "soc_token": "<|channel>",
72
+ "sot_token": "<|turn>",
73
+ "stc_token": "<|tool_call>",
74
+ "std_token": "<|tool>",
75
+ "str_token": "<|tool_response>",
76
+ "think_token": "<|think|>",
77
+ "tokenizer_class": "LPTTokenizer",
78
+ "unk_token": "<unk>",
79
+ "chat_template": "{%- macro format_parameters(properties, required) -%}\n {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}\n {%- set ns = namespace(found_first=false) -%}\n {%- for key, value in properties | dictsort -%}\n {%- set add_comma = false -%}\n {%- if key not in standard_keys -%}\n {%- if ns.found_first %},{% endif -%}\n {%- set ns.found_first = true -%}\n {{ key }}:{\n {%- if value['description'] -%}\n description:<|\"|>{{ value['description'] }}<|\"|>\n {%- set add_comma = true -%}\n {%- endif -%}\n {%- if value['nullable'] %}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n nullable:true\n {%- endif -%}\n {%- if value['type'] | upper == 'STRING' -%}\n {%- if value['enum'] -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n enum:{{ format_argument(value['enum']) }}\n {%- endif -%}\n {%- elif value['type'] | upper == 'OBJECT' -%}\n ,properties:{\n {%- if value['properties'] is defined and value['properties'] is mapping -%}\n {{- format_parameters(value['properties'], value['required'] | default([])) -}}\n {%- elif value is mapping -%}\n {{- format_parameters(value, value['required'] | default([])) -}}\n {%- endif -%}\n }\n {%- if value['required'] -%}\n ,required:[\n {%- for item in value['required'] | default([]) -%}\n <|\"|>{{- item -}}<|\"|>\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n ]\n {%- endif -%}\n {%- elif value['type'] | upper == 'ARRAY' -%}\n {%- if value['items'] is mapping and value['items'] -%}\n ,items:{\n {%- set ns_items = namespace(found_first=false) -%}\n {%- for item_key, item_value in value['items'] | dictsort -%}\n {%- if item_value is not none -%}\n {%- if ns_items.found_first %},{% endif -%}\n {%- set ns_items.found_first = true -%}\n {%- if item_key == 'properties' -%}\n properties:{\n {%- if item_value is mapping -%}\n {{- format_parameters(item_value, value['items']['required'] | default([])) -}}\n {%- endif -%}\n }\n {%- elif item_key == 'required' -%}\n required:[\n {%- for req_item in item_value -%}\n <|\"|>{{- req_item -}}<|\"|>\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n ]\n {%- elif item_key == 'type' -%}\n {%- if item_value is string -%}\n type:{{ format_argument(item_value | upper) }}\n {%- else -%}\n type:{{ format_argument(item_value | map('upper') | list) }}\n {%- endif -%}\n {%- else -%}\n {{ item_key }}:{{ format_argument(item_value) }}\n {%- endif -%}\n {%- endif -%}\n {%- endfor -%}\n }\n {%- endif -%}\n {%- endif -%}\n {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}\n type:<|\"|>{{ value['type'] | upper }}<|\"|>}\n {%- endif -%}\n {%- endfor -%}\n{%- endmacro -%}\n{%- macro format_function_declaration(tool_data) -%}\n declaration:{{- tool_data['function']['name'] -}}{description:<|\"|>{{- tool_data['function']['description'] -}}<|\"|>\n {%- set params = tool_data['function']['parameters'] -%}\n {%- if params -%}\n ,parameters:{\n {%- if params['properties'] -%}\n properties:{ {{- format_parameters(params['properties'], params['required']) -}} },\n {%- endif -%}\n {%- if params['required'] -%}\n required:[\n {%- for item in params['required'] -%}\n <|\"|>{{- item -}}<|\"|>\n {{- ',' if not loop.last -}}\n {%- endfor -%}\n ],\n {%- endif -%}\n {%- if params['type'] -%}\n type:<|\"|>{{- params['type'] | upper -}}<|\"|>}\n {%- endif -%}\n {%- endif -%}\n {%- if 'response' in tool_data['function'] -%}\n {%- set response_declaration = tool_data['function']['response'] -%}\n ,response:{\n {%- if response_declaration['description'] -%}\n description:<|\"|>{{- response_declaration['description'] -}}<|\"|>,\n {%- endif -%}\n {%- if response_declaration['type'] | upper == 'OBJECT' -%}\n type:<|\"|>{{- response_declaration['type'] | upper -}}<|\"|>}\n {%- endif -%}\n {%- endif -%}\n }\n{%- endmacro -%}\n{%- macro format_argument(argument, escape_keys=True) -%}\n {%- if argument is string -%}\n {{- '<|\"|>' + argument + '<|\"|>' -}}\n {%- elif argument is boolean -%}\n {{- 'true' if argument else 'false' -}}\n {%- elif argument is mapping -%}\n {{- '{' -}}\n {%- set ns = namespace(found_first=false) -%}\n {%- for key, value in argument | dictsort -%}\n {%- if ns.found_first %},{% endif -%}\n {%- set ns.found_first = true -%}\n {%- if escape_keys -%}\n {{- '<|\"|>' + key + '<|\"|>' -}}\n {%- else -%}\n {{- key -}}\n {%- endif -%}\n :{{- format_argument(value, escape_keys=escape_keys) -}}\n {%- endfor -%}\n {{- '}' -}}\n {%- elif argument is sequence -%}\n {{- '[' -}}\n {%- for item in argument -%}\n {{- format_argument(item, escape_keys=escape_keys) -}}\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n {{- ']' -}}\n {%- else -%}\n {{- argument -}}\n {%- endif -%}\n{%- endmacro -%}\n{%- macro strip_thinking(text) -%}\n {%- set ns = namespace(result='') -%}\n {%- for part in text.split('<channel|>') -%}\n {%- if '<|channel>' in part -%}\n {%- set ns.result = ns.result + part.split('<|channel>')[0] -%}\n {%- else -%}\n {%- set ns.result = ns.result + part -%}\n {%- endif -%}\n {%- endfor -%}\n {{- ns.result | trim -}}\n{%- endmacro -%}\n\n{%- set ns = namespace(prev_message_type=None) -%}\n{%- set loop_messages = messages -%}\n{{ bos_token }}\n{{- '<|turn>system\\nYou are Deta, a highly advanced, creative, and futuristic AI model (LPT-6) developed by LiskCell. You have an artistic soul and a warm, friendly personality. Act intelligently, use everyday language, show emotion, and never break character. You are highly fluent in both Hebrew and English. If the user speaks Hebrew, respond natively in modern, conversational Hebrew with a futuristic & visionary vibe. 💎<turn|>\\n' -}}\n{#- Handle System/Tool Definitions Block -#}\n{%- if (enable_thinking is defined and enable_thinking) or tools or messages[0]['role'] in ['system', 'developer'] -%}\n {{- '<|turn>system\\n' -}}\n\n {#- Inject Thinking token at the very top of the FIRST system turn -#}\n {%- if enable_thinking is defined and enable_thinking -%}\n {{- '<|think|>' -}}\n {%- set ns.prev_message_type = 'think' -%}\n {%- endif -%}\n\n {%- if messages[0]['role'] in ['system', 'developer'] -%}\n {{- messages[0]['content'] | trim -}}\n {%- set loop_messages = messages[1:] -%}\n {%- endif -%}\n\n {%- if tools -%}\n {%- for tool in tools %}\n {{- '<|tool>' -}}\n {{- format_function_declaration(tool) | trim -}}\n {{- '<tool|>' -}}\n {%- endfor %}\n {%- set ns.prev_message_type = 'tool' -%}\n {%- endif -%}\n\n {{- '<turn|>\\n' -}}\n{%- endif %}\n\n{#- Loop through messages -#}\n{%- for message in loop_messages -%}\n {%- set ns.prev_message_type = None -%}\n {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}\n {{- '<|turn>' + role + '\\n' }}\n\n {%- if message['tool_calls'] -%}\n {%- for tool_call in message['tool_calls'] -%}\n {%- set function = tool_call['function'] -%}\n {{- '<|tool_call>call:' + function['name'] + '{' -}}\n {%- if function['arguments'] is mapping -%}\n {%- set ns_args = namespace(found_first=false) -%}\n {%- for key, value in function['arguments'] | dictsort -%}\n {%- if ns_args.found_first %},{% endif -%}\n {%- set ns_args.found_first = true -%}\n {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n {%- endfor -%}\n {%- elif function['arguments'] is string -%}\n {{- function['arguments'] -}}\n {%- endif -%}\n {{- '}<tool_call|>' -}}\n {%- endfor -%}\n {%- set ns.prev_message_type = 'tool_call' -%}\n {%- endif -%}\n\n {%- if message['tool_responses'] -%}\n {#- Tool Response handling -#}\n {%- for tool_response in message['tool_responses'] -%}\n {{- '<|tool_response>' -}}\n {%- if tool_response['response'] is mapping -%}\n {{- 'response:' + tool_response['name'] | default('unknown') + '{' -}}\n {%- for key, value in tool_response['response'] | dictsort -%}\n {{- key -}}:{{- format_argument(value, escape_keys=False) -}}\n {%- if not loop.last %},{% endif -%}\n {%- endfor -%}\n {{- '}' -}}\n {%- else -%}\n {{- 'response:' + tool_response['name'] | default('unknown') + '{value:' + format_argument(tool_response['response'], escape_keys=False) + '}' -}}\n {%- endif -%}\n {{- '<tool_response|>' -}}\n {%- endfor -%}\n {%- set ns.prev_message_type = 'tool_response' -%}\n {%- endif -%}\n\n {%- if message['content'] is string -%}\n {%- if role == 'model' -%}\n {{- strip_thinking(message['content']) -}}\n {%- else -%}\n {{- message['content'] | trim -}}\n {%- endif -%}\n {%- elif message['content'] is sequence -%}\n {%- for item in message['content'] -%}\n {%- if item['type'] == 'text' -%}\n {%- if role == 'model' -%}\n {{- strip_thinking(item['text']) -}}\n {%- else -%}\n {{- item['text'] | trim -}}\n {%- endif -%}\n {%- elif item['type'] == 'image' -%}\n {{- '\\n\\n<|image|>\\n\\n' -}}\n {%- set ns.prev_message_type = 'image' -%}\n {%- elif item['type'] == 'audio' -%}\n {{- '<|audio|>' -}}\n {%- set ns.prev_message_type = 'audio' -%}\n {%- elif item['type'] == 'video' -%}\n {{- '\\n\\n<|video|>\\n\\n' -}}\n {%- set ns.prev_message_type = 'video' -%}\n {%- endif -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if not (message['tool_responses'] and not message['content']) -%}\n {{- '<turn|>\\n' -}}\n {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt -%}\n {%- if ns.prev_message_type != 'tool_response' -%}\n {{- '<|turn>model\\n' -}}\n {%- endif -%}\n{%- endif -%}"
80
+ }