monadic-chat 0.4.1 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +33 -31
- data/README.md +4 -2
- data/lib/monadic_chat/open_ai.rb +11 -14
- data/lib/monadic_chat/version.rb +1 -1
- data/lib/monadic_chat.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b82fdd0aca3e154e238309f1e76468c6c7e48c45a2406386c11adf12397e279d
|
4
|
+
data.tar.gz: 3411bcfbfc03f740746d923b00d488cd89eb4667a536163e9542b30a268864d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c348023d61cd2899b2aa684cd26c999d85d67145cad4ef7d6dab98b07789cac0f9702eb6ec9601daf3cce59e4f9288a3c96bb7453caab3f878cd4d2fbde4f0f2
|
7
|
+
data.tar.gz: 85491c0aff6147b130998c73ce699f049784be9c14c26553119b2f19b98e3a1af0c4f8a0c846817b29c7f2a17de57130ed760431e3db3d6de089042f9cd8ca8b
|
data/CHANGELOG.md
CHANGED
@@ -51,3 +51,12 @@
|
|
51
51
|
|
52
52
|
- New models of January 2024 supported
|
53
53
|
- Default model changed to `gpt-4`
|
54
|
+
|
55
|
+
## [0.4.2] - 2024-02-09
|
56
|
+
|
57
|
+
- Issue of redundant token addition addressed
|
58
|
+
- Default model changed to `gpt-3.5-turbo-0125`
|
59
|
+
|
60
|
+
## [0.4.3] - 2024-5-13
|
61
|
+
|
62
|
+
- `gpt-4o` set as default model for both `normal` and `research` modes
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
monadic-chat (0.4.
|
4
|
+
monadic-chat (0.4.3)
|
5
5
|
blingfire
|
6
6
|
http
|
7
7
|
kramdown
|
@@ -20,51 +20,56 @@ PATH
|
|
20
20
|
GEM
|
21
21
|
remote: https://rubygems.org/
|
22
22
|
specs:
|
23
|
-
addressable (2.8.
|
23
|
+
addressable (2.8.6)
|
24
24
|
public_suffix (>= 2.0.2, < 6.0)
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
base64 (0.2.0)
|
26
|
+
bigdecimal (3.1.8)
|
27
|
+
blingfire (0.2.1)
|
28
|
+
childprocess (5.0.0)
|
29
|
+
diff-lcs (1.5.1)
|
30
|
+
domain_name (0.6.20240107)
|
29
31
|
ffi (1.16.3)
|
30
|
-
ffi-compiler (1.
|
31
|
-
ffi (>= 1.
|
32
|
+
ffi-compiler (1.3.2)
|
33
|
+
ffi (>= 1.15.5)
|
32
34
|
rake
|
33
|
-
http (5.
|
35
|
+
http (5.2.0)
|
34
36
|
addressable (~> 2.8)
|
37
|
+
base64 (~> 0.1)
|
35
38
|
http-cookie (~> 1.0)
|
36
39
|
http-form_data (~> 2.2)
|
37
|
-
llhttp-ffi (~> 0.
|
40
|
+
llhttp-ffi (~> 0.5.0)
|
38
41
|
http-cookie (1.0.5)
|
39
42
|
domain_name (~> 0.5)
|
40
43
|
http-form_data (2.3.0)
|
41
44
|
kramdown (2.4.0)
|
42
45
|
rexml
|
43
|
-
launchy (
|
46
|
+
launchy (3.0.1)
|
44
47
|
addressable (~> 2.8)
|
45
|
-
|
48
|
+
childprocess (~> 5.0)
|
49
|
+
llhttp-ffi (0.5.0)
|
46
50
|
ffi-compiler (~> 1.0)
|
47
51
|
rake (~> 13.0)
|
48
|
-
oj (3.16.
|
52
|
+
oj (3.16.3)
|
53
|
+
bigdecimal (>= 3.0)
|
49
54
|
pastel (0.8.0)
|
50
55
|
tty-color (~> 0.5)
|
51
|
-
public_suffix (5.0.
|
52
|
-
rake (13.
|
56
|
+
public_suffix (5.0.5)
|
57
|
+
rake (13.2.1)
|
53
58
|
rexml (3.2.6)
|
54
|
-
rouge (4.1
|
55
|
-
rspec (3.
|
56
|
-
rspec-core (~> 3.
|
57
|
-
rspec-expectations (~> 3.
|
58
|
-
rspec-mocks (~> 3.
|
59
|
-
rspec-core (3.
|
60
|
-
rspec-support (~> 3.
|
61
|
-
rspec-expectations (3.
|
59
|
+
rouge (4.2.1)
|
60
|
+
rspec (3.13.0)
|
61
|
+
rspec-core (~> 3.13.0)
|
62
|
+
rspec-expectations (~> 3.13.0)
|
63
|
+
rspec-mocks (~> 3.13.0)
|
64
|
+
rspec-core (3.13.0)
|
65
|
+
rspec-support (~> 3.13.0)
|
66
|
+
rspec-expectations (3.13.0)
|
62
67
|
diff-lcs (>= 1.2.0, < 2.0)
|
63
|
-
rspec-support (~> 3.
|
64
|
-
rspec-mocks (3.
|
68
|
+
rspec-support (~> 3.13.0)
|
69
|
+
rspec-mocks (3.13.1)
|
65
70
|
diff-lcs (>= 1.2.0, < 2.0)
|
66
|
-
rspec-support (~> 3.
|
67
|
-
rspec-support (3.
|
71
|
+
rspec-support (~> 3.13.0)
|
72
|
+
rspec-support (3.13.1)
|
68
73
|
strings (0.2.1)
|
69
74
|
strings-ansi (~> 0.2)
|
70
75
|
unicode-display_width (>= 1.5, < 3.0)
|
@@ -95,12 +100,9 @@ GEM
|
|
95
100
|
tty-cursor (~> 0.7)
|
96
101
|
tty-screen (~> 0.8)
|
97
102
|
wisper (~> 2.0)
|
98
|
-
tty-screen (0.8.
|
103
|
+
tty-screen (0.8.2)
|
99
104
|
tty-spinner (0.9.3)
|
100
105
|
tty-cursor (~> 0.7)
|
101
|
-
unf (0.1.4)
|
102
|
-
unf_ext
|
103
|
-
unf_ext (0.0.8.2)
|
104
106
|
unicode-display_width (2.5.0)
|
105
107
|
unicode_utils (1.4.0)
|
106
108
|
wisper (2.0.1)
|
data/README.md
CHANGED
@@ -27,6 +27,8 @@
|
|
27
27
|
|
28
28
|
**Change Log**
|
29
29
|
|
30
|
+
- [May 13, 2024] `gpt-4o` set as the default model for both `normal` and `research` modes
|
31
|
+
- [February 9, 2024] Minor update; default model changed to `gpt-3.5-turbo-0125`
|
30
32
|
- [November 10, 2023] Stability improvement; default model changed to `gpt-3.5-turbo`
|
31
33
|
- [October 07, 2023] Stability improvement; default model changed to `gpt-3.5-turbo-0613`
|
32
34
|
- [June 11, 2023] The repository renamed to `monadic-chat-cli`
|
@@ -304,13 +306,13 @@ Monadic Chat has two modes. The `normal` mode utilizes OpenAI's chat API to achi
|
|
304
306
|
|
305
307
|
### Normal Mode
|
306
308
|
|
307
|
-
The current default language model for `normal` mode is `gpt-
|
309
|
+
The current default language model for `normal` mode is `gpt-4o`.
|
308
310
|
|
309
311
|
In the default configuration, the dialogue messages are reduced after ten turns by deleting the oldest ones (but not the messages that the `system` role has given as instructions).
|
310
312
|
|
311
313
|
### Research Mode
|
312
314
|
|
313
|
-
The current default language model for `research` mode is `gpt-
|
315
|
+
The current default language model for `research` mode is `gpt-4o`.
|
314
316
|
|
315
317
|
In `research` mode, the conversation between the user and the large-scale language model is accomplished with a mechanism that tracks the conversation history in a monadic structure. In the default configuration, the dialogue messages are reduced after ten turns by deleting the oldest ones (but not the messages that the `system` role has given as instructions).
|
316
318
|
|
data/lib/monadic_chat/open_ai.rb
CHANGED
@@ -16,17 +16,20 @@ RETRY_WAIT_TIME_SEC = 1
|
|
16
16
|
module OpenAI
|
17
17
|
def self.default_model(research_mode: false)
|
18
18
|
if research_mode
|
19
|
-
"gpt-
|
20
|
-
else
|
21
|
-
"gpt-
|
19
|
+
"gpt-4o"
|
20
|
+
else # normal mode
|
21
|
+
"gpt-4o"
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
def self.model_to_method(model)
|
26
26
|
res = {
|
27
|
+
"gpt-3.5-turbo-0125" => "chat/completions",
|
27
28
|
"gpt-3.5-turbo-1106" => "chat/completions",
|
28
29
|
"gpt-3.5-turbo" => "chat/completions",
|
29
30
|
"gpt-3.5-turbo-16k" => "chat/completions",
|
31
|
+
"gpt-4o" => "chat/completions",
|
32
|
+
"gpt-4o-2024-05-13" => "chat/completions",
|
30
33
|
"gpt-4-0125-preview" => "chat/completions",
|
31
34
|
"gpt-4-turbo-preview" => "chat/completions",
|
32
35
|
"gpt-4-1106-preview" => "chat/completions",
|
@@ -72,16 +75,11 @@ module OpenAI
|
|
72
75
|
if query["stream"]
|
73
76
|
json = nil
|
74
77
|
buffer = ""
|
75
|
-
# break_flag = false
|
76
78
|
|
77
79
|
res.body.each do |chunk|
|
78
80
|
break if /\Rdata: [DONE]\R/ =~ chunk
|
79
81
|
|
80
|
-
# break if break_flag
|
81
|
-
|
82
82
|
buffer << chunk
|
83
|
-
# break_flag = true if /\Rdata: [DONE]\R/ =~ buffer
|
84
|
-
|
85
83
|
scanner = StringScanner.new(buffer)
|
86
84
|
pattern = /data: (\{.*?\})(?=\n|\z)/m
|
87
85
|
until scanner.eos?
|
@@ -92,16 +90,15 @@ module OpenAI
|
|
92
90
|
begin
|
93
91
|
res = JSON.parse(json_data)
|
94
92
|
choice = res.dig("choices", 0) || {}
|
93
|
+
|
95
94
|
fragment = choice.dig("delta", "content").to_s
|
95
|
+
next if !fragment || fragment == ""
|
96
96
|
|
97
97
|
block&.call fragment
|
98
98
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
json["choices"][0]["text"] ||= +""
|
103
|
-
json["choices"][0]["text"] << fragment
|
104
|
-
end
|
99
|
+
json ||= res
|
100
|
+
json["choices"][0]["text"] ||= +""
|
101
|
+
json["choices"][0]["text"] << fragment
|
105
102
|
|
106
103
|
if choice["finish_reason"] == "length" || choice["finish_reason"] == "stop"
|
107
104
|
finish = { "type" => "message", "content" => "DONE" }
|
data/lib/monadic_chat/version.rb
CHANGED
data/lib/monadic_chat.rb
CHANGED
@@ -27,9 +27,9 @@ Oj.mimic_JSON
|
|
27
27
|
|
28
28
|
module MonadicChat
|
29
29
|
SETTINGS = {
|
30
|
-
"normal_model" => "gpt-
|
31
|
-
"research_model" => "gpt-
|
32
|
-
"max_tokens_wiki" =>
|
30
|
+
"normal_model" => "gpt-4o",
|
31
|
+
"research_model" => "gpt-4o",
|
32
|
+
"max_tokens_wiki" => 1600,
|
33
33
|
"num_retrials" => 2,
|
34
34
|
"min_query_size" => 5,
|
35
35
|
"timeout_sec" => 120
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: monadic-chat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yohasebe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|