ruby_llm-providers-lms 0.1.1 → 0.2.0

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +121 -0
  3. data/README.md +467 -104
  4. data/lib/ruby_llm/providers/lms/anthropic_messages.rb +28 -0
  5. data/lib/ruby_llm/providers/lms/endpoints.rb +18 -0
  6. data/lib/ruby_llm/providers/lms/model_management.rb +59 -0
  7. data/lib/ruby_llm/providers/lms/models.rb +44 -12
  8. data/lib/ruby_llm/providers/lms/native_chat/conversation.rb +93 -0
  9. data/lib/ruby_llm/providers/lms/native_chat/streaming.rb +67 -0
  10. data/lib/ruby_llm/providers/lms/native_chat.rb +134 -0
  11. data/lib/ruby_llm/providers/lms/native_v1.rb +97 -0
  12. data/lib/ruby_llm/providers/lms/responses.rb +47 -0
  13. data/lib/ruby_llm/providers/lms/version.rb +15 -0
  14. data/lib/ruby_llm/providers/lms.rb +51 -1
  15. data/models.json +69 -454
  16. metadata +12 -37
  17. data/.flayignore +0 -1
  18. data/.github/workflows/ci.yml +0 -29
  19. data/.github/workflows/gitleaks.yml +0 -22
  20. data/.github/workflows/release.yml +0 -36
  21. data/.overcommit.yml +0 -31
  22. data/.rspec +0 -2
  23. data/.rubocop.yml +0 -29
  24. data/Archspec.rb +0 -14
  25. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_openai_gpt_oss_20b_can_handle_a_multi_turn_conversation.yml +0 -92
  26. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_openai_gpt_oss_20b_can_have_a_basic_conversation.yml +0 -45
  27. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_openai_gpt_oss_20b_can_use_tools.yml +0 -129
  28. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_openai_gpt_oss_20b_returns_the_raw_response.yml +0 -73
  29. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_openai_gpt_oss_20b_supports_streaming_responses.yml +0 -81
  30. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_qwen3_0_6b_bible_assistant_can_have_a_basic_conversation.yml +0 -73
  31. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_qwen3_0_6b_bible_assistant_returns_structured_output.yml +0 -73
  32. data/spec/fixtures/vcr_cassettes/rubyllm_chat_lms_qwen3_0_6b_bible_assistant_returns_the_raw_response.yml +0 -73
  33. data/spec/fixtures/vcr_cassettes/rubyllm_embedding_lms_text_embedding_nomic_embed_text_v1_5_embeds_one_text.yml +0 -828
  34. data/spec/fixtures/vcr_cassettes/rubyllm_embedding_lms_text_embedding_nomic_embed_text_v1_5_embeds_several_texts.yml +0 -2375
  35. data/spec/ruby_llm/chat_schema_spec.rb +0 -30
  36. data/spec/ruby_llm/chat_spec.rb +0 -35
  37. data/spec/ruby_llm/chat_streaming_spec.rb +0 -22
  38. data/spec/ruby_llm/chat_tools_spec.rb +0 -30
  39. data/spec/ruby_llm/embedding_spec.rb +0 -49
  40. data/spec/ruby_llm/image_spec.rb +0 -23
  41. data/spec/ruby_llm/models_spec.rb +0 -11
  42. data/spec/ruby_llm/moderation_spec.rb +0 -22
  43. data/spec/ruby_llm/providers/lms/connection_guard_spec.rb +0 -47
  44. data/spec/ruby_llm/providers/lms_spec.rb +0 -153
  45. data/spec/ruby_llm/rerank_spec.rb +0 -23
  46. data/spec/ruby_llm/speech_spec.rb +0 -25
  47. data/spec/ruby_llm/video_spec.rb +0 -27
  48. data/spec/spec_helper.rb +0 -26
  49. data/spec/support/models.rb +0 -29
  50. data/spec/support/rubyllm_configuration.rb +0 -14
  51. data/spec/support/vcr_configuration.rb +0 -24
@@ -1,8 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'ruby_llm'
4
+ require 'ruby_llm/providers/lms/version'
5
+ require 'ruby_llm/providers/lms/endpoints'
4
6
  require 'ruby_llm/providers/lms/connection_guard'
7
+ require 'ruby_llm/providers/lms/native_v1'
5
8
  require 'ruby_llm/providers/lms/models'
