class L::OpenAI
def chat(user_message, system_message = nil)
def chat(user_message, system_message = nil) schema = schema(settings) response = client.chat( parameters: { model: settings[:model], response_format: schema, messages: [ system_message ? { role: :system, content: system_message } : nil, { role: :user, content: user_message } ].compact }.compact ).dig('choices', 0, 'message', 'content') content = schema ? ::Hashie::Mash.new(JSON.parse(response)) : response array?(schema) ? content.items : content end