chatgpt2023 0.3.0 → 0.4.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: 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