generate_image 1.1.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0cf6f92bb8a3dc9f268736bc22cae4cfec8cd0af5a4e193e383feb156a1d2ac
4
- data.tar.gz: 78735582f957597a69428939cc39f9a857583443c6f903927b4b449a3e7427b5
3
+ metadata.gz: f8b5a6646b862d0c9a5146b85f1db0e698f26d26c68452d6c72cb02860a2f944
4
+ data.tar.gz: ffd5491fd39c2f99434387f152b0a3540976055c5ada23dfee387cbb1353c3a0
5
5
  SHA512:
6
- metadata.gz: 25a102011cffbda0cec595234e51bccfc9593022362ae0d9d1cd44f0744ac1aed1c0d591921abe8270f7e655899e289fc2c7dae2cb0c03a548db35223fcc9ec2
7
- data.tar.gz: 2bab3bbcd46182d4f2487a6a13f7fe5d74537b512b036ab958ac1d648a2190219c35129f1bc3df005ed9e56506bf345083c3f7925a6781116174a9a1d3977ae1
6
+ metadata.gz: eecd22dc2fbf78e6ff4d370597f76364286ae963a4100312eccce67ec744e719a155c4b362ce428f9f2b4f612fdbd5d27df5e5f6e69f563ecfacd23f6e96e7a4
7
+ data.tar.gz: f80686589c0f26f986fa22bc8eb69bcd3bc38090989db26783ccbc2dc2d89de689d4dfa214a765d659e79c899f6aad9ba9efd29d225fc83d5cd86243a232e625
@@ -1,3 +1,3 @@
1
1
  module GenerateImage
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -1,56 +1,34 @@
1
1
  require 'net/http'
2
+ require 'json'
2
3
 
3
4
  module GenerateImage
4
- class RequestFailed < StandardError
5
- def initialize(message = "Request failed")
6
- super(message)
7
- end
8
- end
9
-
10
- class MissingApiKey < RequestFailed
11
- def initialize(message = "API key not set")
12
- super(message)
13
- end
14
- end
5
+ class RequestFailed < StandardError; end
15
6
 
16
- class << self
7
+ class Client
17
8
  API_ENDPOINT = 'https://api.openai.com/v1/images/generations'
18
- API_KEY = ENV['DALL_E_API_KEY']
19
- DEFAULT_OPTIONS = {
20
- model: 'image-alpha-001',
21
- num_images: 1,
22
- size: '1024x1024',
23
- response_format: 'url',
24
- style: nil,
25
- scale: 1,
26
- seed: nil,
27
- quality: 100,
28
- text_model: 'text-davinci-002',
29
- text_prompt: nil,
30
- text_length: nil
31
- }
9
+ IMAGE_MODEL_NAME = 'image-alpha-001'
10
+ TEXT_MODEL_NAME = 'text-davinci-002'
32
11
 
33
- def generate_image(text, options = {})
34
- options = DEFAULT_OPTIONS.merge(options)
35
- raise MissingApiKey if API_KEY.nil?
12
+ attr_accessor :api_key
13
+
14
+ def initialize(api_key = nil)
15
+ @api_key = api_key || ENV['DALL_E_API_KEY']
16
+ raise StandardError, "API Key not set" unless @api_key
17
+ end
36
18
 
19
+ def generate_image(text, options = {})
20
+ unless API_KEY
21
+ raise StandardError, "API Key not set"
22
+ end
37
23
  uri = URI(API_ENDPOINT)
38
24
  request = Net::HTTP::Post.new(uri)
39
25
  request['Content-Type'] = 'application/json'
40
26
  request['Authorization'] = "Bearer #{API_KEY}"
41
27
  request.body = {
42
- model: options[:model],
43
28
  prompt: text,
44
- num_images: options[:num_images],
45
- size: options[:size],
46
- response_format: options[:response_format],
47
- style: options[:style],
48
- scale: options[:scale],
49
- seed: options[:seed],
50
- quality: options[:quality],
51
- text_model: options[:text_model],
52
- text_prompt: options[:text_prompt],
53
- text_length: options[:text_length]
29
+ n: options[:num_images] || 1,
30
+ size: options[:size] || '512x512',
31
+ response_format: options[:response_format] || 'url',
54
32
  }.to_json
55
33
 
56
34
  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
@@ -60,13 +38,13 @@ module GenerateImage
60
38
  if response.code == '200'
61
39
  if options[:response_format] == 'base64'
62
40
  image_base64 = JSON.parse(response.body)['data'][0]['base64']
63
- { image_base64: image_base64 }
41
+ return { image_base64: image_base64 }
64
42
  else
65
43
  image_url = JSON.parse(response.body)['data'][0]['url']
66
- { image_url: image_url }
44
+ return { image_url: image_url }
67
45
  end
68
46
  else
69
- raise RequestFailed.new("Failed to generate image. Response code: #{response.code}. Response body: #{response.body}")
47
+ raise RequestFailed, "Failed to generate image. Response code: #{response.code}. Response body: #{response.body}"
70
48
  end
71
49
  end
72
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generate_image
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - AMQOR Merouane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-10 00:00:00.000000000 Z
11
+ date: 2023-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http