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