Class: ActiveAgent::GenerationProvider::OpenAIProvider

Inherits:
Base
  • Object
show all
Defined in:
lib/active_agent/generation_provider/open_ai_provider.rb

Instance Attribute Summary

Attributes inherited from Base

#client, #config, #prompt

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ OpenAIProvider

Returns a new instance of OpenAIProvider.



10
11
12
13
14
15
# File 'lib/active_agent/generation_provider/open_ai_provider.rb', line 10

def initialize(config)
  super
  @api_key = config["api_key"]
  @model_name = config["model"] || "gpt-4o-mini"
  @client = OpenAI::Client.new(api_key: @api_key)
end

Instance Method Details

#generate(prompt) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/active_agent/generation_provider/open_ai_provider.rb', line 17

def generate(prompt)
  @prompt = prompt
  parameters = prompt_parameters.merge(model: @model_name)

  # parameters[:instructions] = prompt.instructions.content if prompt.instructions.present?

  parameters[:stream] = provider_stream if prompt.options[:stream] || config["stream"]

  response = @client.chat(parameters: parameters)
  handle_response(response)
rescue => e
  raise GenerationProviderError, e.message
end