llms-py 2.0.20__py3-none-any.whl → 3.0.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. llms/__init__.py +3 -1
  2. llms/db.py +359 -0
  3. llms/{ui/Analytics.mjs → extensions/analytics/ui/index.mjs} +254 -327
  4. llms/extensions/app/README.md +20 -0
  5. llms/extensions/app/__init__.py +589 -0
  6. llms/extensions/app/db.py +536 -0
  7. llms/{ui → extensions/app/ui}/Recents.mjs +99 -73
  8. llms/{ui/Sidebar.mjs → extensions/app/ui/index.mjs} +139 -68
  9. llms/extensions/app/ui/threadStore.mjs +433 -0
  10. llms/extensions/core_tools/CALCULATOR.md +32 -0
  11. llms/extensions/core_tools/__init__.py +637 -0
  12. llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +201 -0
  13. llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +185 -0
  14. llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +101 -0
  15. llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +160 -0
  16. llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +66 -0
  17. llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +27 -0
  18. llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +72 -0
  19. llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +119 -0
  20. llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +98 -0
  21. llms/extensions/core_tools/ui/codemirror/codemirror.css +344 -0
  22. llms/extensions/core_tools/ui/codemirror/codemirror.js +9884 -0
  23. llms/extensions/core_tools/ui/codemirror/doc/docs.css +225 -0
  24. llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  25. llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +942 -0
  26. llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +118 -0
  27. llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +962 -0
  28. llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +62 -0
  29. llms/extensions/core_tools/ui/codemirror/mode/python/python.js +402 -0
  30. llms/extensions/core_tools/ui/codemirror/theme/dracula.css +40 -0
  31. llms/extensions/core_tools/ui/codemirror/theme/mocha.css +135 -0
  32. llms/extensions/core_tools/ui/index.mjs +650 -0
  33. llms/extensions/gallery/README.md +61 -0
  34. llms/extensions/gallery/__init__.py +63 -0
  35. llms/extensions/gallery/db.py +243 -0
  36. llms/extensions/gallery/ui/index.mjs +482 -0
  37. llms/extensions/katex/README.md +39 -0
  38. llms/extensions/katex/__init__.py +6 -0
  39. llms/extensions/katex/ui/README.md +125 -0
  40. llms/extensions/katex/ui/contrib/auto-render.js +338 -0
  41. llms/extensions/katex/ui/contrib/auto-render.min.js +1 -0
  42. llms/extensions/katex/ui/contrib/auto-render.mjs +244 -0
  43. llms/extensions/katex/ui/contrib/copy-tex.js +127 -0
  44. llms/extensions/katex/ui/contrib/copy-tex.min.js +1 -0
  45. llms/extensions/katex/ui/contrib/copy-tex.mjs +105 -0
  46. llms/extensions/katex/ui/contrib/mathtex-script-type.js +109 -0
  47. llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +1 -0
  48. llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +24 -0
  49. llms/extensions/katex/ui/contrib/mhchem.js +3213 -0
  50. llms/extensions/katex/ui/contrib/mhchem.min.js +1 -0
  51. llms/extensions/katex/ui/contrib/mhchem.mjs +3109 -0
  52. llms/extensions/katex/ui/contrib/render-a11y-string.js +887 -0
  53. llms/extensions/katex/ui/contrib/render-a11y-string.min.js +1 -0
  54. llms/extensions/katex/ui/contrib/render-a11y-string.mjs +800 -0
  55. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  56. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  57. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  58. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  59. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  60. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  61. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  62. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  63. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  64. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  65. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  66. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  67. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  68. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  69. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  70. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  71. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  72. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  73. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  74. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  75. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  76. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  77. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  78. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  79. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  80. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  81. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  82. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  83. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  84. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  85. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  86. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  87. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  88. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  89. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  90. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  91. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  92. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  93. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  94. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  95. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  96. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  97. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  98. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  99. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  100. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  101. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  102. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  103. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  104. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  105. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  106. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  107. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  108. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  109. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  110. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  111. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  112. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  113. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  114. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  115. llms/extensions/katex/ui/index.mjs +92 -0
  116. llms/extensions/katex/ui/katex-swap.css +1230 -0
  117. llms/extensions/katex/ui/katex-swap.min.css +1 -0
  118. llms/extensions/katex/ui/katex.css +1230 -0
  119. llms/extensions/katex/ui/katex.js +19080 -0
  120. llms/extensions/katex/ui/katex.min.css +1 -0
  121. llms/extensions/katex/ui/katex.min.js +1 -0
  122. llms/extensions/katex/ui/katex.min.mjs +1 -0
  123. llms/extensions/katex/ui/katex.mjs +18547 -0
  124. llms/extensions/providers/__init__.py +22 -0
  125. llms/extensions/providers/anthropic.py +233 -0
  126. llms/extensions/providers/cerebras.py +37 -0
  127. llms/extensions/providers/chutes.py +153 -0
  128. llms/extensions/providers/google.py +481 -0
  129. llms/extensions/providers/nvidia.py +103 -0
  130. llms/extensions/providers/openai.py +154 -0
  131. llms/extensions/providers/openrouter.py +74 -0
  132. llms/extensions/providers/zai.py +182 -0
  133. llms/extensions/system_prompts/README.md +22 -0
  134. llms/extensions/system_prompts/__init__.py +45 -0
  135. llms/extensions/system_prompts/ui/index.mjs +280 -0
  136. llms/extensions/system_prompts/ui/prompts.json +1067 -0
  137. llms/extensions/tools/__init__.py +144 -0
  138. llms/extensions/tools/ui/index.mjs +706 -0
  139. llms/index.html +36 -62
  140. llms/llms.json +180 -879
  141. llms/main.py +3640 -899
  142. llms/providers-extra.json +394 -0
  143. llms/providers.json +1 -0
  144. llms/ui/App.mjs +176 -8
  145. llms/ui/ai.mjs +156 -20
  146. llms/ui/app.css +3161 -244
  147. llms/ui/ctx.mjs +412 -0
  148. llms/ui/index.mjs +131 -0
  149. llms/ui/lib/chart.js +14 -0
  150. llms/ui/lib/charts.mjs +16 -0
  151. llms/ui/lib/color.js +14 -0
  152. llms/ui/lib/highlight.min.mjs +1243 -0
  153. llms/ui/lib/idb.min.mjs +8 -0
  154. llms/ui/lib/marked.min.mjs +8 -0
  155. llms/ui/lib/servicestack-client.mjs +1 -0
  156. llms/ui/lib/servicestack-vue.mjs +37 -0
  157. llms/ui/lib/vue-router.min.mjs +6 -0
  158. llms/ui/lib/vue.min.mjs +13 -0
  159. llms/ui/lib/vue.mjs +18530 -0
  160. llms/ui/markdown.mjs +25 -14
  161. llms/ui/modules/chat/ChatBody.mjs +976 -0
  162. llms/ui/{SettingsDialog.mjs → modules/chat/SettingsDialog.mjs} +74 -74
  163. llms/ui/modules/chat/index.mjs +991 -0
  164. llms/ui/modules/icons.mjs +46 -0
  165. llms/ui/modules/layout.mjs +271 -0
  166. llms/ui/modules/model-selector.mjs +811 -0
  167. llms/ui/tailwind.input.css +550 -78
  168. llms/ui/typography.css +54 -36
  169. llms/ui/utils.mjs +197 -92
  170. llms_py-3.0.10.dist-info/METADATA +49 -0
  171. llms_py-3.0.10.dist-info/RECORD +177 -0
  172. {llms_py-2.0.20.dist-info → llms_py-3.0.10.dist-info}/licenses/LICENSE +1 -2
  173. llms/ui/Avatar.mjs +0 -28
  174. llms/ui/Brand.mjs +0 -34
  175. llms/ui/ChatPrompt.mjs +0 -443
  176. llms/ui/Main.mjs +0 -740
  177. llms/ui/ModelSelector.mjs +0 -60
  178. llms/ui/ProviderIcon.mjs +0 -29
  179. llms/ui/ProviderStatus.mjs +0 -105
  180. llms/ui/SignIn.mjs +0 -64
  181. llms/ui/SystemPromptEditor.mjs +0 -31
  182. llms/ui/SystemPromptSelector.mjs +0 -36
  183. llms/ui/Welcome.mjs +0 -8
  184. llms/ui/threadStore.mjs +0 -524
  185. llms/ui.json +0 -1069
  186. llms_py-2.0.20.dist-info/METADATA +0 -931
  187. llms_py-2.0.20.dist-info/RECORD +0 -36
  188. {llms_py-2.0.20.dist-info → llms_py-3.0.10.dist-info}/WHEEL +0 -0
  189. {llms_py-2.0.20.dist-info → llms_py-3.0.10.dist-info}/entry_points.txt +0 -0
  190. {llms_py-2.0.20.dist-info → llms_py-3.0.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,394 @@
1
+ {
2
+ "openrouter": {
3
+ "models": {
4
+ "google/gemini-2.5-flash-image": {
5
+ "name": "Gemini 2.5 Flash Image (Nano Banana)",
6
+ "modalities": {
7
+ "input": [
8
+ "text"
9
+ ],
10
+ "output": [
11
+ "image"
12
+ ]
13
+ },
14
+ "cost": {
15
+ "input": 0.30,
16
+ "output": 2.50
17
+ }
18
+ },
19
+ "google/gemini-2.5-flash-image-preview": {
20
+ "name": "Gemini 2.5 Flash Image Preview (Nano Banana)",
21
+ "modalities": {
22
+ "input": [
23
+ "text"
24
+ ],
25
+ "output": [
26
+ "image"
27
+ ]
28
+ },
29
+ "cost": {
30
+ "input": 0.30,
31
+ "output": 2.50
32
+ }
33
+ },
34
+ "google/gemini-3-pro-image-preview": {
35
+ "name": "Google: Nano Banana Pro Preview (Gemini 3 Pro)",
36
+ "modalities": {
37
+ "input": [
38
+ "text"
39
+ ],
40
+ "output": [
41
+ "image"
42
+ ]
43
+ },
44
+ "cost": {
45
+ "input": 2.0,
46
+ "output": 12.0
47
+ }
48
+ },
49
+ "sourceful/riverflow-v2-fast-preview": {
50
+ "name": "Sourceful: Riverflow V2 Fast Preview",
51
+ "modalities": {
52
+ "input": [
53
+ "text"
54
+ ],
55
+ "output": [
56
+ "image"
57
+ ]
58
+ },
59
+ "cost": {
60
+ "input": 0,
61
+ "output": 7.19
62
+ }
63
+ },
64
+ "sourceful/riverflow-v2-standard-preview": {
65
+ "name": "Sourceful: Riverflow V2 Standard Preview",
66
+ "modalities": {
67
+ "input": [
68
+ "text"
69
+ ],
70
+ "output": [
71
+ "image"
72
+ ]
73
+ },
74
+ "cost": {
75
+ "input": 0,
76
+ "output": 8.38
77
+ }
78
+ },
79
+ "sourceful/riverflow-v2-max-preview": {
80
+ "name": "Sourceful: Riverflow V2 Max Preview",
81
+ "modalities": {
82
+ "input": [
83
+ "text"
84
+ ],
85
+ "output": [
86
+ "image"
87
+ ]
88
+ },
89
+ "cost": {
90
+ "input": 0,
91
+ "output": 17.96
92
+ }
93
+ },
94
+ "openai/gpt-5-image-mini": {
95
+ "name": "OpenAI: GPT-5 Image Mini",
96
+ "modalities": {
97
+ "input": [
98
+ "text"
99
+ ],
100
+ "output": [
101
+ "image"
102
+ ]
103
+ },
104
+ "cost": {
105
+ "input": 2.50,
106
+ "output": 2
107
+ }
108
+ },
109
+ "openai/gpt-5-image": {
110
+ "name": "OpenAI: GPT-5 Image",
111
+ "modalities": {
112
+ "input": [
113
+ "text"
114
+ ],
115
+ "output": [
116
+ "image"
117
+ ]
118
+ },
119
+ "cost": {
120
+ "input": 10.0,
121
+ "output": 10.0
122
+ }
123
+ },
124
+ "black-forest-labs/flux.2-pro": {
125
+ "name": "Black Forest Labs: FLUX.2 Pro",
126
+ "modalities": {
127
+ "input": [
128
+ "text"
129
+ ],
130
+ "output": [
131
+ "image"
132
+ ]
133
+ },
134
+ "cost": {
135
+ "input": 3.66,
136
+ "output": 3.66
137
+ }
138
+ },
139
+ "black-forest-labs/flux.2-max": {
140
+ "name": "Black Forest Labs: FLUX.2 Max",
141
+ "modalities": {
142
+ "input": [
143
+ "text"
144
+ ],
145
+ "output": [
146
+ "image"
147
+ ]
148
+ },
149
+ "cost": {
150
+ "input": 7.32,
151
+ "output": 7.32
152
+ }
153
+ },
154
+ "black-forest-labs/flux.2-flex": {
155
+ "name": "Black Forest Labs: FLUX.2 Flex",
156
+ "modalities": {
157
+ "input": [
158
+ "text"
159
+ ],
160
+ "output": [
161
+ "image"
162
+ ]
163
+ },
164
+ "cost": {
165
+ "input": 14.64,
166
+ "output": 14.64
167
+ }
168
+ }
169
+ }
170
+ },
171
+ "openai": {
172
+ "models": {
173
+ "chatgpt-image-latest": {
174
+ "name": "ChatGPT Image Latest",
175
+ "modalities": {
176
+ "input": [
177
+ "text"
178
+ ],
179
+ "output": [
180
+ "image"
181
+ ]
182
+ },
183
+ "cost": {
184
+ "input": 5.0,
185
+ "output": 32.0
186
+ }
187
+ },
188
+ "gpt-image-1.5": {
189
+ "name": "GPT Image 1.5",
190
+ "modalities": {
191
+ "input": [
192
+ "text"
193
+ ],
194
+ "output": [
195
+ "image"
196
+ ]
197
+ },
198
+ "cost": {
199
+ "input": 5.0,
200
+ "output": 32.0
201
+ }
202
+ },
203
+ "gpt-image-1": {
204
+ "name": "GPT Image 1",
205
+ "modalities": {
206
+ "input": [
207
+ "text"
208
+ ],
209
+ "output": [
210
+ "image"
211
+ ]
212
+ },
213
+ "cost": {
214
+ "input": 5.0,
215
+ "output": 40.0
216
+ }
217
+ },
218
+ "gpt-image-1-mini": {
219
+ "name": "GPT Image 1 Mini",
220
+ "modalities": {
221
+ "input": [
222
+ "text"
223
+ ],
224
+ "output": [
225
+ "image"
226
+ ]
227
+ },
228
+ "cost": {
229
+ "input": 5.0,
230
+ "output": 8.0
231
+ }
232
+ }
233
+ }
234
+ },
235
+ "chutes": {
236
+ "models": {
237
+ "chutes-z-image-turbo": {
238
+ "name": "Z Image Turbo",
239
+ "modalities": {
240
+ "input": [
241
+ "text"
242
+ ],
243
+ "output": [
244
+ "image"
245
+ ]
246
+ }
247
+ },
248
+ "qwen-image": {
249
+ "modalities": {
250
+ "input": [
251
+ "text"
252
+ ],
253
+ "output": [
254
+ "image"
255
+ ]
256
+ }
257
+ },
258
+ "chutes-qwen-image-edit-2509": {
259
+ "name": "Qwen Image Edit 2509",
260
+ "modalities": {
261
+ "input": [
262
+ "text",
263
+ "image"
264
+ ],
265
+ "output": [
266
+ "image"
267
+ ]
268
+ }
269
+ },
270
+ "chutes-hidream": {
271
+ "name": "Hidream",
272
+ "modalities": {
273
+ "input": [
274
+ "text"
275
+ ],
276
+ "output": [
277
+ "image"
278
+ ]
279
+ }
280
+ },
281
+ "chutes-hunyuan-image-3": {
282
+ "name": "Hunyuan Image 3",
283
+ "modalities": {
284
+ "input": [
285
+ "text"
286
+ ],
287
+ "output": [
288
+ "image"
289
+ ]
290
+ }
291
+ },
292
+ "FLUX.1-schnell": {
293
+ "name": "FLUX.1 Schnell",
294
+ "modalities": {
295
+ "input": [
296
+ "text"
297
+ ],
298
+ "output": [
299
+ "image"
300
+ ]
301
+ }
302
+ },
303
+ "chroma": {
304
+ "modalities": {
305
+ "input": [
306
+ "text"
307
+ ],
308
+ "output": [
309
+ "image"
310
+ ]
311
+ }
312
+ },
313
+ "JuggernautXL-Ragnarok": {
314
+ "name": "JuggernautXL Ragnarok",
315
+ "modalities": {
316
+ "input": [
317
+ "text"
318
+ ],
319
+ "output": [
320
+ "image"
321
+ ]
322
+ }
323
+ },
324
+ "Animij": {
325
+ "modalities": {
326
+ "input": [
327
+ "text"
328
+ ],
329
+ "output": [
330
+ "image"
331
+ ]
332
+ }
333
+ },
334
+ "Illustrij": {
335
+ "modalities": {
336
+ "input": [
337
+ "text"
338
+ ],
339
+ "output": [
340
+ "image"
341
+ ]
342
+ }
343
+ },
344
+ "iLustMix": {
345
+ "modalities": {
346
+ "input": [
347
+ "text"
348
+ ],
349
+ "output": [
350
+ "image"
351
+ ]
352
+ }
353
+ }
354
+ }
355
+ },
356
+ "zai": {
357
+ "models": {
358
+ "glm-image": {
359
+ "name": "GLM-Image",
360
+ "modalities": {
361
+ "input": [
362
+ "text"
363
+ ],
364
+ "output": [
365
+ "image"
366
+ ]
367
+ },
368
+ "cost": {
369
+ "input": 0,
370
+ "output": 0.015
371
+ }
372
+ }
373
+ }
374
+ },
375
+ "zai-coding-plan": {
376
+ "models": {
377
+ "glm-image": {
378
+ "name": "GLM-Image",
379
+ "modalities": {
380
+ "input": [
381
+ "text"
382
+ ],
383
+ "output": [
384
+ "image"
385
+ ]
386
+ },
387
+ "cost": {
388
+ "input": 0,
389
+ "output": 0.015
390
+ }
391
+ }
392
+ }
393
+ }
394
+ }