From a632a03054a0dc6bfaf668a55dead4a42587c474 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 12:34:12 -0400 Subject: [PATCH 1/3] [SECURITY] Update cohere-ruby requirement from ~> 0.9.10 to ~> 1.0.1 (#998) Updates the requirements on [cohere-ruby](https://github.com/andreibondarev/cohere-ruby) to permit the latest version. - [Release notes](https://github.com/andreibondarev/cohere-ruby/releases) - [Changelog](https://github.com/patterns-ai-core/cohere-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/andreibondarev/cohere-ruby/compare/0.9.10...1.0.1) --- updated-dependencies: - dependency-name: cohere-ruby dependency-version: 1.0.1 dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- langchain.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langchain.gemspec b/langchain.gemspec index 99f0ef751..1d4f9ea97 100644 --- a/langchain.gemspec +++ b/langchain.gemspec @@ -47,7 +47,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "ruby-anthropic", "~> 0.4" spec.add_development_dependency "aws-sdk-bedrockruntime", "~> 1.1" spec.add_development_dependency "chroma-db", "~> 0.6.0" - spec.add_development_dependency "cohere-ruby", "~> 0.9.10" + spec.add_development_dependency "cohere-ruby", "~> 1.0.1" spec.add_development_dependency "docx", "~> 0.8.0" spec.add_development_dependency "elasticsearch", "~> 8.2.0" spec.add_development_dependency "eqn", "~> 1.6.5" From ed6e3fb7e6d3244bbf1c1270936d59036dab8ffd Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Thu, 12 Jun 2025 01:34:37 +0900 Subject: [PATCH 2/3] Use `public_send` instead of `send` (#996) Since tool invocation from assistant is expected to be limited to public methods, `public_send` is used instead of `send` to avoid unintended invocation of private method. Co-authored-by: Sergio Bayona --- lib/langchain/assistant.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/langchain/assistant.rb b/lib/langchain/assistant.rb index 57a451369..92ec49139 100644 --- a/lib/langchain/assistant.rb +++ b/lib/langchain/assistant.rb @@ -372,7 +372,7 @@ def run_tool(tool_call) # Call the callback if set tool_execution_callback.call(tool_call_id, tool_name, method_name, tool_arguments) if tool_execution_callback # rubocop:disable Style/SafeNavigation - output = tool_instance.send(method_name, **tool_arguments) + output = tool_instance.public_send(method_name, **tool_arguments) # Handle both ToolResponse and legacy return values if output.is_a?(ToolResponse) From a6a35218a4db19ec9b2bae5c149dda8b5a2aeea3 Mon Sep 17 00:00:00 2001 From: "Chu, Andy" Date: Tue, 8 Jul 2025 15:47:05 -0700 Subject: [PATCH 3/3] Fix OpenAI assistant tools call issue --- lib/langchain/assistant.rb | 2 +- lib/langchain/assistant/llm/adapters/openai.rb | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/langchain/assistant.rb b/lib/langchain/assistant.rb index 92ec49139..74772ac38 100644 --- a/lib/langchain/assistant.rb +++ b/lib/langchain/assistant.rb @@ -309,7 +309,7 @@ def handle_user_or_tool_message end def set_state_for(response:) - if response.tool_calls.any? + if response.tool_calls&.any? :in_progress elsif response.chat_completion :completed diff --git a/lib/langchain/assistant/llm/adapters/openai.rb b/lib/langchain/assistant/llm/adapters/openai.rb index 67b734bbb..8eac0ecfe 100644 --- a/lib/langchain/assistant/llm/adapters/openai.rb +++ b/lib/langchain/assistant/llm/adapters/openai.rb @@ -39,7 +39,8 @@ def build_chat_params( # @param tool_calls [Array] The tool calls # @param tool_call_id [String] The tool call ID # @return [Messages::OpenAIMessage] The OpenAI message - def build_message(role:, content: nil, image_url: nil, tool_calls: [], tool_call_id: nil) + def build_message(role:, content: nil, image_url: nil, tool_calls: nil, tool_call_id: nil) + tool_calls ||= [] Messages::OpenAIMessage.new(role: role, content: content, image_url: image_url, tool_calls: tool_calls, tool_call_id: tool_call_id) end