chatgpt2023 0.3.0 → 0.4.0

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: 9e1847e43e89e75aec42261b773b2f46909463c0a05be57bb532ac2682421088
4
- data.tar.gz: 751d498aeaaa3eb3b68d977ecbb415385d606282584afa9612fdaf03349f7e59
3
+ metadata.gz: 9b89dececa8f5b5da00c97e7e745168c9a0526481f61138a03d5d2b7ff7b4576
4
+ data.tar.gz: b8d72dc15a1a051493786a53d22ed3a0bf135234bddf5d7d72c1db77a264ed6c
5
5
  SHA512:
6
- metadata.gz: 9c3f02bfa4ba351dbfde5d60bc0d74cb8970c46a11d5632ab79b221445549e075cc4abcb03b8a479d7912c919e4a8257239d4f8f117144ea0eede97f7a26df80
7
- data.tar.gz: 5cbd01a39b78cf3b927ce5a9729c6aabbcf4ff98c5e4e02b90acad8a414102e3c5910887395837bcc76f678ebf5fbd9db094ae3003d80f3f3bd1b887930214d0
6
+ metadata.gz: 31f3e1e57bbd60a724dff54a8317bd8501d939f797d5dd1bc673b9814f581f313d475d2e43900757057e64e5ab2d6e8106cdf055719c16ae935895f9283a2d81
7
+ data.tar.gz: 96e1288e2a79d823d18aaeeb6716f7239c26bc956d1a807530cf64a78ead4a162055103256ab7f6352ef56218198b4de01f9e7e6cf2bc83ce3236729d7861862
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/chatgpt2023.rb CHANGED
@@ -190,11 +190,25 @@ class ChatGpt2023
190
190
  use_ssl: uri.scheme == "https",
191
191
  }
192
192
 
193
- response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
194
- http.request(request)
195
- end
196
-
197
- h = JSON.parse(response.body, symbolize_names: true)
193
+ attempts = 0
194
+
195
+ begin
196
+
197
+ attempts += 1
198
+
199
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
200
+ http.request(request)
201
+ end
202
+
203
+ h = JSON.parse(response.body, symbolize_names: true)
204
+
205
+ if h[:error] then
206
+ puts 'warning:' + h[:error][:message]
207
+ sleep 5
208
+ end
209
+
210
+ end while h.has_key?(:error) and attempts <= 5
211
+
198
212
  raise ChatGpt2023Error, h[:error][:message].inspect if h.has_key? :error
199
213
 
200
214
  return h
@@ -204,6 +218,8 @@ end
204
218
 
205
219
  class CGRecorder < ChatGpt2023
206
220
 
221
+ attr_reader :index
222
+
207
223
  def initialize(apikey: nil, indexfile: 'cgindex.xml',
208
224
  logfile: 'chatgpt.xml', debug: false)
209
225
 
@@ -212,11 +228,12 @@ class CGRecorder < ChatGpt2023
212
228
  autosave: true, order: 'descending', debug: false
213
229
  @index = Dynarex.new(indexfile, schema: 'entries[title]/entry(prompt, ' \
214
230
  + 'tags)', order: 'descending', autosave: true)
215
- @index.title = 'ChatGPT prompt log'
231
+ title = 'ChatGPT prompt log'
232
+ @index.title = title
216
233
 
217
234
  end
218
235
 
219
- def code_completion(s, tags=nil, temperature: 1, max_tokens: 32)
236
+ def code_completion(s, tags=nil, temperature: 1, max_tokens: 2000)
220
237
 
221
238
  r = code_completions(s, temperature: temperature, max_tokens: max_tokens)\
222
239
  .first[:text].strip
@@ -226,7 +243,7 @@ class CGRecorder < ChatGpt2023
226
243
 
227
244
  end
228
245
 
229
- def completion(s, tags=nil, temperature: 1, max_tokens: 32)
246
+ def completion(s, tags=nil, temperature: 1, max_tokens: 1000)
230
247
 
231
248
  r = completions(s, temperature: temperature, max_tokens: max_tokens)\
232
249
  .first[:text].strip
@@ -248,3 +265,55 @@ class CGRecorder < ChatGpt2023
248
265
 
249
266
  end
250
267
  end
268
+
269
+ class ChatAway
270
+
271
+ # statement below used for debugging
272
+ #attr_reader :dx, :prompts
273
+
274
+ def initialize(questions, apikey: nil, filepath: '/tmp/chatgpt', debug: false)
275
+
276
+ @debug = debug
277
+
278
+ FileUtils.mkdir_p filepath
279
+ idxfile = File.join(filepath, 'index.xml')
280
+ cgfile = File.join(filepath, 'chatgpt.xml')
281
+
282
+ @dx = questions.is_a?(Dynarex) ? questions : Dynarex.new(questions)
283
+ @chat = CGRecorder.new(apikey: apikey, indexfile: idxfile, logfile: cgfile)
284
+ @prompts = @chat.index.all.map(&:prompt)
285
+
286
+ end
287
+
288
+ def start()
289
+
290
+ @dx.all.each do |rx|
291
+
292
+ if @prompts.include?(rx.prompt) and rx.redo != 'true'
293
+ next
294
+ end
295
+
296
+ type = rx.type == 'code' ? :code_completion : :completion
297
+
298
+ prompt = rx.prompt
299
+
300
+ puts 'prompt: ' + prompt
301
+
302
+ attempts = 0
303
+
304
+ begin
305
+ r = @chat.method(type).call prompt
306
+ rescue
307
+ puts 'Something not working! ' + ($!).inspect
308
+ sleep 2
309
+ attempts += 1
310
+ retry if attempts < 4
311
+ end
312
+
313
+ sleep 2
314
+
315
+ end
316
+
317
+ end
318
+
319
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chatgpt2023
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -36,7 +36,7 @@ cert_chain:
36
36
  6FQD1/GISew7VvxUJdptXeuVNIsdNKxvL3RpfLCuFsi1WXyJ4k3odRMTmS0kAfTy
37
37
  J4sZZW9RNfabTMQQY7DIs3tUAn6i+O0r9lo=
38
38
  -----END CERTIFICATE-----
39
- date: 2023-02-13 00:00:00.000000000 Z
39
+ date: 2023-02-14 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: down
metadata.gz.sig CHANGED
Binary file