llm_specs 0.1.6 → 0.1.8
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/llm_specs/cache.rb +1 -1
- data/lib/llm_specs/collection.rb +2 -2
- data/lib/llm_specs/errors.rb +1 -1
- data/lib/llm_specs/model.rb +11 -11
- data/lib/llm_specs/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c24274787a950d2423547ddd06869a47e4f2b2c3b0b721f7abe141efea300d95
|
4
|
+
data.tar.gz: edeb2f59d249b951e8c8c6e19d6caa289c22c1055eba5ef813270838ffc560fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ce566d5d907459e7250bc292f5eda9d6d5e13a82c97bc949838eaa49411d16dbfddf0017805099a2c0f256be718149526807f914bdebedd2bbb41801e85b52d
|
7
|
+
data.tar.gz: a450a7b8b9253abc24d0dc17418cde60bf8da02c92f29d4964c9dfd60fad7cacb3a582c269ebf54436023dd8d514aa1f5f52d14fbff8f3cce699059703b47b10
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ It provides a simple, efficient way to access model metadata with built-in cachi
|
|
7
7
|
## Features
|
8
8
|
|
9
9
|
- Fetches LLM specs from: https://api.parsera.org/v1/llm-specs
|
10
|
-
- Caches results locally to
|
10
|
+
- Caches results locally to llm-specs.json
|
11
11
|
- Provides a queryable catalog of models via .models
|
12
12
|
- Supports filtering and lookup by model attributes
|
13
13
|
|
data/lib/llm_specs/cache.rb
CHANGED
data/lib/llm_specs/collection.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
module LLMSpecs
|
3
3
|
class Collection < Array
|
4
4
|
def find(id)
|
5
|
-
super() { it.id == id }
|
5
|
+
super() { it.id == id } or raise ModelNotFound.new(id)
|
6
6
|
end
|
7
7
|
|
8
8
|
def where(**criteria)
|
@@ -13,7 +13,7 @@ module LLMSpecs
|
|
13
13
|
|
14
14
|
%i[select reject filter].each do |method|
|
15
15
|
define_method(method) do |&block|
|
16
|
-
self.class.new
|
16
|
+
self.class.new super(&block)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/llm_specs/errors.rb
CHANGED
data/lib/llm_specs/model.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module LLMSpecs
|
3
3
|
class Model < Data.define(:id, :name, :provider, :family, :context_window, :max_output_tokens, :modalities, :capabilities, :pricing)
|
4
|
-
def supports?(*
|
5
|
-
|
4
|
+
def supports?(*args)
|
5
|
+
args.all? { capabilities.include? it.to_s }
|
6
6
|
end
|
7
7
|
|
8
|
-
def supports_input?(*
|
9
|
-
|
8
|
+
def supports_input?(*args)
|
9
|
+
args.all? { input_modalities.include? it.to_s }
|
10
10
|
end
|
11
11
|
|
12
|
-
def supports_output?(*
|
13
|
-
|
12
|
+
def supports_output?(*args)
|
13
|
+
args.all? { output_modalities.include? it.to_s }
|
14
14
|
end
|
15
15
|
|
16
16
|
%i[function_calling structured_output batch reasoning citations streaming].each do |capability|
|
17
|
-
define_method(:"#{capability}?") { supports?
|
17
|
+
define_method(:"#{capability}?") { supports? capability }
|
18
18
|
end
|
19
19
|
|
20
|
-
%i[text image audio].each do |
|
21
|
-
define_method(:"#{
|
20
|
+
%i[text image audio].each do |mode|
|
21
|
+
define_method(:"#{mode}_input?") { supports_input? mode }
|
22
22
|
end
|
23
23
|
|
24
|
-
%i[text image audio embeddings].each do |
|
25
|
-
define_method(:"#{
|
24
|
+
%i[text image audio embeddings].each do |mode|
|
25
|
+
define_method(:"#{mode}_output?") { supports_output? mode }
|
26
26
|
end
|
27
27
|
|
28
28
|
def input_modalities
|
data/lib/llm_specs/version.rb
CHANGED