ox-ai-workers 1.1.4.2 → 1.1.5

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: 1d0694e0a6bed4958f629d8faa968fa8246f8ed3be490af1471b135d07e362c1
4
- data.tar.gz: b0e2648f476ca674bb53c7fa5f37c0c8200fb482b7a43f558601faa6abc7523a
3
+ metadata.gz: f5784dfd8d79874e6db22d56d3e311777e1bddc4b68686881b7d41d6a0b25fed
4
+ data.tar.gz: 6ef196f9d45a183fa3bec41d5782afbf0bb60158df14847a2e3682012143a3da
5
5
  SHA512:
6
- metadata.gz: c637d9bab58ff1384a1e658423e5abdd631c21a5b15f57523415e98adaf196870a8285b1fed173a8f7248349b33d471f0941c9ab5d877d3a8ce6c9d72c17bd0a
7
- data.tar.gz: d1f3279c0dcc2db5a6b696d17777d248b934663d8776a87eeab93ac7bbe4d8890a174f876dae443bfd9f047b7a01f7e50d694ef0cbc2b110aa08dbe1d703c7a9
6
+ metadata.gz: 878ddf667e5e7198e0b007ad3cb7b41f268929f3ea678a6be0d20667ca7ecaa3fbad190c99a8e01bf9d4152bf7ca9af1f9de1d7d3d92cdf324d26974e1472d01
7
+ data.tar.gz: 2f23c2a05a207bc0a258e16c67724af7c9093aac3aba0bd8d72402a1d7d6887a383bee08965fac45ce1a8423810758a35a6063254b827e6a96530a00147e0589
@@ -178,7 +178,7 @@ module OxAiWorkers
178
178
  def next_iteration
179
179
  # Check call_stack before continuing iteration
180
180
  if should_finish_iteration?
181
- OxAiWorkers.logger.info "Iterator::Call stack is empty or contains only finish_it. Finishing iteration."
181
+ OxAiWorkers.logger.info 'Iterator::Call stack is empty or contains only finish_it. Finishing iteration.'
182
182
  finish_it
183
183
  return
184
184
  end
@@ -196,9 +196,9 @@ module OxAiWorkers
196
196
  def should_finish_iteration?
197
197
  return false if @worker.call_stack.nil?
198
198
  return false unless @worker.respond_to?(:call_stack) && @worker.call_stack.present?
199
-
199
+
200
200
  finish_it_function = OxAiWorkers::Iterator.full_function_name(:finish_it)
201
-
201
+
202
202
  # Check if the call queue is empty or contains only finish_it
203
203
  @worker.call_stack.empty? || @worker.call_stack.all? { |call| call == finish_it_function }
204
204
  end
@@ -55,11 +55,7 @@ module OxAiWorkers
55
55
  filtered_functions = []
56
56
  filtered_functions << @last_call if @stop_double_calls.include?(@last_call)
57
57
 
58
- tool_choice = if @call_stack&.any?
59
- func1 = @call_stack.first
60
- @call_stack = @call_stack.drop(1)
61
- func1
62
- end
58
+ tool_choice = (@call_stack.first if @call_stack&.any?)
63
59
 
64
60
  @model.build_parameters(
65
61
  messages: @messages,
@@ -87,6 +83,11 @@ module OxAiWorkers
87
83
  @tool_calls += tool_calls
88
84
  end
89
85
  @last_call = @tool_calls.last[:name] if @tool_calls.any?
86
+
87
+ # Remove the first element from call_stack only after successful tool call
88
+ if @tool_calls.any? && @call_stack&.any?
89
+ @call_stack = @call_stack.drop(1)
90
+ end
90
91
  end
91
92
  end
92
93
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OxAiWorkers
4
- VERSION = '1.1.4.2'
4
+ VERSION = '1.1.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ox-ai-workers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4.2
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Smolev