9
+ require 'ruby_llm/providers/lms/responses'
10
+ require 'ruby_llm/providers/lms/anthropic_messages'
11
+ require 'ruby_llm/providers/lms/model_management'
12
+ require 'ruby_llm/providers/lms/native_chat/conversation'
13
+ require 'ruby_llm/providers/lms/native_chat/streaming'
14
+ require 'ruby_llm/providers/lms/native_chat'
6
15
 
7
16
  module RubyLLM
8
17
  module Providers
@@ -18,8 +27,30 @@ module RubyLLM
18
27
  include LMS::Models
19
28
  end
20
29
 
30
+ # LM Studio's native v0 chat endpoint. Request and response shapes
31
+ # match the OpenAI-compatible endpoint exactly — streaming and tool
32
+ # calls included — but the response says more about the inference:
33
+ # it fills in the `stats` block that /v1/chat/completions leaves
34
+ # empty (tokens per second, time to first token, generation time,
35
+ # stop reason) and adds `model_info` and `runtime`. RubyLLM has no
36
+ # field for any of it, so it arrives through Message#raw:
37
+ #
38
+ # RubyLLM.configure { |config| config.lms_protocol = :native_v0 }
39
+ # response = RubyLLM.chat(model: 'qwen/qwen3-4b', provider: :lms).ask('Hello')
40
+ # response.raw.body['stats']['tokens_per_second'] # => 251.5
41
+ class NativeChatCompletions < ChatCompletions
42
+ def completion_url
43
+ '../api/v0/chat/completions'
44
+ end
45
+ end
46
+
21
47
  protocol :chat_completions, ChatCompletions
22
- protocol :responses, Protocols::Responses
48
+ protocol :responses, Responses
49
+ protocol :native_chat, NativeChat
50
+ protocol :native_v0, NativeChatCompletions
51
+ protocol :anthropic, AnthropicMessages
52
+
53
+ include ModelManagement
23
54
 
24
55
  def initialize(config)
25
56
  super
@@ -36,6 +67,19 @@ module RubyLLM
36
67
  { 'Authorization' => "Bearer #{@config.lms_api_key}" }
37
68
  end
38
69
 
70
+ # LM Studio serves POST /v1/embeddings on the same port whichever chat
71
+ # dialect is in effect, so lms_protocol has no say over where an
72
+ # embedding goes. RubyLLM would otherwise resolve embeddings to the
73
+ # configured chat protocol — and :anthropic refuses them outright
74
+ # rather than falling back to the OpenAI endpoint.
75
+ def embed(text, model:, dimensions:, **)
76
+ embedding_protocol(model).embed(text, model: model_id_for(model), dimensions: dimensions, **)
77
+ end
78
+
79
+ def render_embedding(text, model:, dimensions: nil) # :nodoc:
80
+ embedding_protocol(model).render_embedding(text, model: model_id_for(model), dimensions: dimensions)
81
+ end
82
+
39
83
  class << self
40
84
  def display_name
41
85
  'LM Studio'
@@ -53,6 +97,12 @@ module RubyLLM
53
97
  true
54
98
  end
55
99
  end
100
+
101
+ private
102
+
103
+ def embedding_protocol(model)
104
+ protocols.fetch(:chat_completions).new(self, model)
105
+ end
56
106
  end
57
107
  end
58
108
  end
data/models.json CHANGED
@@ -1,7 +1,7 @@
1
1
  [
2
2
  {
3
3
  "id": "qwen/qwen3.8-27b",
4
- "name": "qwen/qwen3.8-27b",
4
+ "name": "Qwen3.8 27B",
5
5
  "provider": "lms",
6
6
  "family": "qwen35",
7
7
  "created_at": null,
@@ -21,7 +21,9 @@
21
21
  "streaming",
22
22
  "structured_output",
23
23
  "function_calling",
24
- "vision"
24
+ "tool_choice",
25
+ "vision",
26
+ "reasoning"
25
27
  ],
26
28
  "pricing": {},
27
29
  "metadata": {
@@ -30,12 +32,35 @@
30
32
  "arch": "qwen35",
31
33
  "compatibility_type": "gguf",
32
34
  "quantization": "Q4_K_M",
33
- "state": "not-loaded"
35
+ "bits_per_weight": 4,
36
+ "state": "not-loaded",
37
+ "display_name": "Qwen3.8 27B",
38
+ "params_string": "27B",
39
+ "size_bytes": 17742039110,
40
+ "variants": [
41
+ "qwen/qwen3.8-27b@q4_k_m"
42
+ ],
43
+ "selected_variant": "qwen/qwen3.8-27b@q4_k_m",
44
+ "reasoning_options": [
45
+ {
46
+ "type": "effort",
47
+ "values": [
48
+ "none",
49
+ "low",
50
+ "medium",
51
+ "xhigh"
52
+ ],
53
+ "default": "xhigh"
54
+ },
55
+ {
56
+ "type": "toggle"
57
+ }
58
+ ]
34
59
  }
35
60
  },
