llms-py 2.0.9__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 (194) hide show
  1. llms/__init__.py +4 -0
  2. llms/__main__.py +9 -0
  3. llms/db.py +359 -0
  4. llms/extensions/analytics/ui/index.mjs +1444 -0
  5. llms/extensions/app/README.md +20 -0
  6. llms/extensions/app/__init__.py +589 -0
  7. llms/extensions/app/db.py +536 -0
  8. {llms_py-2.0.9.data/data → llms/extensions/app}/ui/Recents.mjs +100 -73
  9. llms_py-2.0.9.data/data/ui/Sidebar.mjs → llms/extensions/app/ui/index.mjs +150 -79
  10. llms/extensions/app/ui/threadStore.mjs +433 -0
  11. llms/extensions/core_tools/CALCULATOR.md +32 -0
  12. llms/extensions/core_tools/__init__.py +637 -0
  13. llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +201 -0
  14. llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +185 -0
  15. llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +101 -0
  16. llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +160 -0
  17. llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +66 -0
  18. llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +27 -0
  19. llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +72 -0
  20. llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +119 -0
  21. llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +98 -0
  22. llms/extensions/core_tools/ui/codemirror/codemirror.css +344 -0
  23. llms/extensions/core_tools/ui/codemirror/codemirror.js +9884 -0
  24. llms/extensions/core_tools/ui/codemirror/doc/docs.css +225 -0
  25. llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  26. llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +942 -0
  27. llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +118 -0
  28. llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +962 -0
  29. llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +62 -0
  30. llms/extensions/core_tools/ui/codemirror/mode/python/python.js +402 -0
  31. llms/extensions/core_tools/ui/codemirror/theme/dracula.css +40 -0
  32. llms/extensions/core_tools/ui/codemirror/theme/mocha.css +135 -0
  33. llms/extensions/core_tools/ui/index.mjs +650 -0
  34. llms/extensions/gallery/README.md +61 -0
  35. llms/extensions/gallery/__init__.py +63 -0
  36. llms/extensions/gallery/db.py +243 -0
  37. llms/extensions/gallery/ui/index.mjs +482 -0
  38. llms/extensions/katex/README.md +39 -0
  39. llms/extensions/katex/__init__.py +6 -0
  40. llms/extensions/katex/ui/README.md +125 -0
  41. llms/extensions/katex/ui/contrib/auto-render.js +338 -0
  42. llms/extensions/katex/ui/contrib/auto-render.min.js +1 -0
  43. llms/extensions/katex/ui/contrib/auto-render.mjs +244 -0
  44. llms/extensions/katex/ui/contrib/copy-tex.js +127 -0
  45. llms/extensions/katex/ui/contrib/copy-tex.min.js +1 -0
  46. llms/extensions/katex/ui/contrib/copy-tex.mjs +105 -0
  47. llms/extensions/katex/ui/contrib/mathtex-script-type.js +109 -0
  48. llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +1 -0
  49. llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +24 -0
  50. llms/extensions/katex/ui/contrib/mhchem.js +3213 -0
  51. llms/extensions/katex/ui/contrib/mhchem.min.js +1 -0
  52. llms/extensions/katex/ui/contrib/mhchem.mjs +3109 -0
  53. llms/extensions/katex/ui/contrib/render-a11y-string.js +887 -0
  54. llms/extensions/katex/ui/contrib/render-a11y-string.min.js +1 -0
  55. llms/extensions/katex/ui/contrib/render-a11y-string.mjs +800 -0
  56. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  57. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  58. llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  59. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  60. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  61. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  62. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  63. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  64. llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  65. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  66. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  67. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  68. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  69. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  70. llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  71. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  72. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  73. llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  74. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  75. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  76. llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  77. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  78. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  79. llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  80. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  81. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  82. llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  83. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  84. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  85. llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  86. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  87. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  88. llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  89. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  90. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  91. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  92. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  93. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  94. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  95. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  96. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  97. llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  98. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  99. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  100. llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  101. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  102. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  103. llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  104. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  105. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  106. llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  107. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  108. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  109. llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  110. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  111. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  112. llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  113. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  114. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  115. llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  116. llms/extensions/katex/ui/index.mjs +92 -0
  117. llms/extensions/katex/ui/katex-swap.css +1230 -0
  118. llms/extensions/katex/ui/katex-swap.min.css +1 -0
  119. llms/extensions/katex/ui/katex.css +1230 -0
  120. llms/extensions/katex/ui/katex.js +19080 -0
  121. llms/extensions/katex/ui/katex.min.css +1 -0
  122. llms/extensions/katex/ui/katex.min.js +1 -0
  123. llms/extensions/katex/ui/katex.min.mjs +1 -0
  124. llms/extensions/katex/ui/katex.mjs +18547 -0
  125. llms/extensions/providers/__init__.py +22 -0
  126. llms/extensions/providers/anthropic.py +233 -0
  127. llms/extensions/providers/cerebras.py +37 -0
  128. llms/extensions/providers/chutes.py +153 -0
  129. llms/extensions/providers/google.py +481 -0
  130. llms/extensions/providers/nvidia.py +103 -0
  131. llms/extensions/providers/openai.py +154 -0
  132. llms/extensions/providers/openrouter.py +74 -0
  133. llms/extensions/providers/zai.py +182 -0
  134. llms/extensions/system_prompts/README.md +22 -0
  135. llms/extensions/system_prompts/__init__.py +45 -0
  136. llms/extensions/system_prompts/ui/index.mjs +280 -0
  137. llms/extensions/system_prompts/ui/prompts.json +1067 -0
  138. llms/extensions/tools/__init__.py +144 -0
  139. llms/extensions/tools/ui/index.mjs +706 -0
  140. llms/index.html +58 -0
  141. llms/llms.json +400 -0
  142. llms/main.py +4407 -0
  143. llms/providers-extra.json +394 -0
  144. llms/providers.json +1 -0
  145. llms/ui/App.mjs +188 -0
  146. llms/ui/ai.mjs +217 -0
  147. llms/ui/app.css +7081 -0
  148. llms/ui/ctx.mjs +412 -0
  149. llms/ui/index.mjs +131 -0
  150. llms/ui/lib/chart.js +14 -0
  151. llms/ui/lib/charts.mjs +16 -0
  152. llms/ui/lib/color.js +14 -0
  153. llms/ui/lib/servicestack-vue.mjs +37 -0
  154. llms/ui/lib/vue.min.mjs +13 -0
  155. llms/ui/lib/vue.mjs +18530 -0
  156. {llms_py-2.0.9.data/data → llms}/ui/markdown.mjs +33 -15
  157. llms/ui/modules/chat/ChatBody.mjs +976 -0
  158. llms/ui/modules/chat/SettingsDialog.mjs +374 -0
  159. llms/ui/modules/chat/index.mjs +991 -0
  160. llms/ui/modules/icons.mjs +46 -0
  161. llms/ui/modules/layout.mjs +271 -0
  162. llms/ui/modules/model-selector.mjs +811 -0
  163. llms/ui/tailwind.input.css +742 -0
  164. {llms_py-2.0.9.data/data → llms}/ui/typography.css +133 -7
  165. llms/ui/utils.mjs +261 -0
  166. llms_py-3.0.10.dist-info/METADATA +49 -0
  167. llms_py-3.0.10.dist-info/RECORD +177 -0
  168. llms_py-3.0.10.dist-info/entry_points.txt +2 -0
  169. {llms_py-2.0.9.dist-info → llms_py-3.0.10.dist-info}/licenses/LICENSE +1 -2
  170. llms.py +0 -1402
  171. llms_py-2.0.9.data/data/index.html +0 -64
  172. llms_py-2.0.9.data/data/llms.json +0 -447
  173. llms_py-2.0.9.data/data/requirements.txt +0 -1
  174. llms_py-2.0.9.data/data/ui/App.mjs +0 -20
  175. llms_py-2.0.9.data/data/ui/ChatPrompt.mjs +0 -389
  176. llms_py-2.0.9.data/data/ui/Main.mjs +0 -680
  177. llms_py-2.0.9.data/data/ui/app.css +0 -3951
  178. llms_py-2.0.9.data/data/ui/lib/servicestack-vue.min.mjs +0 -37
  179. llms_py-2.0.9.data/data/ui/lib/vue.min.mjs +0 -12
  180. llms_py-2.0.9.data/data/ui/tailwind.input.css +0 -261
  181. llms_py-2.0.9.data/data/ui/threadStore.mjs +0 -273
  182. llms_py-2.0.9.data/data/ui/utils.mjs +0 -114
  183. llms_py-2.0.9.data/data/ui.json +0 -1069
  184. llms_py-2.0.9.dist-info/METADATA +0 -941
  185. llms_py-2.0.9.dist-info/RECORD +0 -30
  186. llms_py-2.0.9.dist-info/entry_points.txt +0 -2
  187. {llms_py-2.0.9.data/data → llms}/ui/fav.svg +0 -0
  188. {llms_py-2.0.9.data/data → llms}/ui/lib/highlight.min.mjs +0 -0
  189. {llms_py-2.0.9.data/data → llms}/ui/lib/idb.min.mjs +0 -0
  190. {llms_py-2.0.9.data/data → llms}/ui/lib/marked.min.mjs +0 -0
  191. /llms_py-2.0.9.data/data/ui/lib/servicestack-client.min.mjs → /llms/ui/lib/servicestack-client.mjs +0 -0
  192. {llms_py-2.0.9.data/data → llms}/ui/lib/vue-router.min.mjs +0 -0
  193. {llms_py-2.0.9.dist-info → llms_py-3.0.10.dist-info}/WHEEL +0 -0
  194. {llms_py-2.0.9.dist-info → llms_py-3.0.10.dist-info}/top_level.txt +0 -0
