monadic-chat 0.1.1 → 0.1.2
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 +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
|