generate_image 1.0.0 → 1.1.0

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: 2de351fd26b27b162f1cadf99e8bebec19eab834a7326add766aa99494ef72d1
4
- data.tar.gz: 7fd43c333077f86d8fef116b80b6868ea7da18b1d22ba82b7c43c77a211ea14a
3
+ metadata.gz: e0cf6f92bb8a3dc9f268736bc22cae4cfec8cd0af5a4e193e383feb156a1d2ac
4
+ data.tar.gz: 78735582f957597a69428939cc39f9a857583443c6f903927b4b449a3e7427b5
5
5
  SHA512:
6
- metadata.gz: 20050a7726574a61d88718d29b0f1fb3dde18968a07cd4191f0f4bfaef9bc41b294378da6464e8456008d1804a0960061457dac6baf1e83f32e4d2be3dcf0fb7
7
- data.tar.gz: 4ccd64ccd20b3393f471a0df141427e302a0b59d50e051739624ba7df16c81485845dc07d9cb8c8ea67a90a9890a830ee4e5961e35ba5848874bd2357af9fedf
6
+ metadata.gz: 25a102011cffbda0cec595234e51bccfc9593022362ae0d9d1cd44f0744ac1aed1c0d591921abe8270f7e655899e289fc2c7dae2cb0c03a548db35223fcc9ec2
7
+ data.tar.gz: 2bab3bbcd46182d4f2487a6a13f7fe5d74537b512b036ab958ac1d648a2190219c35129f1bc3df005ed9e56506bf345083c3f7925a6781116174a9a1d3977ae1
@@ -1,3 +1,3 @@
1
1
  module GenerateImage
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,36 +1,56 @@
1
1
  require 'net/http'
2
- require 'json'
3
2
 
4
3
  module GenerateImage
5
- class RequestFailed < StandardError; end
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
6
15
 
7
16
  class << self
8
17
  API_ENDPOINT = 'https://api.openai.com/v1/images/generations'
9
- IMAGE_MODEL_NAME = 'image-alpha-001'
10
- TEXT_MODEL_NAME = 'text-davinci-002'
11
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
+ }
12
32
 
13
33
  def generate_image(text, options = {})
14
- unless API_KEY
15
- raise StandardError, "API Key not set"
16
- end
34
+ options = DEFAULT_OPTIONS.merge(options)
35
+ raise MissingApiKey if API_KEY.nil?
36
+
17
37
  uri = URI(API_ENDPOINT)
18
38
  request = Net::HTTP::Post.new(uri)
19
39
  request['Content-Type'] = 'application/json'
20
40
  request['Authorization'] = "Bearer #{API_KEY}"
21
41
  request.body = {
22
- model: options[:model] || IMAGE_MODEL_NAME,
42
+ model: options[:model],
23
43
  prompt: text,
24
- num_images: options[:num_images] || 1,
25
- size: options[:size] || '512x512',
26
- response_format: options[:response_format] || 'url',
27
- style: options[:style] || nil,
28
- scale: options[:scale] || 1,
29
- seed: options[:seed] || nil,
30
- quality: options[:quality] || 80,
31
- text_model: options[:text_model] || TEXT_MODEL_NAME,
32
- text_prompt: options[:text_prompt] || nil,
33
- text_length: options[:text_length] || nil
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]
34
54
  }.to_json
35
55
 
36
56
  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
@@ -40,13 +60,13 @@ module GenerateImage
40
60
  if response.code == '200'
41
61
  if options[:response_format] == 'base64'
42
62
  image_base64 = JSON.parse(response.body)['data'][0]['base64']
43
- return { image_base64: image_base64 }
63
+ { image_base64: image_base64 }
44
64
  else
45
65
  image_url = JSON.parse(response.body)['data'][0]['url']
46
- return { image_url: image_url }
66
+ { image_url: image_url }
47
67
  end
48
68
  else
49
- raise RequestFailed, "Failed to generate image. Response code: #{response.code}. Response body: #{response.body}"
69
+ raise RequestFailed.new("Failed to generate image. Response code: #{response.code}. Response body: #{response.body}")
50
70
  end
51
71
  end
52
72
  end
metadata CHANGED
@@ -1,77 +1,78 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generate_image
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
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-02-23 00:00:00.000000000 Z
11
+ date: 2023-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.3.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.3.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinatra
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 3.0.5
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 3.0.5
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: json
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 2.6.3
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 2.6.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: openai
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.3.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
69
- description: Unleash your imagination and create stunning images with the 'generate_image'
70
- gem. This Ruby gem provides a seamless interface for accessing the powerful DALL-E
71
- API and generates images based on the text you provide. Perfect for Ruby on Rails
72
- projects, but can also be used in other Ruby projects.
68
+ version: 0.3.0
69
+ description: The 'generate_image' gem provides a simple and easy-to-use interface
70
+ for generating images using the powerful DALL-E API from OpenAI. This Ruby gem can
71
+ be used in Ruby on Rails projects or any other Ruby projects to create stunning
72
+ images based on the text you provide. Unleash your imagination and generate images
73
+ for any use case, from social media posts to marketing materials and beyond.
73
74
  email:
74
- - marouane.amqor6@gmail.com
75
+ - marouane.amqor@gmail.com
75
76
  executables:
76
77
  - console
77
78
  - setup