36
61
  {
37
62
  "id": "unlimited-ocr",
38
- "name": "unlimited-ocr",
63
+ "name": "Unlimited OCR",
39
64
  "provider": "lms",
40
65
  "family": "deepseek2-ocr",
41
66
  "created_at": null,
@@ -63,12 +88,16 @@
63
88
  "arch": "deepseek2-ocr",
64
89
  "compatibility_type": "gguf",
65
90
  "quantization": "IQ2_M",
66
- "state": "not-loaded"
91
+ "bits_per_weight": 2,
92
+ "state": "not-loaded",
93
+ "display_name": "Unlimited OCR",
94
+ "params_string": "64x550M",
95
+ "size_bytes": 2044024672
67
96
  }
68
97
  },
69
98
  {
70
99
  "id": "kimi-k2.7-code",
71
- "name": "kimi-k2.7-code",
100
+ "name": "Kimi K2.7 Code UD",
72
101
  "provider": "lms",
73
102
  "family": "deepseek2",
74
103
  "created_at": null,
@@ -96,299 +125,18 @@
96
125
  "arch": "deepseek2",
97
126
  "compatibility_type": "gguf",
98
127
  "quantization": "IQ1_M",
99
- "state": "not-loaded"
100
- }
101
- },
102
- {
103
- "id": "qwen/qwen3.6-35b-a3b",
104
- "name": "qwen/qwen3.6-35b-a3b",
105
- "provider": "lms",
106
- "family": "qwen3_5_moe",
107
- "created_at": null,
108
- "context_window": 262144,
109
- "max_output_tokens": null,
110
- "knowledge_cutoff": null,
111
- "modalities": {
112
- "input": [
113
- "text",
114
- "image"
115
- ],
116
- "output": [
117
- "text"
118
- ]
119
- },
120
- "capabilities": [
121
- "streaming",
122
- "structured_output",
123
- "function_calling",
124
- "vision"
125
- ],
126
- "pricing": {},
127
- "metadata": {
128
- "owned_by": "organization_owner",
129
- "publisher": "qwen",
130
- "arch": "qwen3_5_moe",
131
- "compatibility_type": "mlx",
132
- "quantization": "4bit",
133
- "state": "not-loaded"
134
- }
135
- },
136
- {
137
- "id": "bibleai",
138
- "name": "bibleai",
139
- "provider": "lms",
140
- "family": "gemma4",
141
- "created_at": null,
142
- "context_window": 131072,
143
- "max_output_tokens": null,
144
- "knowledge_cutoff": null,
145
- "modalities": {
146
- "input": [
147
- "text"
148
- ],
149
- "output": [
150
- "text"
151
- ]
152
- },
153
- "capabilities": [
154
- "streaming",
155
- "structured_output"
156
- ],
157
- "pricing": {},
158
- "metadata": {
159
- "owned_by": "organization_owner",
160
- "publisher": "rhemabible",
161
- "arch": "gemma4",
162
- "compatibility_type": "gguf",
163
- "quantization": "Q8_0",
164
- "state": "not-loaded"
165
- }
166
- },
167
- {
168
- "id": "bible-study-phi3-mini",
169
- "name": "bible-study-phi3-mini",
170
- "provider": "lms",
171
- "family": "llama",
172
- "created_at": null,
173
- "context_window": 4096,
174
- "max_output_tokens": null,
175
- "knowledge_cutoff": null,
176
- "modalities": {
177
- "input": [
178
- "text"
179
- ],
180
- "output": [
181
- "text"
182
- ]
183
- },
184
- "capabilities": [
185
- "streaming",
186
- "structured_output"
187
- ],
188
- "pricing": {},
189
- "metadata": {
190
- "owned_by": "organization_owner",
191
- "publisher": "Phora68",
192
- "arch": "llama",
193
- "compatibility_type": "gguf",
194
- "quantization": "Q4_K_M",
195
- "state": "not-loaded"
196
- }
197
- },
198
- {
199
- "id": "qwen3-0.6b-bible-assistant",
200
- "name": "qwen3-0.6b-bible-assistant",
201
- "provider": "lms",
202
- "family": "qwen3",
203
- "created_at": null,
204
- "context_window": 40960,
205
- "max_output_tokens": null,
206
- "knowledge_cutoff": null,
207
- "modalities": {
208
- "input": [
209
- "text"
210
- ],
211
- "output": [
212
- "text"
213
- ]
214
- },
215
- "capabilities": [
216
- "streaming",
217
- "structured_output",
218
- "function_calling"
219
- ],
220
- "pricing": {},
221
- "metadata": {
222
- "owned_by": "organization_owner",
223
- "publisher": "juvereturn",
224
- "arch": "qwen3",
225
- "compatibility_type": "gguf",
226
- "quantization": "Q4_K_M",
227
- "state": "not-loaded"
228
- }
229
- },
230
- {
231
- "id": "kimi-k2.6-control-vectors",
232
- "name": "kimi-k2.6-control-vectors",
233
- "provider": "lms",
234
- "family": "controlvector",
235
- "created_at": null,
236
- "context_window": null,
237
- "max_output_tokens": null,
238
- "knowledge_cutoff": null,
239
- "modalities": {
240
- "input": [
241
- "text"
242
- ],
243
- "output": [
244
- "text"
245
- ]
246
- },
247
- "capabilities": [
248
- "streaming",
249
- "structured_output"
250
- ],
251
- "pricing": {},
252
- "metadata": {
253
- "owned_by": "organization_owner",
254
- "publisher": "gghfez",
255
- "arch": "controlvector",
256
- "compatibility_type": "gguf",
257
- "state": "not-loaded"
258
- }
259
- },
260
- {
261
- "id": "eloyon/christian-bible-expert-v2.0-24b",
262
- "name": "eloyon/christian-bible-expert-v2.0-24b",
263
- "provider": "lms",
264
- "family": "llama",
265
- "created_at": null,
266
- "context_window": 32768,
267
- "max_output_tokens": null,
268
- "knowledge_cutoff": null,
269
- "modalities": {
270
- "input": [
271
- "text"
272
- ],
273
- "output": [
274
- "text"
275
- ]
276
- },
277
- "capabilities": [
278
- "streaming",
279
- "structured_output"
280
- ],
281
- "pricing": {},
282
- "metadata": {
283
- "owned_by": "organization_owner",
284
- "publisher": "EloyOn",
285
- "arch": "llama",
286
- "compatibility_type": "gguf",
287
- "quantization": "Q5_0",
288
- "state": "not-loaded"
289
- }
290
- },
291
- {
292
- "id": "eloyon/baptist-christian-bible-expert-v2.0-22b",
293
- "name": "eloyon/baptist-christian-bible-expert-v2.0-22b",
294
- "provider": "lms",
295
- "family": "llama",
296
- "created_at": null,
297
- "context_window": 32768,
298
- "max_output_tokens": null,
299
- "knowledge_cutoff": null,
300
- "modalities": {
301
- "input": [
302
- "text"
303
- ],
304
- "output": [
305
- "text"
306
- ]
307
- },
308
- "capabilities": [
309
- "streaming",
310
- "structured_output",
311
- "function_calling"
312
- ],
313
- "pricing": {},
314
- "metadata": {
315
- "owned_by": "organization_owner",
316
- "publisher": "EloyOn",
317
- "arch": "llama",
318
- "compatibility_type": "gguf",
319
- "quantization": "Q5_0",
320
- "state": "not-loaded"
321
- }
322
- },
323
- {
324
- "id": "reformed-christian-bible-expert-v2.1-12b-mlx",
325
- "name": "reformed-christian-bible-expert-v2.1-12b-mlx",
326
- "provider": "lms",
327
- "family": "mistral",
328
- "created_at": null,
329
- "context_window": 131072,
330
- "max_output_tokens": null,
331
- "knowledge_cutoff": null,
332
- "modalities": {
333
- "input": [
334
- "text"
335
- ],
336
- "output": [
337
- "text"
338
- ]
339
- },
340
- "capabilities": [
341
- "streaming",
342
- "structured_output",
343
- "function_calling"
344
- ],
345
- "pricing": {},
346
- "metadata": {
347
- "owned_by": "organization_owner",
348
- "publisher": "brianroberg",
349
- "arch": "mistral",
350
- "compatibility_type": "mlx",
351
- "quantization": "bf16",
352
- "state": "not-loaded"
353
- }
354
- },
355
- {
356
- "id": "christian-bible-expert-v2.0-12b",
357
- "name": "christian-bible-expert-v2.0-12b",
358
- "provider": "lms",
359
- "family": "llama",
360
- "created_at": null,
361
- "context_window": 131072,
362
- "max_output_tokens": null,
363
- "knowledge_cutoff": null,
364
- "modalities": {
365
- "input": [
366
- "text"
367
- ],
368
- "output": [
369
- "text"
370
- ]
371
- },
372
- "capabilities": [
373
- "streaming",
374
- "structured_output",
375
- "function_calling"
376
- ],
377
- "pricing": {},
378
- "metadata": {
379
- "owned_by": "organization_owner",
380
- "publisher": "EloyOn",
381
- "arch": "llama",
382
- "compatibility_type": "gguf",
383
- "quantization": "Q5_0",
384
- "state": "not-loaded"
128
+ "bits_per_weight": 1,
129
+ "state": "not-loaded",
130
+ "display_name": "Kimi K2.7 Code UD",
131
+ "params_string": "384x14B",
132
+ "size_bytes": 305793771748
385
133
  }
386
134
  },
