Class: Papago::OpenAIService

Inherits:
Object
  • Object
show all
Defined in:
lib/papago/services/openai_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, config:) ⇒ OpenAIService

Returns a new instance of OpenAIService.



7
8
9
10
11
12
13
# File 'lib/papago/services/openai_service.rb', line 7

def initialize(api_key: nil, config:)
  @endpoint = config.fetch('openai.endpoint')
  @token = api_key || ENV['OPENAI_FANYI_API_KEY']

  @config = config
  @name = :openai
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/papago/services/openai_service.rb', line 5

def name
  @name
end

Instance Method Details

#call(text:, user: nil) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/papago/services/openai_service.rb', line 15

def call(text:, user: nil)
  user ||= generate_user_id
  require 'http' unless defined?(HTTP)

  response = HTTP
    .auth("Token #{@token}")
    .post(@endpoint, json: { prompt: text, user: user })

  JSON.parse(response.body)
end