chatai 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -10
  3. data/bin/chatai +22 -8
  4. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 852dbec8f8117f5ee88a215ecd5af4b128d566000519ccc9f0e2855c6f386842
4
- data.tar.gz: d4ec144e1a98add31edaeb2a27912e49cc98fe4a4138aacbb183a47d542a1733
3
+ metadata.gz: 886519f7227a7da50c23385c6290853408687a1b1b0e8c434fc6c6f7f30f5a5d
4
+ data.tar.gz: 562eff776cfe614f2cec7662765c422096dc847ac172ebc80bf136b9a9e5ed8f
5
5
  SHA512:
6
- metadata.gz: b11c66dd7724dca8fa0dcdbf15db2532f799bd05533956e2aa6962d5becea75bda96c19b5134596ab0371cf08e3889aaf105578350313ff2f5cf8041f940c2bc
7
- data.tar.gz: '080b0a7ea97224298d4546f299a18bd68f24a27fb4d333d58e63ca5713ff6f0a707b5bdfd26f0d97ba6e4193a52a78f3a1b0df179da88ee75bf695b26bc9049e'
6
+ metadata.gz: 588ef4c8de8fdc4cc4e4dd7450bb60e66eb43f9b4b08b2b33176048a60cc1c7dbd911b5fda13e84af089d60c20207e82fd545056141ff4bfa90b138061a451ed
7
+ data.tar.gz: c87e7ab3220f244683f50382a479773726ad288570faf3211e4bf7b9aa68073e084bc743335b1f12cf2e9f3ba61304710445920b980acd6d96a1619c4bb7211d
data/README.md CHANGED
@@ -4,18 +4,14 @@ A simple CLI for ChatGPT written in Ruby
4
4
 
5
5
  ## Setup
6
6
 
7
- Run the following commands to setup the CLI:
7
+ Copy and edit the env file with your [API key](https://platform.openai.com/account/api-keys)
8
8
 
9
- $ bundle install
10
- $ cp .env.sample .env
9
+ $ cp .env.sample ~/.chatai.env
11
10
 
12
- Then edit the `.env` file with your [API key](https://platform.openai.com/account/api-keys)
11
+ Build and install the CLI
13
12
 
14
- You can also install the script to use it everywhere:
15
-
16
- $ sudo cp bin/chatai /usr/local/bin/chatai
17
- $ sudo chmod 755 /usr/local/bin/chatai
18
- $ cp .env ~/.chatai.env
13
+ $ gem build chatai.gemspec
14
+ $ gem install chatai-*.gem
19
15
 
20
16
  ## Usage
21
17
 
@@ -43,4 +39,4 @@ You can also install the script to use it everywhere:
43
39
 
44
40
  ## License
45
41
 
46
- ChatGPT CLI is released under MIT
42
+ Chatai is released under MIT
data/bin/chatai CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+
2
3
  require "dotenv"
3
4
  require "openai"
5
+ require "readline"
4
6
  require "word_wrap"
5
7
 
6
8
  Dotenv.load(".env", "~/.chatai.env")
@@ -15,23 +17,35 @@ end
15
17
  client = OpenAI::Client.new
16
18
 
17
19
  begin
18
- history = []
19
- while true
20
- print "\x1b[36m>\x1b[0m "
21
- history << gets.chomp
22
- res = client.chat(parameters: {
20
+ context = []
21
+ loop do
22
+ line = Readline::readline("\x1b[36m>\x1b[0m ")
23
+ break if line.nil? || line == "quit"
24
+
25
+ Readline::HISTORY << line
26
+ context << line
27
+
28
+ parameters = {
23
29
  model: ENV.fetch("OPENAI_MODEL", "gtp-3.5-turbo"),
24
- messages: [{ role: "user", content: history.join("\n\n") }],
30
+ messages: [{ role: "user", content: context.join("\n\n") }],
25
31
  temperature: 0.7,
26
- })
32
+ }
33
+
34
+ begin
35
+ res = client.chat(parameters: parameters)
36
+ rescue Net::ReadTimeout
37
+ redo
38
+ end
39
+
27
40
  if (err = res.dig("error", "message"))
28
41
  puts err
29
42
  exit 1
30
43
  end
44
+
31
45
  text = res.dig("choices", 0, "message", "content").strip
32
46
  puts WordWrap.ww(text, 80)
33
47
  puts
34
- history << text
48
+ context << text
35
49
  end
36
50
  rescue SignalException
37
51
  puts
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chatai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Ollivier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-17 00:00:00.000000000 Z
11
+ date: 2023-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -30,6 +30,26 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.8.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: rb-readline
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.5'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.5.5
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.5'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.5.5
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: ruby-openai
35
55
  requirement: !ruby/object:Gem::Requirement