Module: OpenAi
- Defined in:
- lib/open_ai/open_ai.rb
Class Method Summary collapse
- .client ⇒ Object
- .configure_client ⇒ Object
- .create_client ⇒ Object
- .create_file(options) ⇒ Object
- .edit(options) ⇒ Object
- .edit_file(options) ⇒ Object
- .input(request, model = 'gpt-3.5-turbo', temperature = 0.7) ⇒ Object
- .output(options) ⇒ Object
Class Method Details
.client ⇒ Object
6 7 8 |
# File 'lib/open_ai/open_ai.rb', line 6 def client @client ||= create_client end |
.configure_client ⇒ Object
15 16 17 18 19 20 |
# File 'lib/open_ai/open_ai.rb', line 15 def configure_client OpenAI.configure do |config| config.access_token = ENV.fetch('OPENAI_ACCESS_TOKEN') config.organization_id = ENV.fetch('OPENAI_ORGANIZATION_ID', nil) end end |
.create_client ⇒ Object
10 11 12 13 |
# File 'lib/open_ai/open_ai.rb', line 10 def create_client configure_client OpenAI::Client.new end |
.create_file(options) ⇒ Object
31 32 33 34 |
# File 'lib/open_ai/open_ai.rb', line 31 def create_file() path, request, choice = .values_at(:path, :request, :choice) File.write(path, output(request: request, choice: choice)) end |
.edit(options) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/open_ai/open_ai.rb', line 49 def edit() content, request, model = .values_at(:content, :request, :model) model ||= 'text-davinci-edit-001' client.edits( parameters: { model: model, input: content, instruction: request } ) end |
.edit_file(options) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/open_ai/open_ai.rb', line 42 def edit_file() path, request, choice = .values_at(:path, :request, :choice) content = File.read(path) response = edit(content: content, request: request) File.write(path, extract_text(response, 'choices', choice, 'text')) end |
.input(request, model = 'gpt-3.5-turbo', temperature = 0.7) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/open_ai/open_ai.rb', line 22 def input(request, model = 'gpt-3.5-turbo', temperature = 0.7) client.chat( parameters: { model: model, messages: [{ role: 'user', content: request }], temperature: temperature }) end |
.output(options) ⇒ Object
36 37 38 39 40 |
# File 'lib/open_ai/open_ai.rb', line 36 def output() request, choice = .values_at(:request, :choice) choice ||= 0 extract_text(input(request), 'choices', choice, 'message', 'content') end |