foobara-llm-backed-command 1.0.0 → 1.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7747f5873ca5862ac16e10edc62f856fe9f41b480ca9537e2fac7d967b2647ba
4
- data.tar.gz: 718b24e6f4e33bc993fd39fd043a17343ea7e7b8342b5cc1807d5b7f662f009b
3
+ metadata.gz: cf89dfdfd181a03c728a1e4776440dca2f5421ed0f488d2e3fc3a7630b497c64
4
+ data.tar.gz: 60ae5ea17c418ffc323eeed3b6642e86e408a5c4b810e3471ef6a2bdf71ad9a7
5
5
  SHA512:
6
- metadata.gz: 7425c556694c8350956580d8492321b8d622c66245d0853911602229ecf894457f1bdb5c08934de8bc4a4e9bf06583983173a84f7dd563bd25f949cccfc41b19
7
- data.tar.gz: 14847e3e1fc3de9d2f438b4a19690a018341e09d40f9ff617175ce8be2604f8abb99d6b860b8015f92136bc373b903d0c72e644e9080df1e4df3a19324d5ed58
6
+ metadata.gz: cb2ba5b9634a0f5c7740d338e9f588f67d4bd214f5e101f0373cb91a0f2cf587707eee5b80beafcae0a5ea8c0c311b37138dc58c78279358609e50ffbb7d026f
7
+ data.tar.gz: 97a025adf7c31a0cebce7c65427811fcd628634b948f7e2654112eaad8b8cfa3d3fb6992595ced1fcf5ca98f7531ce5a018ae97d1af05e4a1d8cc638ac64b61d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [1.0.2] - 2025-08-11
2
+
3
+ - Handle situation where smaller models incorrectly use {"result":"whatever"} instead of "whatever"
4
+
5
+ ## [1.0.1] - 2025-07-09
6
+
7
+ - Use foobara-ai version 1.0.0
8
+
1
9
  ## [1.0.0] - 2025-07-08
2
10
 
3
11
  - Add support for separate serializers for user and assistant messages
@@ -35,11 +35,12 @@ module Foobara
35
35
  construct_messages
36
36
  generate_answer
37
37
  parse_answer
38
+ attempt_to_recover_from_bad_format
38
39
 
39
- parsed_answer
40
+ final_answer
40
41
  end
41
42
 
42
- attr_accessor :answer, :parsed_answer, :messages, :assistant_serializer, :user_serializer,
43
+ attr_accessor :final_answer, :answer, :parsed_answer, :messages, :assistant_serializer, :user_serializer,
43
44
  :computed_assistant_association_depth, :computed_user_association_depth,
44
45
  :llm_instructions
45
46
 
@@ -181,6 +182,31 @@ module Foobara
181
182
  end
182
183
  end
183
184
 
185
+ # Sometimes we get {"result": "whatever"} instead of just "whatever" from some smaller models.
186
+ # Let's detect that and handle it...
187
+ def attempt_to_recover_from_bad_format
188
+ self.final_answer = if parsed_answer.is_a?(::Hash) && parsed_answer.keys == ["result"]
189
+ result_type = self.class.result_type
190
+
191
+ # TODO: implement a Type#valid? method
192
+ if result_type.process_value(parsed_answer).success?
193
+ parsed_answer
194
+ else
195
+ result = parsed_answer["result"]
196
+
197
+ if result_type.process_value(result).success?
198
+ result
199
+ else
200
+ # :nocov:
201
+ parsed_answer
202
+ # :nocov:
203
+ end
204
+ end
205
+ else
206
+ parsed_answer
207
+ end
208
+ end
209
+
184
210
  module ClassMethods
185
211
  def inputs_json_schema(association_depth)
186
212
  JsonSchemaGenerator.to_json_schema(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara-llm-backed-command
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
@@ -13,44 +13,62 @@ dependencies:
13
13
  name: foobara
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.0.132
18
+ version: 0.0.136
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.0
19
22
  type: :runtime
20
23
  prerelease: false
21
24
  version_requirements: !ruby/object:Gem::Requirement
22
25
  requirements:
23
- - - "~>"
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: 0.0.136
29
+ - - "<"
24
30
  - !ruby/object:Gem::Version
25
- version: 0.0.132
31
+ version: 2.0.0
26
32
  - !ruby/object:Gem::Dependency
27
33
  name: foobara-ai
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
- - - "~>"
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: 1.0.0
39
+ - - "<"
31
40
  - !ruby/object:Gem::Version
32
- version: 0.0.1
41
+ version: 2.0.0
33
42
  type: :runtime
34
43
  prerelease: false
35
44
  version_requirements: !ruby/object:Gem::Requirement
36
45
  requirements:
37
- - - "~>"
46
+ - - ">="
38
47
  - !ruby/object:Gem::Version
39
- version: 0.0.1
48
+ version: 1.0.0
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: 2.0.0
40
52
  - !ruby/object:Gem::Dependency
41
53
  name: foobara-json-schema-generator
42
54
  requirement: !ruby/object:Gem::Requirement
43
55
  requirements:
44
- - - "~>"
56
+ - - ">="
45
57
  - !ruby/object:Gem::Version
46
58
  version: 1.0.0
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.0
47
62
  type: :runtime
48
63
  prerelease: false
49
64
  version_requirements: !ruby/object:Gem::Requirement
50
65
  requirements:
51
- - - "~>"
66
+ - - ">="
52
67
  - !ruby/object:Gem::Version
53
68
  version: 1.0.0
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: 2.0.0
54
72
  email:
55
73
  - azimux@gmail.com
56
74
  executables: []