lollms-client 1.1.2__py3-none-any.whl → 1.3.0__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.

Potentially problematic release.


This version of lollms-client might be problematic. Click here for more details.

lollms_client/__init__.py CHANGED
@@ -8,7 +8,7 @@ from lollms_client.lollms_utilities import PromptReshaper # Keep general utiliti
8
8
  from lollms_client.lollms_mcp_binding import LollmsMCPBinding, LollmsMCPBindingManager
9
9
  from lollms_client.lollms_llm_binding import LollmsLLMBindingManager
10
10
 
11
- __version__ = "1.1.2" # Updated version
11
+ __version__ = "1.3.0" # Updated version
12
12
 
13
13
  # Optionally, you could define __all__ if you want to be explicit about exports
14
14
  __all__ = [
@@ -0,0 +1,382 @@
1
+ {
2
+ "agentica-org/deepcoder-14b-preview": 8192,
3
+ "agentica-org/deepcoder-14b-preview:free": 8192,
4
+ "ai21/jamba-large-1.7": 256000,
5
+ "ai21/jamba-mini-1.7": 256000,
6
+ "aion-labs/aion-1.0": 8192,
7
+ "aion-labs/aion-1.0-mini": 8192,
8
+ "aion-labs/aion-rp-llama-3.1-8b": 131072,
9
+ "alfredpros/codellama-7b-instruct-solidity": 16384,
10
+ "alpindale/goliath-120b": 4096,
11
+ "amazon/nova-lite-v1": 32768,
12
+ "amazon/nova-micro-v1": 32768,
13
+ "amazon/nova-pro-v1": 32768,
14
+ "anthracite-org/magnum-v2-72b": 131072,
15
+ "anthracite-org/magnum-v4-72b": 131072,
16
+ "claude-3-haiku": 200000,
17
+ "claude-3-haiku:beta": 200000,
18
+ "claude-3-opus": 200000,
19
+ "claude-3-opus:beta": 200000,
20
+ "claude-3.5-haiku": 200000,
21
+ "claude-3.5-haiku-20241022": 200000,
22
+ "claude-3.5-haiku:beta": 200000,
23
+ "claude-3.5-sonnet": 200000,
24
+ "claude-3.5-sonnet-20240620": 200000,
25
+ "claude-3.5-sonnet-20240620:beta": 200000,
26
+ "claude-3.5-sonnet:beta": 200000,
27
+ "claude-3.7-sonnet": 200000,
28
+ "claude-3.7-sonnet:beta": 200000,
29
+ "claude-3.7-sonnet:thinking": 200000,
30
+ "claude-3-5-haiku": 200000,
31
+ "claude-3-5-haiku-20241022": 200000,
32
+ "claude-3-5-haiku:beta": 200000,
33
+ "claude-3-5-sonnet": 200000,
34
+ "claude-3-5-sonnet-20240620": 200000,
35
+ "claude-3-5-sonnet-20240620:beta": 200000,
36
+ "claude-3-5-sonnet:beta": 200000,
37
+ "claude-3-7-sonnet": 200000,
38
+ "claude-3-7-sonnet:beta": 200000,
39
+ "claude-3-7-sonnet:thinking": 200000,
40
+ "claude-opus-4": 200000,
41
+ "claude-opus-4.1": 200000,
42
+ "claude-sonnet-4": 200000,
43
+ "arcee-ai/coder-large": 32768,
44
+ "arcee-ai/maestro-reasoning": 32768,
45
+ "arcee-ai/spotlight": 32768,
46
+ "arcee-ai/virtuoso-large": 32768,
47
+ "arliai/qwq-32b-arliai-rpr-v1": 8192,
48
+ "arliai/qwq-32b-arliai-rpr-v1:free": 8192,
49
+ "baidu/ernie-4.5-300b-a47b": 128000,
50
+ "bytedance/ui-tars-1.5-7b": 8192,
51
+ "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": 32768,
52
+ "cognitivecomputations/dolphin-mixtral-8x22b": 65536,
53
+ "cognitivecomputations/dolphin3.0-mistral-24b": 32768,
54
+ "cognitivecomputations/dolphin3.0-mistral-24b:free": 32768,
55
+ "cognitivecomputations/dolphin3.0-r1-mistral-24b": 32768,
56
+ "cognitivecomputations/dolphin3.0-r1-mistral-24b:free": 32768,
57
+ "cohere/command": 8192,
58
+ "cohere/command-a": 8192,
59
+ "cohere/command-r": 128000,
60
+ "cohere/command-r-03-2024": 128000,
61
+ "cohere/command-r-08-2024": 128000,
62
+ "cohere/command-r-plus": 128000,
63
+ "cohere/command-r-plus-04-2024": 128000,
64
+ "cohere/command-r-plus-08-2024": 128000,
65
+ "cohere/command-r7b-12-2024": 128000,
66
+ "deepseek/deepseek-chat": 32768,
67
+ "deepseek/deepseek-chat-v3-0324": 32768,
68
+ "deepseek/deepseek-chat-v3-0324:free": 32768,
69
+ "deepseek/deepseek-prover-v2": 131072,
70
+ "deepseek/deepseek-r1": 32768,
71
+ "deepseek/deepseek-r1-0528": 32768,
72
+ "deepseek/deepseek-r1-0528-qwen3-8b": 32768,
73
+ "deepseek/deepseek-r1-0528-qwen3-8b:free": 32768,
74
+ "deepseek/deepseek-r1-0528:free": 32768,
75
+ "deepseek/deepseek-r1-distill-llama-70b": 131072,
76
+ "deepseek/deepseek-r1-distill-llama-70b:free": 131072,
77
+ "deepseek/deepseek-r1-distill-llama-8b": 131072,
78
+ "deepseek/deepseek-r1-distill-qwen-1.5b": 32768,
79
+ "deepseek/deepseek-r1-distill-qwen-14b": 32768,
80
+ "deepseek/deepseek-r1-distill-qwen-14b:free": 32768,
81
+ "deepseek/deepseek-r1-distill-qwen-32b": 32768,
82
+ "deepseek/deepseek-r1-distill-qwen-7b": 32768,
83
+ "deepseek/deepseek-r1:free": 32768,
84
+ "deepseek/deepseek-v3-base": 32768,
85
+ "eleutherai/llemma_7b": 8192,
86
+ "featherless/qwerky-72b:free": 8192,
87
+ "google/gemini-2.0-flash-001": 1000000,
88
+ "google/gemini-2.0-flash-exp:free": 1000000,
89
+ "google/gemini-2.0-flash-lite-001": 1000000,
90
+ "google/gemini-2.5-flash": 1000000,
91
+ "google/gemini-2.5-flash-lite": 1000000,
92
+ "google/gemini-2.5-flash-lite-preview-06-17": 1000000,
93
+ "google/gemini-2.5-pro": 2000000,
94
+ "google/gemini-2.5-pro-exp-03-25": 2000000,
95
+ "google/gemini-2.5-pro-preview": 2000000,
96
+ "google/gemini-2.5-pro-preview-05-06": 2000000,
97
+ "google/gemini-flash-1.5": 1000000,
98
+ "google/gemini-flash-1.5-8b": 1000000,
99
+ "google/gemini-pro-1.5": 2000000,
100
+ "google/gemma-2-27b-it": 8192,
101
+ "google/gemma-2-9b-it": 8192,
102
+ "google/gemma-2-9b-it:free": 8192,
103
+ "google/gemma-3-12b-it": 131072,
104
+ "google/gemma-3-12b-it:free": 131072,
105
+ "google/gemma-3-27b-it": 131072,
106
+ "google/gemma-3-27b-it:free": 131072,
107
+ "google/gemma-3-4b-it": 131072,
108
+ "google/gemma-3-4b-it:free": 131072,
109
+ "google/gemma-3n-e2b-it:free": 131072,
110
+ "google/gemma-3n-e4b-it": 131072,
111
+ "google/gemma-3n-e4b-it:free": 131072,
112
+ "gryphe/mythomax-l2-13b": 4096,
113
+ "inception/mercury": 32768,
114
+ "inception/mercury-coder": 32768,
115
+ "infermatic/mn-inferor-12b": 8192,
116
+ "inflection/inflection-3-pi": 128000,
117
+ "inflection/inflection-3-productivity": 128000,
118
+ "liquid/lfm-3b": 8192,
119
+ "liquid/lfm-40b": 8192,
120
+ "liquid/lfm-7b": 8192,
121
+ "mancer/weaver": 8192,
122
+ "meta-llama/llama-3-70b-instruct": 8192,
123
+ "meta-llama/llama-3-8b-instruct": 8192,
124
+ "meta-llama/llama-3.1-405b": 131072,
125
+ "meta-llama/llama-3.1-405b-instruct": 131072,
126
+ "meta-llama/llama-3.1-405b-instruct:free": 131072,
127
+ "meta-llama/llama-3.1-70b-instruct": 131072,
128
+ "meta-llama/llama-3.1-8b-instruct": 131072,
129
+ "meta-llama/llama-3.2-11b-vision-instruct": 131072,
130
+ "meta-llama/llama-3.2-11b-vision-instruct:free": 131072,
131
+ "meta-llama/llama-3.2-1b-instruct": 131072,
132
+ "meta-llama/llama-3.2-3b-instruct": 131072,
133
+ "meta-llama/llama-3.2-3b-instruct:free": 131072,
134
+ "meta-llama/llama-3.2-90b-vision-instruct": 131072,
135
+ "meta-llama/llama-3.3-70b-instruct": 131072,
136
+ "meta-llama/llama-3.3-70b-instruct:free": 131072,
137
+ "meta-llama/llama-4-maverick": 131072,
138
+ "meta-llama/llama-4-scout": 131072,
139
+ "meta-llama/llama-guard-2-8b": 8192,
140
+ "meta-llama/llama-guard-3-8b": 131072,
141
+ "meta-llama/llama-guard-4-12b": 131072,
142
+ "microsoft/mai-ds-r1": 32768,
143
+ "microsoft/mai-ds-r1:free": 32768,
144
+ "microsoft/phi-3-medium-128k-instruct": 131072,
145
+ "microsoft/phi-3-mini-128k-instruct": 131072,
146
+ "microsoft/phi-3.5-mini-128k-instruct": 131072,
147
+ "microsoft/phi-4": 131072,
148
+ "microsoft/phi-4-multimodal-instruct": 131072,
149
+ "microsoft/phi-4-reasoning-plus": 131072,
150
+ "microsoft/wizardlm-2-8x22b": 65536,
151
+ "minimax/minimax-01": 200000,
152
+ "minimax/minimax-m1": 200000,
153
+ "mistralai/codestral-2501": 32768,
154
+ "mistralai/codestral-2508": 32768,
155
+ "mistralai/devstral-medium": 32768,
156
+ "mistralai/devstral-small": 32768,
157
+ "mistralai/devstral-small-2505": 32768,
158
+ "mistralai/devstral-small-2505:free": 32768,
159
+ "mistralai/magistral-medium-2506": 32768,
160
+ "mistralai/magistral-medium-2506:thinking": 32768,
161
+ "mistralai/magistral-small-2506": 32768,
162
+ "mistralai/ministral-3b": 32768,
163
+ "mistralai/ministral-8b": 32768,
164
+ "mistralai/mistral-7b-instruct": 32768,
165
+ "mistralai/mistral-7b-instruct-v0.1": 8192,
166
+ "mistralai/mistral-7b-instruct-v0.2": 32768,
167
+ "mistralai/mistral-7b-instruct-v0.3": 32768,
168
+ "mistralai/mistral-7b-instruct:free": 32768,
169
+ "mistralai/mistral-large": 32768,
170
+ "mistralai/mistral-large-2407": 128000,
171
+ "mistralai/mistral-large-2411": 128000,
172
+ "mistralai/mistral-medium-3": 32768,
173
+ "mistralai/mistral-nemo": 128000,
174
+ "mistralai/mistral-nemo:free": 128000,
175
+ "mistralai/mistral-saba": 32768,
176
+ "mistralai/mistral-small": 32768,
177
+ "mistralai/mistral-small-24b-instruct-2501": 32768,
178
+ "mistralai/mistral-small-24b-instruct-2501:free": 32768,
179
+ "mistralai/mistral-small-3.1-24b-instruct": 32768,
180
+ "mistralai/mistral-small-3.1-24b-instruct:free": 32768,
181
+ "mistralai/mistral-small-3.2-24b-instruct": 32768,
182
+ "mistralai/mistral-small-3.2-24b-instruct:free": 32768,
183
+ "mistralai/mistral-tiny": 32768,
184
+ "mistralai/mixtral-8x22b-instruct": 65536,
185
+ "mistralai/mixtral-8x7b-instruct": 32768,
186
+ "mistralai/pixtral-12b": 128000,
187
+ "mistralai/pixtral-large-2411": 128000,
188
+ "moonshotai/kimi-dev-72b:free": 200000,
189
+ "moonshotai/kimi-k2": 200000,
190
+ "moonshotai/kimi-k2:free": 200000,
191
+ "moonshotai/kimi-vl-a3b-thinking": 200000,
192
+ "moonshotai/kimi-vl-a3b-thinking:free": 200000,
193
+ "morph/morph-v3-fast": 8192,
194
+ "morph/morph-v3-large": 8192,
195
+ "neversleep/llama-3-lumimaid-70b": 8192,
196
+ "neversleep/llama-3.1-lumimaid-8b": 131072,
197
+ "neversleep/noromaid-20b": 32768,
198
+ "nousresearch/deephermes-3-llama-3-8b-preview:free": 8192,
199
+ "nousresearch/deephermes-3-mistral-24b-preview": 32768,
200
+ "nousresearch/hermes-2-pro-llama-3-8b": 8192,
201
+ "nousresearch/hermes-3-llama-3.1-405b": 131072,
202
+ "nousresearch/hermes-3-llama-3.1-70b": 131072,
203
+ "nousresearch/nous-hermes-2-mixtral-8x7b-dpo": 32768,
204
+ "nvidia/llama-3.1-nemotron-70b-instruct": 131072,
205
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1": 131072,
206
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1:free": 131072,
207
+ "nvidia/llama-3.3-nemotron-super-49b-v1": 131072,
208
+ "openai/chatgpt-4o-latest": 128000,
209
+ "openai/codex-mini": 2048,
210
+ "openai/gpt-3.5-turbo": 4096,
211
+ "openai/gpt-3.5-turbo-0613": 4096,
212
+ "openai/gpt-3.5-turbo-16k": 16384,
213
+ "openai/gpt-3.5-turbo-instruct": 4096,
214
+ "openai/gpt-4": 8192,
215
+ "openai/gpt-4-0314": 8192,
216
+ "openai/gpt-4-1106-preview": 128000,
217
+ "openai/gpt-4-turbo": 128000,
218
+ "openai/gpt-4-turbo-preview": 128000,
219
+ "openai/gpt-4.1": 128000,
220
+ "openai/gpt-4.1-mini": 128000,
221
+ "openai/gpt-4.1-nano": 128000,
222
+ "openai/gpt-4o": 128000,
223
+ "openai/gpt-4o-2024-05-13": 128000,
224
+ "openai/gpt-4o-2024-08-06": 128000,
225
+ "openai/gpt-4o-2024-11-20": 128000,
226
+ "openai/gpt-4o-mini": 128000,
227
+ "openai/gpt-4o-mini-2024-07-18": 128000,
228
+ "openai/gpt-4o-mini-search-preview": 128000,
229
+ "openai/gpt-4o-search-preview": 128000,
230
+ "openai/gpt-4o:extended": 128000,
231
+ "openai/gpt-5": 200000,
232
+ "openai/gpt-5-chat": 200000,
233
+ "openai/gpt-5-mini": 200000,
234
+ "openai/gpt-5-nano": 200000,
235
+ "openai/gpt-oss-120b": 128000,
236
+ "openai/gpt-oss-20b": 128000,
237
+ "openai/gpt-oss-20b:free": 128000,
238
+ "openai/o1": 128000,
239
+ "openai/o1-mini": 128000,
240
+ "openai/o1-mini-2024-09-12": 128000,
241
+ "openai/o1-pro": 128000,
242
+ "openai/o3": 200000,
243
+ "openai/o3-mini": 200000,
244
+ "openai/o3-mini-high": 200000,
245
+ "openai/o3-pro": 200000,
246
+ "openai/o4-mini": 128000,
247
+ "openai/o4-mini-high": 128000,
248
+ "opengvlab/internvl3-14b": 8192,
249
+ "openrouter/auto": 8192,
250
+ "perplexity/r1-1776": 32768,
251
+ "perplexity/sonar": 32768,
252
+ "perplexity/sonar-deep-research": 32768,
253
+ "perplexity/sonar-pro": 32768,
254
+ "perplexity/sonar-reasoning": 32768,
255
+ "perplexity/sonar-reasoning-pro": 32768,
256
+ "pygmalionai/mythalion-13b": 4096,
257
+ "qwen/qwen-2-72b-instruct": 32768,
258
+ "qwen/qwen-2.5-72b-instruct": 131072,
259
+ "qwen/qwen-2.5-72b-instruct:free": 131072,
260
+ "qwen/qwen-2.5-7b-instruct": 131072,
261
+ "qwen/qwen-2.5-coder-32b-instruct": 131072,
262
+ "qwen/qwen-2.5-coder-32b-instruct:free": 131072,
263
+ "qwen/qwen-2.5-vl-7b-instruct": 131072,
264
+ "qwen/qwen-max": 32768,
265
+ "qwen/qwen-plus": 32768,
266
+ "qwen/qwen-turbo": 8192,
267
+ "qwen/qwen-vl-max": 32768,
268
+ "qwen/qwen-vl-plus": 32768,
269
+ "qwen/qwen2.5-vl-32b-instruct": 131072,
270
+ "qwen/qwen2.5-vl-32b-instruct:free": 131072,
271
+ "qwen/qwen2.5-vl-72b-instruct": 131072,
272
+ "qwen/qwen2.5-vl-72b-instruct:free": 131072,
273
+ "qwen/qwen3-14b": 32768,
274
+ "qwen/qwen3-14b:free": 32768,
275
+ "qwen/qwen3-235b-a22b": 32768,
276
+ "qwen/qwen3-235b-a22b-2507": 32768,
277
+ "qwen/qwen3-235b-a22b-thinking-2507": 32768,
278
+ "qwen/qwen3-235b-a22b:free": 32768,
279
+ "qwen/qwen3-30b-a3b": 32768,
280
+ "qwen/qwen3-30b-a3b-instruct-2507": 32768,
281
+ "qwen/qwen3-30b-a3b:free": 32768,
282
+ "qwen/qwen3-32b": 32768,
283
+ "qwen/qwen3-4b:free": 32768,
284
+ "qwen/qwen3-8b": 32768,
285
+ "qwen/qwen3-8b:free": 32768,
286
+ "qwen/qwen3-coder": 32768,
287
+ "qwen/qwen3-coder:free": 32768,
288
+ "qwen/qwq-32b": 32768,
289
+ "qwen/qwq-32b-preview": 32768,
290
+ "qwen/qwq-32b:free": 32768,
291
+ "raifle/sorcererlm-8x22b": 65536,
292
+ "rekaai/reka-flash-3:free": 128000,
293
+ "sao10k/l3-euryale-70b": 8192,
294
+ "sao10k/l3-lunaris-8b": 8192,
295
+ "sao10k/l3.1-euryale-70b": 131072,
296
+ "sao10k/l3.3-euryale-70b": 131072,
297
+ "sarvamai/sarvam-m:free": 8192,
298
+ "scb10x/llama3.1-typhoon2-70b-instruct": 131072,
299
+ "shisa-ai/shisa-v2-llama3.3-70b": 131072,
300
+ "shisa-ai/shisa-v2-llama3.3-70b:free": 131072,
301
+ "sophosympatheia/midnight-rose-70b": 4096,
302
+ "switchpoint/router": 8192,
303
+ "tencent/hunyuan-a13b-instruct": 8192,
304
+ "tencent/hunyuan-a13b-instruct:free": 8192,
305
+ "thedrummer/anubis-70b-v1.1": 8192,
306
+ "thedrummer/anubis-pro-105b-v1": 8192,
307
+ "thedrummer/rocinante-12b": 8192,
308
+ "thedrummer/skyfall-36b-v2": 8192,
309
+ "thedrummer/unslopnemo-12b": 128000,
310
+ "thedrummer/valkyrie-49b-v1": 8192,
311
+ "thudm/glm-4-32b": 2000000,
312
+ "thudm/glm-4.1v-9b-thinking": 2000000,
313
+ "thudm/glm-z1-32b:free": 2000000,
314
+ "tngtech/deepseek-r1t-chimera": 32768,
315
+ "tngtech/deepseek-r1t-chimera:free": 32768,
316
+ "tngtech/deepseek-r1t2-chimera:free": 32768,
317
+ "undi95/remm-slerp-l2-13b": 4096,
318
+ "x-ai/grok-2-1212": 128000,
319
+ "x-ai/grok-2-vision-1212": 128000,
320
+ "x-ai/grok-3": 128000,
321
+ "x-ai/grok-3-beta": 128000,
322
+ "x-ai/grok-3-mini": 128000,
323
+ "x-ai/grok-3-mini-beta": 128000,
324
+ "x-ai/grok-4": 128000,
325
+ "x-ai/grok-vision-beta": 128000,
326
+ "z-ai/glm-4-32b": 2000000,
327
+ "z-ai/glm-4.5": 2000000,
328
+ "z-ai/glm-4.5-air": 2000000,
329
+ "z-ai/glm-4.5-air:free": 2000000,
330
+ "llama3.1": 131072,
331
+ "llama3.2": 131072,
332
+ "llama3.3": 131072,
333
+ "llama3": 8192,
334
+ "llama2": 4096,
335
+ "mixtral8x22b": 65536,
336
+ "mixtral": 32768,
337
+ "mistral": 32768,
338
+ "gemma3": 131072,
339
+ "gemma2": 8192,
340
+ "gemma": 8192,
341
+ "phi3": 131072,
342
+ "phi2": 2048,
343
+ "phi": 2048,
344
+ "qwen2.5": 131072,
345
+ "qwen2": 32768,
346
+ "qwen": 8192,
347
+ "codellama": 16384,
348
+ "codegemma": 8192,
349
+ "deepseek-coder-v2": 131072,
350
+ "deepseek-coder": 16384,
351
+ "deepseek-v2": 131072,
352
+ "deepseek-llm": 4096,
353
+ "yi1.5": 32768,
354
+ "yi": 4096,
355
+ "command-r": 131072,
356
+ "wizardlm2": 32768,
357
+ "wizardlm": 16384,
358
+ "zephyr": 65536,
359
+ "vicuna": 2048,
360
+ "falcon": 2048,
361
+ "starcoder": 8192,
362
+ "stablelm": 4096,
363
+ "orca2": 4096,
364
+ "orca": 4096,
365
+ "dolphin": 32768,
366
+ "openhermes": 8192,
367
+ "gpt-oss": 128000,
368
+ "gpt-3.5-turbo": 4096,
369
+ "gpt-4": 8192,
370
+ "grok-2": 128000,
371
+ "grok-2-1212": 128000,
372
+ "grok-2-vision-1212": 128000,
373
+ "grok-3": 128000,
374
+ "grok-3-fast": 128000,
375
+ "grok-3-beta": 128000,
376
+ "grok-3-mini": 128000,
377
+ "grok-3-mini-beta": 128000,
378
+ "grok-3-mini-fast": 128000,
379
+ "grok-4-0709": 128000,
380
+ "grok-4": 128000,
381
+ "grok-vision-beta": 128000
382
+ }
@@ -9,7 +9,7 @@ from lollms_client.lollms_discussion import LollmsDiscussion
9
9
  from typing import Optional, Callable, List, Union
10
10
  from ascii_colors import ASCIIColors, trace_exception
11
11
  from typing import List, Dict
12
-
12
+ import httpx
13
13
  import pipmaster as pm
14
14
 
15
15
  pm.ensure_packages(["openai","tiktoken"])
@@ -49,7 +49,7 @@ class LollmsBinding(LollmsLLMBinding):
49
49
 
50
50
  if not self.service_key:
51
51
  self.service_key = os.getenv("LOLLMS_API_KEY", self.service_key)
52
- self.client = openai.OpenAI(api_key=self.service_key, base_url=None if self.host_address is None else self.host_address if len(self.host_address)>0 else None)
52
+ self.client = openai.OpenAI(api_key=self.service_key, base_url=None if self.host_address is None else self.host_address if len(self.host_address)>0 else None, http_client=httpx.Client(verify=self.verify_ssl_certificate))
53
53
  self.completion_format = ELF_COMPLETION_FORMAT.Chat
54
54
 
55
55
  def lollms_listMountedPersonalities(self, host_address:str|None=None):
@@ -680,7 +680,63 @@ class OllamaBinding(LollmsLLMBinding):
680
680
 
681
681
  ASCIIColors.warning(f"Context size not found for model '{model_name}'")
682
682
  return None
683
+
684
+ def ps(self):
685
+ """
686
+ Lists running models in a standardized, flat format.
687
+
688
+ This method corresponds to the /api/ps endpoint in the Ollama API. It retrieves
689
+ the models currently loaded into memory and transforms the data into a simplified,
690
+ flat list of dictionaries.
691
+
692
+ Returns:
693
+ list[dict]: A list of dictionaries, each representing a running model with a standardized set of keys.
694
+ Returns an empty list if the client is not initialized or if an error occurs.
683
695
 
696
+ Example of a returned model dictionary:
697
+ {
698
+ "model_name": "gemma3:12b",
699
+ "size": 13861175232,
700
+ "vram_size": 10961479680,
701
+ "parameters_size": "12.2B",
702
+ "quantization_level": "Q4_K_M",
703
+ "context_size": 32000,
704
+ "parent_model": "",
705
+ "expires_at": "2025-08-20T22:28:18.6708784+02:00"
706
+ }
707
+ """
708
+ if not self.ollama_client:
709
+ ASCIIColors.warning("Ollama client not initialized. Cannot list running models.")
710
+ return []
711
+
712
+ try:
713
+ running_models_response = self.ollama_client.ps()
714
+
715
+ models_list = running_models_response.get('models', [])
716
+ standardized_models = []
717
+
718
+ for model_data in models_list:
719
+ details = model_data.get('details', {})
720
+
721
+ flat_model_info = {
722
+ "model_name": model_data.get("name"),
723
+ "size": model_data.get("size"),
724
+ "vram_size": model_data.get("size_vram"),
725
+ "expires_at": model_data.get("expires_at"),
726
+ "parameters_size": details.get("parameter_size"),
727
+ "quantization_level": details.get("quantization_level"),
728
+ "parent_model": details.get("parent_model"),
729
+ # Add context_size if it exists in the details
730
+ "context_size": details.get("context_length")
731
+ }
732
+ standardized_models.append(flat_model_info)
733
+
734
+ return standardized_models
735
+
736
+ except Exception as e:
737
+ ASCIIColors.error(f"Failed to list running models from Ollama at {self.host_address}: {e}")
738
+ return []
739
+
684
740
  if __name__ == '__main__':
685
741
  global full_streamed_text
686
742
  # Example Usage (requires an Ollama server running)
@@ -10,7 +10,7 @@ from typing import Optional, Callable, List, Union
10
10
  from ascii_colors import ASCIIColors, trace_exception
11
11
  from typing import List, Dict
12
12
  import math
13
-
13
+ import httpx
14
14
  import pipmaster as pm
15
15
 
16
16
  pm.ensure_packages(["openai","tiktoken"])
@@ -47,7 +47,7 @@ class OpenAIBinding(LollmsLLMBinding):
47
47
 
48
48
  if not self.service_key:
49
49
  self.service_key = os.getenv("OPENAI_API_KEY", self.service_key)
50
- self.client = openai.OpenAI(api_key=self.service_key, base_url=None if self.host_address is None else self.host_address if len(self.host_address)>0 else None)
50
+ self.client = openai.OpenAI(api_key=self.service_key, base_url=None if self.host_address is None else self.host_address if len(self.host_address)>0 else None, http_client=httpx.Client(verify=self.verify_ssl_certificate))
51
51
  self.completion_format = ELF_COMPLETION_FORMAT.Chat
52
52
 
53
53
  def _build_openai_params(self, messages: list, **kwargs) -> dict:
@@ -668,4 +668,4 @@ class OpenAIBinding(LollmsLLMBinding):
668
668
  """
669
669
  self.model = model_name
670
670
  self.model_name = model_name
671
- return True
671
+ return True