387
135
  {
388
136
  "id": "text-embedding-nomic-embed-text-v1.5",
389
- "name": "text-embedding-nomic-embed-text-v1.5",
137
+ "name": "Nomic Embed Text v1.5",
390
138
  "provider": "lms",
391
- "family": "nomic-bert",
139
+ "family": "lms",
392
140
  "created_at": null,
393
141
  "context_window": 2048,
394
142
  "max_output_tokens": null,
@@ -406,15 +154,17 @@
406
154
  "metadata": {
407
155
  "owned_by": "organization_owner",
408
156
  "publisher": "nomic-ai",
409
- "arch": "nomic-bert",
410
157
  "compatibility_type": "gguf",
411
158
  "quantization": "Q4_K_M",
412
- "state": "not-loaded"
159
+ "bits_per_weight": 4,
160
+ "state": "not-loaded",
161
+ "display_name": "Nomic Embed Text v1.5",
162
+ "size_bytes": 84106624
413
163
  }
414
164
  },
415
165
  {
416
166
  "id": "openai/gpt-oss-20b",
417
- "name": "openai/gpt-oss-20b",
167
+ "name": "GPT-OSS 20B",
418
168
  "provider": "lms",
419
169
  "family": "gpt_oss",
420
170
  "created_at": null,
@@ -432,7 +182,9 @@
432
182
  "capabilities": [
433
183
  "streaming",
434
184
  "structured_output",
435
- "function_calling"
185
+ "function_calling",
186
+ "tool_choice",
187
+ "reasoning"
436
188
  ],
437
189
  "pricing": {},
438
190
  "metadata": {
@@ -441,163 +193,26 @@
441
193
  "arch": "gpt_oss",
442
194
  "compatibility_type": "mlx",
443
195
  "quantization": "8bit",
444
- "state": "not-loaded"
445
- }
446
- },
447
- {
448
- "id": "nondenominational-christian-bible-expert-v2.0-24b",
449
- "name": "nondenominational-christian-bible-expert-v2.0-24b",
450
- "provider": "lms",
451
- "family": "llama",
452
- "created_at": null,
453
- "context_window": 32768,
454
- "max_output_tokens": null,
455
- "knowledge_cutoff": null,
456
- "modalities": {
457
- "input": [
458
- "text"
459
- ],
460
- "output": [
461
- "text"
462
- ]
463
- },
464
- "capabilities": [
465
- "streaming",
466
- "structured_output"
467
- ],
468
- "pricing": {},
469
- "metadata": {
470
- "owned_by": "organization_owner",
471
- "publisher": "mradermacher",
472
- "arch": "llama",
473
- "compatibility_type": "gguf",
474
- "quantization": "Q4_K_S",
475
- "state": "not-loaded"
476
- }
477
- },
478
- {
479
- "id": "mradermacher/baptist-christian-bible-expert-v2.0-22b",
480
- "name": "mradermacher/baptist-christian-bible-expert-v2.0-22b",
481
- "provider": "lms",
482
- "family": "llama",
483
- "created_at": null,
484
- "context_window": 32768,
485
- "max_output_tokens": null,
486
- "knowledge_cutoff": null,
487
- "modalities": {
488
- "input": [
489
- "text"
490
- ],
491
- "output": [
492
- "text"
493
- ]
494
- },
495
- "capabilities": [
496
- "streaming",
497
- "structured_output",
498
- "function_calling"
499
- ],
500
- "pricing": {},
501
- "metadata": {
502
- "owned_by": "organization_owner",
503
- "publisher": "mradermacher",
504
- "arch": "llama",
505
- "compatibility_type": "gguf",
506
- "quantization": "Q4_K_S",
507
- "state": "not-loaded"
508
- }
509
- },
510
- {
511
- "id": "protestant-christian-bible-expert-v2.0-24b",
512
- "name": "protestant-christian-bible-expert-v2.0-24b",
513
- "provider": "lms",
514
- "family": "llama",
515
- "created_at": null,
516
- "context_window": 32768,
517
- "max_output_tokens": null,
518
- "knowledge_cutoff": null,
519
- "modalities": {
520
- "input": [
521
- "text"
522
- ],
523
- "output": [
524
- "text"
196
+ "bits_per_weight": 8,
197
+ "state": "not-loaded",
198
+ "display_name": "GPT-OSS 20B",
199
+ "params_string": "20B",
200
+ "size_bytes": 22256625356,
201
+ "variants": [
202
+ "openai/gpt-oss-20b@8bit"
203
+ ],
204
+ "selected_variant": "openai/gpt-oss-20b@8bit",
205
+ "reasoning_options": [
206
+ {
207
+ "type": "effort",
208
+ "values": [
209
+ "low",
210
+ "medium",
211
+ "high"
212
+ ],
213
+ "default": "low"
214
+ }
525
215
  ]
526
- },
527
- "capabilities": [
528
- "streaming",
529
- "structured_output"
530
- ],
531
- "pricing": {},
532
- "metadata": {
533
- "owned_by": "organization_owner",
534
- "publisher": "mradermacher",
535
- "arch": "llama",
536
- "compatibility_type": "gguf",
537
- "quantization": "Q4_K_S",
538
- "state": "not-loaded"
539
- }
540
- },
541
- {
542
- "id": "mradermacher/christian-bible-expert-v2.0-24b",
543
- "name": "mradermacher/christian-bible-expert-v2.0-24b",
544
- "provider": "lms",
545
- "family": "llama",
546
- "created_at": null,
547
- "context_window": 32768,
548
- "max_output_tokens": null,
549
- "knowledge_cutoff": null,
550
- "modalities": {
551
- "input": [
552
- "text"
553
- ],
554
- "output": [
555
- "text"
556
- ]
557
- },
558
- "capabilities": [
559
- "streaming",
560
- "structured_output"
561
- ],
562
- "pricing": {},
563
- "metadata": {
564
- "owned_by": "organization_owner",
565
- "publisher": "mradermacher",
566
- "arch": "llama",
567
- "compatibility_type": "gguf",
568
- "quantization": "Q4_K_S",
569
- "state": "not-loaded"
570
- }
571
- },
572
- {
573
- "id": "baptist-christian-bible-expert-v2.0-24b",
574
- "name": "baptist-christian-bible-expert-v2.0-24b",
575
- "provider": "lms",
576
- "family": "llama",
577
- "created_at": null,
578
- "context_window": 32768,
579
- "max_output_tokens": null,
580
- "knowledge_cutoff": null,
581
- "modalities": {
582
- "input": [
583
- "text"
584
- ],
585
- "output": [
586
- "text"
587
- ]
588
- },
589
- "capabilities": [
590
- "streaming",
591
- "structured_output"
592
- ],
593
- "pricing": {},
594
- "metadata": {
595
- "owned_by": "organization_owner",
596
- "publisher": "mradermacher",
597
- "arch": "llama",
598
- "compatibility_type": "gguf",
599
- "quantization": "Q4_K_S",
600
- "state": "not-loaded"
601
216
  }
602
217
  }
603
218
  ]