jekyll-chatgpt-translate 0.0.25 → 0.0.27

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: 76c9c7e2f01f4350b38e1343d88918c9a89bfb5ace6bc84855bba6cd401cf027
4
- data.tar.gz: 35dbf1ac0f89d6a3a68de2a1f36ae451686b665a8ef4a3f9adc4054623d45dc9
3
+ metadata.gz: 416596f5103bd30f33ffd088c1da48fd422e9ed90be9a89de3874aa8fc95d26a
4
+ data.tar.gz: 0b091f92583d249630aace8b8e46246178469680ea35fe74b546fae1e97a2c3c
5
5
  SHA512:
6
- metadata.gz: db448c1104508d9084c1b28ea687fda646b72c6c03b78e72c4423106c28d9414120b323957f0c967a7932926870fac33a7a7dc713571c0179f58cd5cdfca0f00
7
- data.tar.gz: 96f431eb35b166ab4cc82575f8dbee0b80e845f5801d3d7436aede3d75becb196e3dd2aee36595742f0a664237bbe804d449e1f10348579b509111384beabb73
6
+ metadata.gz: be86868fafea658f8cdf68344923a9f1b137893678254e899709407fc7146293d43baa9e73e448d3dd23f0a9c57605e62aa20132ce03cb9a15182c4c59828a7a
7
+ data.tar.gz: 27eddf1b7a551d5c998b1cbcd781709ca9c02b0975d216f31ff431d2c79dbf2b86ad2ad0c96805cf1b5d810d3e6d6581c30269b1ddc6170e4146de23f2a89779
data/.rubocop.yml CHANGED
@@ -35,3 +35,5 @@ Layout/EndAlignment:
35
35
  Enabled: false
36
36
  Metrics/ClassLength:
37
37
  Max: 200
38
+ Style/ClassVars:
39
+ Enabled: false
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
29
29
  s.required_ruby_version = '>= 2.6'
30
30
  s.name = 'jekyll-chatgpt-translate'
31
- s.version = '0.0.25'
31
+ s.version = '0.0.27'
32
32
  s.license = 'MIT'
33
33
  s.summary = 'Translate Jekyll Pages Through ChatGPT'
34
34
  s.description = [
@@ -35,6 +35,9 @@ module GptTranslate; end
35
35
  # Copyright:: Copyright (c) 2023 Yegor Bugayenko
36
36
  # License:: MIT
37
37
  class GptTranslate::ChatGPT
38
+ # Is TRUE if we already shown to the user the available models.
39
+ @@models_printed = false
40
+
38
41
  # Ctor.
39
42
  # +key+ OpenAI API Key, which can't be nil, but can be empty string, which means dry mode (no calls to OpenAI)
40
43
  # +source+ The language to translate from
@@ -77,12 +80,17 @@ class GptTranslate::ChatGPT
77
80
  private
78
81
 
79
82
  def translate_par(par)
83
+ client = OpenAI::Client.new(access_token: @key)
84
+ if @@models_printed
85
+ Jekyll.logger.info("Available ChatGPT models: #{client.models.list['data'].map { |m| m['id'] }.join(', ')}")
86
+ @@models_printed = true
87
+ end
88
+ prompt = GptTranslate::Prompt.new(par, @source, @target).to_s
80
89
  start = Time.now
81
90
  answer = nil
82
91
  attempt = 0
83
92
  begin
84
- prompt = GptTranslate::Prompt.new(par, @source, @target).to_s
85
- response = OpenAI::Client.new(access_token: @key).chat(
93
+ response = client.chat(
86
94
  parameters: {
87
95
  model: @model,
88
96
  messages: [{ role: 'user', content: prompt }],
@@ -90,7 +98,10 @@ class GptTranslate::ChatGPT
90
98
  }
91
99
  )
92
100
  answer = response.dig('choices', 0, 'message', 'content')
93
- raise 'No content returned by ChatGPT' if answer.nil?
101
+ if answer.nil?
102
+ Jekyll.logger.error("No content returned by ChatGPT: #{response}")
103
+ raise 'No content returned by ChatGPT'
104
+ end
94
105
  Jekyll.logger.debug("ChatGPT prompt: #{prompt.inspect}, ChatGPT answer: #{answer.inspect}")
95
106
  rescue StandardError => e
96
107
  attempt += 1
@@ -56,10 +56,10 @@ class GptTranslate::Ping
56
56
  before = Net::HTTP.get_response(URI(uri))
57
57
  if before.is_a?(Net::HTTPSuccess)
58
58
  html = before.body
59
+ @site.static_files << DownloadedFile.new(@site, @path, html)
59
60
  if html.include?(marker)
60
61
  Jekyll.logger.info("No need to translate, the page exists at \
61
62
  #{uri.inspect} (#{html.split.count} words)")
62
- @site.static_files << DownloadedFile.new(@site, @path, html)
63
63
  return true
64
64
  end
65
65
  Jekyll.logger.info("Re-translation required for #{uri.inspect}")
@@ -23,5 +23,5 @@
23
23
  # SOFTWARE.
24
24
 
25
25
  module GptTranslate
26
- VERSION = '0.0.25'
26
+ VERSION = '0.0.27'
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-chatgpt-translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko