Module: OpenAi
- Defined in:
- lib/open_ai/open_ai.rb
Class Method Summary collapse
- .client ⇒ Object
- .configure_client ⇒ Object
- .create_client ⇒ Object
- .create_file(path, request, choice = 0) ⇒ Object
- .edit(input, request, model = 'text-davinci-edit-001') ⇒ Object
- .edit_file(path, request, choice = 0) ⇒ Object
- .input(request, model = 'gpt-3.5-turbo', temperature = 0.7) ⇒ Object
- .output(request, choice = 0) ⇒ 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(path, request, choice = 0) ⇒ Object
31 32 33 |
# File 'lib/open_ai/open_ai.rb', line 31 def create_file(path, request, choice = 0) File.write(path, output(request, choice)) end |
.edit(input, request, model = 'text-davinci-edit-001') ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/open_ai/open_ai.rb', line 45 def edit(input, request, model = 'text-davinci-edit-001') client.edits( parameters: { model: model, input: input, instruction: request } ) end |
.edit_file(path, request, choice = 0) ⇒ Object
39 40 41 42 43 |
# File 'lib/open_ai/open_ai.rb', line 39 def edit_file(path, request, choice = 0) content = File.read(path) response = edit(content, 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(request, choice = 0) ⇒ Object
35 36 37 |
# File 'lib/open_ai/open_ai.rb', line 35 def output(request, choice = 0) extract_text(input(request), 'choices', choice, 'message', 'content') end |