/
AmigaGPT.readme
273 lines (217 loc) · 11.1 KB
/
AmigaGPT.readme
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
Short: App for chatting to ChatGPT
Kurz: App zum Chatten mit ChatGPT
Author: Cameron Armstrong (Nightfox) <cameronscottarmstrong@gmail.com>
Uploader: Cameron Armstrong (Nightfox) <cameronscottarmstrong@gmail.com>
Type: util/misc
Version: 1.2.1
Architecture: m68k-amigaos >= 3.9
Requires: AmigaOS 3.9+/68020+ util/libs/AmiSSL-5.9-OS3.lha
Replaces: util/misc/AmigaGPT.lha
AmigaGPT is a text generation program that runs on the classic AmigaOS.
Utilising the power of the OpenAI's GPT-3 and GPT-4 architectures, this
program brings state-of-the-art language modeling to your Amiga computer.
Features:
- Generates text based on input prompts
- UI customisation
- Full conversation history
- Text-to-speech
Requirements:
- OCS/ECS/AGA Amiga
- Motorola 68020 or higher CPU
- AmigaOS 3.9 and AmigaOS 3.X (included in Amiga Forever) supported but 3.2 or higher recommended
- AmiSSL 5.9 or higher (http://aminet.net/util/libs/AmiSSL-5.9-OS3.lha)
- Internet access using a TCP/IP stack such as Roadshow
(http://roadshow.apc-tcp.de/index-en.php)
- An active OpenAI API key
- For speech, any version of narrator.device
Installation:
1. Install AmiSSL and a TCP/IP stack if not already done so
2. Unpack the archive to a directory of your choice.
3. Run the Installer script included in the package.
4. Follow the prompts to complete the installation.
Optional steps to enable speech functionality:
AmigaGPT supports reading the output aloud. This requires a file called
`narrator.device` which cannot be included with AmigaGPT because it is still
under copyright. Therefore, you must copy this file legally from your
Workbench disks so that AmigaGPT will be able to synthesise speech. There are
2 versions of `narrator.device` supported, v34 and v37.
v34 is the original version that came with Workbench 1.x. v37 was an updated
version included with Workbench 2.0.x. It has more features and sounds more
natural, however it does sound quite different which is why AmigaGPT supports
you installing both versions and your choice of version to be used can be
selected in the Speech menu in the app.
Regardless of which version of `narrator.device` you choose to install
(or both), AmigaGPT requires that you install the free third party
`translator.library` v43. This works with both versions of `narrator.device`.
Installing `translator.library` v43:
Since `translator.library` v43 is not available as a standalone install, you
will need to install v42 and then patch it to v43.
* Download http://aminet.net/util/libs/translator42.lha and extract the
archive to any convenient location on your Amiga such as `RAM:`
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Download http://aminet.net/util/libs/Tran43pch.lha and once again extract it
to a location of your choice
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Reboot your Amiga - It will not work until the system is restarted
Installing `narrator.device` v34:
* Insert your Workbench 1.x disk and copy `df0:devs/narrator.device` to
`{AmigaGPTProgramDirectory}/devs/speech/34`
Installing `narrator.device` v37
* Insert your Workbench 2.0.x (you cannot use 2.1 because the speech libraries
were removed after version 2.0.4) disk and copy `df0:devs/narrator.device` to
`{AmigaGPTProgramDirectory}/devs/speech/37`
Launching AmigaGPT:
* Launch the application by double-clicking the AmigaGPT icon
* You may also launch the app in the command line but before you do, run the
command `STACK 20000` to give the program 20kb of stack since the default
stack size for apps launched from the shell is 4kb and this is not enough for
AmigaGPT and will cause random crashes due to stack overflow. This is not
required when you launch the app by double clicking the icon since the stack
size is saved in the icon.
Usage:
When launched, AmigaGPT presents you with a choice of opening the app in a new
screen or opening in Workbench. If you open in a new screen you have the
ability to create a screen for the app to open in. AmigaGPT supports anything
from 320x200 all the way up to 4k resolution if using a video card for RTG.
Bear in mind text will appear very tiny in resolutions above 1080p so you may
want to increase the font size settings from the View menu when the app opens.
When launching for the first time you will need to enter your OpenAI API key
before you can start chatting. If you haven't already done so, create an
OpenAI account and navigate to https://platform.openai.com/account/api-keys to
generate an API key for use with AmigaGPT.
When the app has opened, you are presented with a text input box. You can type
any prompt into this box and press "Send" to see the GPT-4 model's response.
The generated text appears in the box above the input. You can choose to have
this text read aloud using the "Speech" menu option. You can also select which
model for OpenAI to use in the "OpenAI" menu option.
To the left of the chat box is a conversation list which you can use to go to
another saved conversation. New conversations can be created with the "New
chat" button and conversations can be removed with the "Delete chat" button.
In the "Edit" menu, you'll find basic text editing commands like Cut, Copy,
Paste and Clear. The "View" menu allows you to change the font used in the
chat and the UI.
The "Project" menu includes an "About" option, which displays information
about the program.
Developing:
Source code hosted at https://github.com/sacredbanana/AmigaGPT
You can either compile the code natively or with the Docker container.
------
Native
------
*Building the AmigaOS 3 app*
If you would like to build this project from source you will need Bebbo's
amiga-gcc toolchain here https://github.com/bebbo/amiga-gcc
Once installed, get the required other SDK's from
https://github.com/sacredbanana/AmigaSDK-gcc and put these in your Amiga
dev environment created in the above step.
*Building the AmigaOS 4 app*
Get this toolchain set up https://github.com/sba1/adtools
Once installed, get the required other SDK's from
https://github.com/sacredbanana/AmigaSDK-gcc and put these in your Amiga
dev environment created in the above step.
------
Docker
------
You may use an all-in-one Docker image that is able to compile both the
AmigaOS 3 and AmigaOS 4 versions of the app.
Just install Docker on your machine and run the `build_os3.sh` or
`build_os4.sh` scripts depending on which version of the app you want to
build. If you want to perform a clean build, you can set the environment
variable `CLEAN=1` for example you can run `CLEAN=1 ./build_os3.sh`.
The build app will be saved to the `/out` directory.
Contributing:
We welcome contributions to AmigaGPT! If you have a bug to report, a
feature to suggest, or a change you'd like to make to the code, please open
a new issue or submit a pull request.
Contributors:
Code:
- Cameron Armstrong (sacredbanana/Nightfox)
https://github.com/sacredbanana/
Art:
- Mauricio Sandoval - Icon design
Special Thanks:
- Bebbo for creating the Amiga GCC toolchain https://github.com/bebbo
- OpenAI for making this all possible https://openai.com
- EAB and everyone in it for answering my questions https://eab.abime.net/
- Hyperion Entertainment for bringinging us AmigaOS 3.2
https://www.hyperion-entertainment.com
Changelog:
------------------
1.2.0 (2023-10-04)
------------------
- Now fully backwards compatible with AmigaOS 3.9
------------------
1.1.0 (2023-07-22)
------------------
- Now supports characters from Western languages other than English
- Blank responses from OpenAI no longer cause a crash
------------------
1.0.1 (2023-06-24)
------------------
- After setting UI font, the font is now applied fully without needing to restart the app
----------------
1.0 (2023-06-17)
----------------
- Initial release
License:
--------
AmigaGPT
--------
MIT License
Copyright (c) 2023 Cameron Armstrong
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
--------------------
THIRD PARTY LICENSES
--------------------
------
json-c
------
Copyright (c) 2009-2012 Eric Haszlakiewicz
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
----------------------------------------------------------------
Copyright (c) 2004, 2005 Metaparadigm Pte Ltd
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.