llms/index.html ADDED
@@ -0,0 +1,58 @@
1
+ <html>
2
+
3
+ <head>
4
+ <title>llms.py</title>
5
+ <link rel="stylesheet" href="/ui/app.css">
6
+ <link rel="stylesheet" href="/ui/typography.css">
7
+ <link rel="icon" type="image/svg" href="/ui/fav.svg">
8
+ <style>
9
+ [type='button'],
10
+ button[type='submit'] {
11
+ cursor: pointer
12
+ }
13
+
14
+ [type='checkbox'].switch:checked:hover,
15
+ [type='checkbox'].switch:checked:focus,
16
+ [type='checkbox'].switch:checked,
17
+ [type='checkbox'].switch:focus,
18
+ [type='checkbox'].switch {
19
+ border: none;
20
+ background: none;
21
+ outline: none;
22
+ box-shadow: none;
23
+ cursor: pointer;
24
+ }
25
+ </style>
26
+ <script type="importmap"></script>
27
+
28
+ </head>
29
+
30
+ <body>
31
+ <div id="app"></div>
32
+
33
+ <script>
34
+ let colorScheme = location.search === "?dark"
35
+ ? "dark"
36
+ : location.search === "?light"
37
+ ? "light"
38
+ : localStorage.getItem('color-scheme')
39
+ let darkMode = colorScheme != null
40
+ ? colorScheme === 'dark'
41
+ : window.matchMedia('(prefers-color-scheme: dark)').matches
42
+ let html = document.documentElement
43
+ html.classList.toggle('dark', darkMode)
44
+ html.style.setProperty('color-scheme', darkMode ? 'dark' : null)
45
+ if (localStorage.getItem('color-scheme') === null) {
46
+ localStorage.setItem('color-scheme', darkMode ? 'dark' : 'light')
47
+ }
48
+ </script>
49
+ <script type="module">
50
+ import { createContext } from '/ui/index.mjs'
51
+
52
+ const context = await createContext()
53
+ context.app.mount('#app')
54
+ </script>
55
+
56
+ </body>
57
+
58
+ </html>
llms/llms.json ADDED
@@ -0,0 +1,400 @@
1
+ {
2
+ "version": 3,
3
+ "auth": {
4
+ "enabled": false,
5
+ "github": {
6
+ "client_id": "GITHUB_CLIENT_ID",
7
+ "client_secret": "GITHUB_CLIENT_SECRET",
8
+ "redirect_uri": "http://localhost:8000/auth/github/callback",
9
+ "restrict_to": "GITHUB_USERS"
10
+ }
11
+ },
12
+ "disable_extensions": [],
13
+ "defaults": {
14
+ "headers": {
15
+ "Content-Type": "application/json",
16
+ "User-Agent": "llmspy.org/3.0"
17
+ },
18
+ "text": {
19
+ "model": "Kimi K2 Instruct",
20
+ "messages": [
21
+ {
22
+ "role": "user",
23
+ "content": [
24
+ {
25
+ "type": "text",
26
+ "text": ""
27
+ }
28
+ ]
29
+ }
30
+ ]
31
+ },
32
+ "image": {
33
+ "model": "gemma-3-27b-it",
34
+ "messages": [
35
+ {
36
+ "role": "user",
37
+ "content": [
38
+ {
39
+ "type": "image_url",
40
+ "image_url": {
41
+ "url": ""
42
+ }
43
+ },
44
+ {
45
+ "type": "text",
46
+ "text": "Describe the key features of the input image"
47
+ }
48
+ ]
49
+ }
50
+ ]
51
+ },
52
+ "audio": {
53
+ "model": "gpt-4o-audio-preview",
54
+ "messages": [
55
+ {
56
+ "role": "user",
57
+ "content": [
58
+ {
59
+ "type": "input_audio",
60
+ "input_audio": {
61
+ "data": "",
62
+ "format": "mp3"
63
+ }
64
+ },
65
+ {
66
+ "type": "text",
67
+ "text": "Please transcribe and summarize this audio file"
68
+ }
69
+ ]
70
+ }
71
+ ]
72
+ },
73
+ "file": {
74
+ "model": "qwen2.5vl",
75
+ "messages": [
76
+ {
77
+ "role": "user",
78
+ "content": [
79
+ {
80
+ "type": "file",
81
+ "file": {
82
+ "filename": "",
83
+ "file_data": ""
84
+ }
85
+ },
86
+ {
87
+ "type": "text",
88
+ "text": "Please summarize this document"
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ },
94
+ "out:image": {
95
+ "model": "gemini-2.5-flash-image",
96
+ "messages": [
97
+ {
98
+ "role": "user",
99
+ "content": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"
100
+ }
101
+ ],
102
+ "modalities": [
103
+ "image",
104
+ "text"
105
+ ],
106
+ "image_config": {
107
+ "aspect_ratio": "9:16"
108
+ },
109
+ "stream": false
110
+ },
111
+ "out:audio": {
112
+ "model": "gemini-2.5-flash-preview-tts",
113
+ "messages": [],
114
+ "modalities": [
115
+ "audio"
116
+ ],
117
+ "stream": false
118
+ },
119
+ "check": {
120
+ "messages": [
121
+ {
122
+ "role": "user",
123
+ "content": [
124
+ {
125
+ "type": "text",
126
+ "text": "1+1="
127
+ }
128
+ ]
129
+ }
130
+ ],
131
+ "max_completion_tokens": 16,
132
+ "stream": false
133
+ }
134
+ },
135
+ "limits": {
136
+ "client_max_size": 20971520
137
+ },
138
+ "convert": {
139
+ "image": {
140
+ "max_size": "1536x1024",
141
+ "max_length": 1572864
142
+ }
143
+ },
144
+ "providers": {
145
+ "groq": {
146
+ "enabled": true
147
+ },
148
+ "cerebras": {
149
+ "enabled": true
150
+ },
151
+ "codestral": {
152
+ "enabled": true,
153
+ "id": "codestral",
154
+ "npm": "codestral",
155
+ "api": "https://codestral.mistral.ai/v1",
156
+ "env": [
157
+ "CODESTRAL_API_KEY"
158
+ ],
159
+ "models": {
160
+ "codestral-latest": {
161
+ "id": "codestral-latest",
162
+ "name": "Codestral",
163
+ "attachment": false,
164
+ "reasoning": false,
165
+ "tool_call": true,
166
+ "temperature": true,
167
+ "knowledge": "2024-10",
168
+ "release_date": "2024-05-29",
169
+ "last_updated": "2025-01-04",
170
+ "modalities": {
171
+ "input": [
172
+ "text"
173
+ ],
174
+ "output": [
175
+ "text"
176
+ ]
177
+ },
178
+ "open_weights": true,
179
+ "cost": {
180
+ "input": 0.0,
181
+ "output": 0.0
182
+ },
183
+ "limit": {
184
+ "context": 256000,
185
+ "output": 4096
186
+ }
187
+ }
188
+ },
189
+ "check": {
190
+ "messages": [
191
+ {
192
+ "role": "user",
193
+ "content": [
194
+ {
195
+ "type": "text",
196
+ "text": "1+1="
197
+ }
198
+ ]
199
+ }
200
+ ],
201
+ "stream": false
202
+ }
203
+ },
204
+ "github-copilot": {
205
+ "enabled": true
206
+ },
207
+ "github-models": {
208
+ "enabled": true,
209
+ "check": {
210
+ "messages": [
211
+ {
212
+ "role": "user",
213
+ "content": [
214
+ {
215
+ "type": "text",
216
+ "text": "1+1="
217
+ }
218
+ ]
219
+ }
220
+ ],
221
+ "stream": false
222
+ }
223
+ },
224
+ "zai-coding-plan": {
225
+ "enabled": true,
226
+ "temperature": 0.7,
227
+ "modalities": {
228
+ "image": {
229
+ "name": "Z.ai Image",
230
+ "npm": "zai/image"
231
+ }
232
+ }
233
+ },
234
+ "minimax": {
235
+ "enabled": true,
236
+ "temperature": 1.0
237
+ },
238
+ "ollama": {
239
+ "enabled": false,
240
+ "id": "ollama",
241
+ "npm": "ollama",
242
+ "api": "http://localhost:11434"
243
+ },
244
+ "lmstudio": {
245
+ "enabled": false,
246
+ "npm": "lmstudio",
247
+ "api": "http://127.0.0.1:1234/v1",
248
+ "models": {}
249
+ },
250
+ "google": {
251
+ "enabled": true,
252
+ "safety_settings": [
253
+ {
254
+ "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
255
+ "threshold": "BLOCK_ONLY_HIGH"
256
+ }
257
+ ],
258
+ "thinking_config": {
259
+ "thinkingBudget": 1024,
260
+ "includeThoughts": true
261
+ },
262
+ "speech_config": {
263
+ "voiceConfig": {
264
+ "prebuiltVoiceConfig": {
265
+ "voiceName": "Kore"
266
+ }
267
+ }
268
+ },
269
+ "check": {
270
+ "messages": [
271
+ {
272
+ "role": "user",
273
+ "content": [
274
+ {
275
+ "type": "text",
276
+ "text": "1+1="
277
+ }
278
+ ]
279
+ }
280
+ ],
281
+ "max_completion_tokens": 512,
282
+ "reasoning": {
283
+ "max_tokens": 128,
284
+ "reasoning_effort": "low"
285
+ },
286
+ "stream": false
287
+ }
288
+ },
289
+ "anthropic": {
290
+ "enabled": true,
291
+ "check": {
292
+ "messages": [
293
+ {
294
+ "role": "user",
295
+ "content": [
296
+ {
297
+ "type": "text",
298
+ "text": "1+1="
299
+ }
300
+ ]
301
+ }
302
+ ],
303
+ "max_completion_tokens": 512,
304
+ "reasoning": {
305
+ "max_tokens": 128,
306
+ "reasoning_effort": "low"
307
+ },
308
+ "stream": false
309
+ }
310
+ },
311
+ "openai": {
312
+ "enabled": true
313
+ },
314
+ "xai": {
315
+ "enabled": true
316
+ },
317
+ "alibaba": {
318
+ "enabled": true,
319
+ "enable_thinking": false
320
+ },
321
+ "zai": {
322
+ "enabled": true,
323
+ "temperature": 0.7,
324
+ "modalities": {
325
+ "image": {
326
+ "name": "Z.ai Image",
327
+ "npm": "zai/image"
328
+ }
329
+ }
330
+ },
331
+ "mistral": {
332
+ "enabled": true,
333
+ "check": {
334
+ "messages": [
335
+ {
336
+ "role": "user",
337
+ "content": [
338
+ {
339
+ "type": "text",
340
+ "text": "1+1="
341
+ }
342
+ ]
343
+ }
344
+ ],
345
+ "stream": false
346
+ }
347
+ },
348
+ "chutes": {
349
+ "enabled": true,
350
+ "modalities": {
351
+ "image": {
352
+ "name": "Chutes Image",
353
+ "npm": "chutes/image",
354
+ "negative_prompt": "blur, distortion, low quality",
355
+ "cfg_scale": 7.5,
356
+ "width": 1024,
357
+ "height": 1024,
358
+ "steps": 50
359
+ }
360
+ }
361
+ },
362
+ "deepseek": {
363
+ "enabled": true
364
+ },
365
+ "moonshotai": {
366
+ "enabled": true
367
+ },
368
+ "nvidia": {
369
+ "enabled": true,
370
+ "modalities": {
371
+ "image": {
372
+ "name": "NVIDIA Gen AI",
373
+ "npm": "nvidia/image",
374
+ "height": 1024,
375
+ "width": 1024,
376
+ "cfg_scale": 3.5,
377
+ "mode": "base",
378
+ "samples": 1,
379
+ "steps": 50
380
+ }
381
+ }
382
+ },
383
+ "huggingface": {
384
+ "enabled": true
385
+ },
386
+ "fireworks-ai": {
387
+ "enabled": true
388
+ },
389
+ "openrouter": {
390
+ "enabled": true,
391
+ "id": "openrouter",
392
+ "modalities": {
393
+ "image": {
394
+ "name": "OpenRouter Image",
395
+ "npm": "openrouter/image"
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }