ruby-openai-swarm 0.2.4 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef97e65185db604611e9a15e4e5a3dcf3b35eb38e8c87e54040175f1947280b8
4
- data.tar.gz: cac5ea7cad0afc755fd528e39e5f77c10db1ecbda43d94b4021863d6f1ac5cea
3
+ metadata.gz: 143ab1b153e54393e27a5a2f02d77c94ecaa8ed477d6ecdc2f072730b63ffd1f
4
+ data.tar.gz: fa72888457647eefc2fedc5c5d97dcd1ccf7b2e35f1395eebf0500dc4a14fb22
5
5
  SHA512:
6
- metadata.gz: 80460e88514e6e117d11de243ddb44f3d412b6c009f6d5ace6f18e82c615fef54f6ccab33e0e0ebb1ec0b9a2d762a2011ed8bef48dc3d0afaf6dd908eb07d331
7
- data.tar.gz: 101d70a78daa2d7f2be6917b23aaa81ff0c6e76d37d6a49d5405af7983fd2ba19f974ef6620fec79b4899644a6b8c4d208b45df9292aee834456f6fea57bee6e
6
+ metadata.gz: 6b6830bb7dc3cb4e0512e0c5e0967ba7160b1967b5a44136923108df60cbb76450da27df55cadc9357a8a6c86d093db27dfbfdcf0f839e8db1e12114606055d7
7
+ data.tar.gz: f8f67a146f3e089973e333a9ae39d2310779fa89648b91459ebcfe83029b4b6328852085cfb4179ae6627e60d802ff974ddaa8bebeee2f638fedcd89f1020e2a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-openai-swarm (0.2.4)
4
+ ruby-openai-swarm (0.2.6)
5
5
  ruby-openai (~> 7.3)
6
6
 
7
7
  GEM
@@ -212,8 +212,16 @@ module OpenAISwarm
212
212
 
213
213
  yield({ delim: "start" }) if block_given?
214
214
  completion.each do |chunk|
215
-
216
- raise OpenAISwarm::Error.new(chunk['error']) if chunk['error']
215
+ if chunk['error']
216
+ details = {
217
+ 'response' =>
218
+ Response.new(
219
+ messages: messages,
220
+ agent: active_agent,
221
+ context_variables: context_variables)
222
+ }
223
+ raise OpenAISwarm::Error.new(chunk['error'], details)
224
+ end
217
225
 
218
226
  delta = chunk.dig('choices', 0, 'delta')
219
227
  if delta['role'] == "assistant"
@@ -1,10 +1,13 @@
1
1
  module OpenAISwarm
2
2
  class FunctionDescriptor
3
- attr_reader :target_method, :description
3
+ attr_reader :target_method,
4
+ :description,
5
+ :parameters
4
6
 
5
- def initialize(target_method:, description: '')
7
+ def initialize(target_method:, description: '', parameters: nil)
6
8
  @target_method = target_method.is_a?(Method) ? target_method : method(target_method)
7
9
  @description = description
10
+ @parameters = parameters
8
11
  end
9
12
  end
10
13
  end
@@ -52,6 +52,7 @@ module OpenAISwarm
52
52
  def self.function_to_json(func_instance)
53
53
  is_target_method = func_instance.respond_to?(:target_method) || func_instance.is_a?(OpenAISwarm::FunctionDescriptor)
54
54
  func = is_target_method ? func_instance.target_method : func_instance
55
+ custom_parameters = is_target_method ? func_instance.parameters : nil
55
56
 
56
57
  function_name = func.name
57
58
  function_parameters = func.parameters
@@ -82,16 +83,18 @@ module OpenAISwarm
82
83
 
83
84
  description = func_instance.respond_to?(:description) ? func_instance&.description : nil
84
85
 
86
+ json_parameters = {
87
+ type: "object",
88
+ properties: parameters,
89
+ required: required
90
+ }
91
+
85
92
  {
86
93
  type: "function",
87
94
  function: {
88
95
  name: function_name,
89
96
  description: description || '',
90
- parameters: {
91
- type: "object",
92
- properties: parameters,
93
- required: required
94
- }
97
+ parameters: custom_parameters || json_parameters
95
98
  }
96
99
  }
97
100
  end
@@ -1,3 +1,3 @@
1
1
  module OpenAISwarm
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.6"
3
3
  end
@@ -8,7 +8,13 @@ require 'ruby-openai-swarm/function_descriptor'
8
8
  require 'ruby-openai-swarm/repl'
9
9
 
10
10
  module OpenAISwarm
11
- class Error < StandardError; end
11
+ class Error < StandardError;
12
+ attr_reader :details
13
+ def initialize(message, details = {})
14
+ @details = details
15
+ super(message)
16
+ end
17
+ end
12
18
 
13
19
  class << self
14
20
  def new(client = nil)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-openai-swarm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grayson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-27 00:00:00.000000000 Z
11
+ date: 2024-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-openai