lib/bristow/agent.rb in bristow-0.1.0 vs lib/bristow/agent.rb in bristow-0.2.0
- old
+ new
@@ -23,40 +23,16 @@
function.call(**arguments.transform_keys(&:to_sym))
end
def functions_for_openai
functions.map do |function|
- {
- name: function.name,
- description: function.description,
- parameters: {
- type: "object",
- properties: function.parameters.transform_values { |type| parameter_type_for(type) },
- required: function.parameters.keys.map(&:to_s)
- }
- }
+ function.to_openai_schema
end
end
def chat(messages, &block)
# Convert string message to proper format
messages = [{ role: "user", content: messages }] if messages.is_a?(String)
-
- # Convert array to array of hashes
- messages = if messages.is_a?(Array)
- messages.map do |msg|
- case msg
- when String
- { role: "user", content: msg }
- when Hash
- msg.transform_keys(&:to_sym)
- else
- raise ArgumentError, "Invalid message format: #{msg.inspect}"
- end
- end
- else
- messages
- end
messages = messages.dup
messages.unshift(system_message_hash) if system_message
@chat_history = messages.dup