chatgpt2023 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8f614928641b93d4fbc86a6df977e4bc52c42e66a46958cd88b0c086ef0432fa
4
+ data.tar.gz: 433beb2a5d8bab7ffe05fd01d615b3c32e0691aac2bebb8c121940f6290fbaff
5
+ SHA512:
6
+ metadata.gz: 8f21a74de8195a255865f8f60be43291c13170196dbb1c4fb4f6337118da47c3decc4aab4352f74de2ff16ead582b8565703f127c034f6257602e5ad786a7d52
7
+ data.tar.gz: 64ea34173dceb5d96f1dc98b2ba22d729c1376839363ebf8b88a957b436780c12c353ad1877c7a26ba6a23735109ffc251ab8079a63b5c37d68213cd92c5d112
checksums.yaml.gz.sig ADDED
Binary file
@@ -0,0 +1,82 @@
1
+ #!usr/bin/env ruby
2
+
3
+ # file: chatgpt2023.rb
4
+
5
+ require 'net/http'
6
+ require 'uri'
7
+ require 'json'
8
+
9
+
10
+ # description: 1st experiment at playing with the ChatGPT API.
11
+
12
+ # 1. In order to use this gem you will need to sign up for a
13
+ # ChatGPT account at https://openai.com/
14
+
15
+ # 2. To retrieve your API key, log into you account, click on
16
+ # your profile and select *view API keys*
17
+
18
+ # 3. It's recommened you test the API using the Curl example as shown below:
19
+ #
20
+ # curl https://api.openai.com/v1/completions \
21
+ # -H "Content-Type: application/json" \
22
+ # -H "Authorization: Bearer YOUR_API_KEY" \
23
+ # -d '{"model": "text-davinci-003", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 7}'
24
+
25
+ # ChatGpt documentation: https://beta.openai.com/docs/introduction/overview
26
+
27
+ # Usage:
28
+ # require 'chatgpt2023'
29
+ #
30
+ # chat = ChatGpt2023.new(apikey: 'YOUR-API-KEY')
31
+ # chat.completion 'Say this is a test'
32
+ # #=> This is indeed a test
33
+
34
+ class ChatGpt2023
35
+
36
+ def initialize(apikey: nil, debug: false)
37
+
38
+ @apiurl = "https://api.openai.com/v1/completions"
39
+ raise 'You must supply an API key!' unless apikey
40
+ @apikey, @debug = apikey, debug
41
+
42
+ end
43
+
44
+ def completions(s)
45
+ r = self.submit(s)
46
+ r[:choices]
47
+ end
48
+
49
+ def completion(s)
50
+ self.completions(s).first[:text].strip
51
+ end
52
+
53
+ alias complete completion
54
+
55
+ def submit(promptx='Say this is a test', prompt: promptx, type: :completions)
56
+
57
+ uri = URI.parse(@apiurl)
58
+ request = Net::HTTP::Post.new(uri)
59
+ request.content_type = "application/json"
60
+ request["Authorization"] = 'Bearer ' + @apikey
61
+
62
+ model = {completions: 'text-davinci-003'}
63
+
64
+ request.body = JSON.dump({
65
+ "model" => model[type],
66
+ "prompt" => prompt,
67
+ "temperature" => 0,
68
+ "max_tokens" => 7
69
+ })
70
+
71
+ req_options = {
72
+ use_ssl: uri.scheme == "https",
73
+ }
74
+
75
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
76
+ http.request(request)
77
+ end
78
+
79
+ JSON.parse(response.body, symbolize_names: true)
80
+ end
81
+
82
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chatgpt2023
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEljCCAv6gAwIBAgIBATANBgkqhkiG9w0BAQsFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTIzMDEyNTEyMTA1NloXDTI0MDEyNTEyMTA1NlowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC
18
+ ggGBAL0RtK7Jds6bX/0RF/7BYaLP1yem2UUXne8F25gChKjXYWEK70v3Sp/hfEHE
19
+ O/S51/OTEgRpfIdhbPZ/F7IQbMi9F9WN+/hvQrbu2GahAO0tDaDWy6s89sHq9uBB
20
+ IRVgm1wHx22nebAR7JVRuXL45emOtPRVt4rEns61rABNiCPp749k+f9I7dpqi0Tm
21
+ jieF1KIcmbL+doaY2yYWtyhkbDAME9EO6Iji9bA+w6HDRPLxAwtAHelY43gTnhYZ
22
+ dn10h6B5MLo4eb2PUsW0XTVtIFkqJCYVML0SNBHFvCMleRfwjdOFurkueDqBRJjv
23
+ C6beqQ24rzrwHP2ax7xawVxWKHZIss/gw3OVmw8b5RvJX5hgUaby0hVfalB+rxJs
24
+ Ppp72D8XW4R5V/oM6i3rscWOgA5E2dH29ALpWx+/ESWHAMXA8CnP3dWXqCxZF5cB
25
+ VFe6FkRlCjE0c9rsVsXfh3LLXQNz3jJsPSp7p+fFLyzUIjbUcEKB4RFYNIvDnD6x
26
+ wcyj8QIDAQABo4GKMIGHMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
27
+ BBT37bsxoPILvGs7xzj83Cq7SzNyTDAmBgNVHREEHzAdgRtnZW1tYXN0ZXJAamFt
28
+ ZXNyb2JlcnRzb24uZXUwJgYDVR0SBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
29
+ c29uLmV1MA0GCSqGSIb3DQEBCwUAA4IBgQCzFUdFehm7hycUiWpXx8o2UmjiRc1F
30
+ +Ps7NfmMlDVxhoHuIjeHWukTx6Jt9WVXSO4tXMem/po9V+IR2vStmOP3aUhJl65S
31
+ aM6z50SmB0xMduPH7KHOrha+amX5rXdV6yfXAq9b/rOeVdJCvFN24uCm23MrjKIy
32
+ HKtK89iLijHPv2IQpOkhMkoV5ygQzI6LkJVuvnH77ZWfnnU/yz0QDBODkUrJF9Kr
33
+ dZqLfVFaHqQNOgUM0/Y8aeuehh/qKCwSD6a4FUZtRTLIk/dhi8PRoZSS2mXbf2Aa
34
+ Hnj5sh+tI8AgT4zm6q/i16YvRG6bdsiwrcPiq4Du79mcYDa7UVcKo3kjZYmgs0dV
35
+ 7imDdy42WkZF5K+ObsgpcDs1dSxyeWJZFoIIHNL+enL3E+RdPQDdyloeEpu1htXy
36
+ 6FQD1/GISew7VvxUJdptXeuVNIsdNKxvL3RpfLCuFsi1WXyJ4k3odRMTmS0kAfTy
37
+ J4sZZW9RNfabTMQQY7DIs3tUAn6i+O0r9lo=
38
+ -----END CERTIFICATE-----
39
+ date: 2023-01-25 00:00:00.000000000 Z
40
+ dependencies: []
41
+ description:
42
+ email: digital.robertson@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/chatgpt2023.rb
48
+ homepage: https://github.com/jrobertson/chatgpt2023
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubygems_version: 3.4.4
68
+ signing_key:
69
+ specification_version: 4
70
+ summary: 1st experiment at playing with the ChatGPT API
71
+ test_files: []
metadata.gz.sig ADDED
Binary file