generate_image 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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