monadic-chat 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +26 -27
- data/bin/monadic-chat +2 -1
- data/lib/monadic_chat/version.rb +1 -1
- data/lib/monadic_chat.rb +20 -14
- 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: 9949be7f2447dd466b5cfff5b7c13615f1348ca8d2dd9938a28fca68a48cc4e5
|
4
|
+
data.tar.gz: 462c1f5af82cb50bd577305a782cad7499f1a7ce05b156491539546b5dfadba2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: affcd2df90174f9e85678234e11c0b08c3c486d793c87792d2bc676e3f02d4ec846a58e716bb86ec82f5b2e37ed90f14b61aacb3e93c37c0ba6fece31d4fce1c
|
7
|
+
data.tar.gz: a4126ffff2679f31bcc000a05620f5914a55188f61e0f35501428888a3445ef6c11775602eed74ee029566b18ea1f8526277a14839b342edb01824fd2b121797
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
<img src="https://user-images.githubusercontent.com/18207/224493072-9720b341-c70d-43b9-b996-ba7e9a7a6806.gif" width="900" />
|
7
7
|
</p>
|
8
8
|
|
9
|
-
> **
|
10
|
-
> This software is *under active development
|
9
|
+
> **Warning**
|
10
|
+
> This software is *under active development*. It may be unstable, and the latest version may behave slightly differently than this document. Also, specifications may change in the future.
|
11
11
|
|
12
12
|
## Table of Contents
|
13
13
|
|
@@ -16,33 +16,33 @@
|
|
16
16
|
* [Introduction](#introduction)
|
17
17
|
* [Dependencies](#dependencies)
|
18
18
|
* [Installation](#installation)
|
19
|
-
|
20
|
-
|
19
|
+
* [Using RubyGems](#using-rubygems)
|
20
|
+
* [Clone the GitHub Repository](#clone-the-github-repository)
|
21
21
|
* [Usage](#usage)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
* [Authentication](#authentication)
|
23
|
+
* [Select Main Menu Item](#select-main-menu-item)
|
24
|
+
* [Roles](#roles)
|
25
|
+
* [System-Wide Functions](#system-wide-functions)
|
26
26
|
* [Apps](#apps)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
* [Chat](#chat)
|
28
|
+
* [Code](#code)
|
29
|
+
* [Novel](#novel)
|
30
|
+
* [Translate](#translate)
|
31
31
|
* [Modes](#modes)
|
32
|
-
|
33
|
-
|
32
|
+
* [Normal Mode](#normal-mode)
|
33
|
+
* [Research Mode](#research-mode)
|
34
34
|
* [What is Research Mode?](#what-is-research-mode)
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
* [How Research Mode Works](#how-research-mode-works)
|
36
|
+
* [Accumulator](#accumulator)
|
37
|
+
* [Reducer](#reducer)
|
38
38
|
* [Creating New App](#creating-new-app)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
* [File Structure](#file-structure)
|
40
|
+
* [Reducer Code](#reducer-code)
|
41
|
+
* [Template for `Normal` Mode](#template-for-normal-mode)
|
42
|
+
* [Template for `Research` Mode](#template-for-research-mode)
|
43
43
|
* [What is Monadic about Monadic Chat?](#what-is-monadic-about-monadic-chat)
|
44
|
-
|
45
|
-
|
44
|
+
* [Unit, Map, and Join](#unit-map-and-join)
|
45
|
+
* [Discourse Management Object](#discourse-management-object)
|
46
46
|
* [Future Plans](#future-plans)
|
47
47
|
* [Bibliographical Data](#bibliographical-data)
|
48
48
|
* [Acknowledgments](#acknowledgments)
|
@@ -115,8 +115,6 @@ chmod +x ./bin/monadic-chat
|
|
115
115
|
|
116
116
|
When you start Monadic Chat with the `monadic-chat` command for the first time, you will be asked for an OpenAI access token. If you do not have one, create an account on the [OpenAI](https://platform.openai.com/) website and obtain an access token.
|
117
117
|
|
118
|
-
If the environment variable `OPENAI_API_KEY` is set in the system, its value will be used automatically.
|
119
|
-
|
120
118
|
<br />
|
121
119
|
|
122
120
|
<kbd><img src="./doc/img/input-acess-token.png" width="700px" style="border: thin solid darkgray;"/></kbd>
|
@@ -389,13 +387,14 @@ The specifications for Monadic Chat's command-line user interface for this app a
|
|
389
387
|
- Parsed data will be formatted in Penn Treebank format. However, square brackets [ ] are used instead of parentheses ( ).
|
390
388
|
- The parsed data is returned as Markdown inline code enclosed in backticks (` `).
|
391
389
|
|
392
|
-
|
390
|
+
> **Note**
|
391
|
+
> The use of square brackets (instead of parentheses) in the notation of syntactic analysis here is to conform to the format of [RSyntaxTree](https://yohasebe.com/rsyntaxtree), a tree-drawing program for linguistic research developed by the author of Monadic Chat.
|
393
392
|
|
394
393
|
<img src="./doc/img/syntree-sample.png" width="300px" />
|
395
394
|
|
396
395
|
The sample app we create in this section is stored in the [`sample_app`](https://github.com/yohasebe/monadic-chat/tree/main/sample_app) folder in the repository.
|
397
396
|
|
398
|
-
###
|
397
|
+
### File Structure
|
399
398
|
|
400
399
|
New Monadic Chat apps must be placed inside the `apps` folder. The folders and files for default apps `chat`, `code`, `novel`, and `translate` are also in this folder.
|
401
400
|
|
data/bin/monadic-chat
CHANGED
@@ -54,7 +54,8 @@ module MonadicMenu
|
|
54
54
|
clear_screen
|
55
55
|
print "\n", banner.strip, "\n"
|
56
56
|
|
57
|
-
openai_completion
|
57
|
+
openai_completion = MonadicChat.authenticate
|
58
|
+
exit unless openai_completion
|
58
59
|
|
59
60
|
parameter = PROMPT_SYSTEM.select(" Current mode: #{print_mode.call(mode)}\n\nSelect item:",
|
60
61
|
per_page: 10,
|
data/lib/monadic_chat/version.rb
CHANGED
data/lib/monadic_chat.rb
CHANGED
@@ -129,36 +129,42 @@ module MonadicChat
|
|
129
129
|
OpenAI::Completion.new(token, tmp_file: TEMP_JSON)
|
130
130
|
rescue StandardError
|
131
131
|
print "failure.\n"
|
132
|
-
|
132
|
+
false
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
|
136
|
+
completion = nil
|
137
|
+
|
137
138
|
if overwrite
|
138
|
-
access_token =
|
139
|
-
|
139
|
+
access_token = PROMPT_SYSTEM.ask(" Input your OpenAI access token:")
|
140
|
+
return false if access_token.to_s == ""
|
140
141
|
|
141
|
-
check.call(access_token)
|
142
|
+
completion = check.call(access_token)
|
142
143
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
144
|
+
if completion
|
145
|
+
File.open(CONFIG, "w") do |f|
|
146
|
+
config = { "access_token" => access_token }
|
147
|
+
f.write(JSON.pretty_generate(config))
|
148
|
+
print "New access token has been saved to #{CONFIG}\n"
|
149
|
+
end
|
147
150
|
end
|
148
151
|
elsif File.exist?(CONFIG)
|
149
152
|
json = File.read(CONFIG)
|
150
153
|
config = JSON.parse(json)
|
151
154
|
access_token = config["access_token"]
|
152
|
-
check.call(access_token)
|
155
|
+
completion = check.call(access_token)
|
153
156
|
else
|
154
157
|
access_token ||= PROMPT_SYSTEM.ask(" Input your OpenAI access token:")
|
155
|
-
check.call(access_token)
|
156
|
-
|
157
|
-
|
158
|
-
|
158
|
+
completion = check.call(access_token)
|
159
|
+
if completion
|
160
|
+
File.open(CONFIG, "w") do |f|
|
161
|
+
config = { "access_token" => access_token }
|
162
|
+
f.write(JSON.pretty_generate(config))
|
163
|
+
end
|
159
164
|
print "Access token has been saved to #{CONFIG}\n"
|
160
165
|
end
|
161
166
|
end
|
167
|
+
completion || authenticate(overwrite: true)
|
162
168
|
end
|
163
169
|
|
164
170
|
def self.prompt_system
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: monadic-chat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yohasebe
|
@@ -336,7 +336,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
336
336
|
- !ruby/object:Gem::Version
|
337
337
|
version: '0'
|
338
338
|
requirements: []
|
339
|
-
rubygems_version: 3.4.
|
339
|
+
rubygems_version: 3.4.8
|
340
340
|
signing_key:
|
341
341
|
specification_version: 4
|
342
342
|
summary: Highly configurable CLI client app for OpenAI chat/text-completion API
|