/
AmigaGPT.guide
422 lines (262 loc) · 16.6 KB
/
AmigaGPT.guide
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
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
@database @"AmigaGPT.guide"
@{b}AUTHOR Cameron Armstrong (Nightfox/sacredbanana)@{ub}
@wordwrap
@node Main "AmigaGPT"
@{b}AmigaGPT@{ub}
Welcome to the future of language modeling on the classic AmigaOS, AmigaGPT. Built on the powerful OpenAI's GPT-3 and GPT-4 architectures, this program will take your Amiga experience to new horizons.
@{b}Click on any topic to learn more.@{ub}
@{"Introduction " link intro}
@{"System Requirements " link requirements}
@{"Installation " link installation}
@{"Launching " link launching}
@{"Usage " link usage}
@{"Models " link models}
@{"Developing " link developing}
@{"License " link license}
@{"Contributing " link contributing}
@{"Contributors and Special Thanks " link credits}
@{"Changelog " link changelog}
@endnode
@node intro "Introduction"
@{b}Features@{ub}
AmigaGPT boasts a variety of exciting features:
- @{b}State-of-the-art language model@{ub}
AmigaGPT uses the GPT-4 architecture developed by OpenAI to generate coherent, context-aware responses to your input.
- @{b}Seamless integration with AmigaOS@{ub}
AmigaGPT takes full advantage of the latest AmigaOS 3.2 API to provide a smooth, native user experience without the need to have third party frameworks installed.
You can customise the look and feel of the application, including the ability to choose the fonts and a choice of opening in the Workbench screen or a custom screen.
- @{b}Speech capability@{ub}
AmigaGPT can use the Amiga's speech synthesis capability to read the generated text aloud with support for switching between the old Workbench 1.x v34 and the Workbench 2.0 v37 speech synthesisers.
@endnode
@node requirements "System Requirements"
@{b}System Requirements@{ub}
For smooth operation of AmigaGPT, your system needs to meet the following requirements:
@{" "}
- An OCS/ECS/AGA Amiga
- AmigaOS 3.9 suuported but 3.2 or higher recommended
- Motorola 68020 or higher CPU
- Internet access using a TCP/IP stack such as Roadshow
- AmiSSL 5.9 or higher
- An OpenAI account with an active API key
- Optional: A copy of the Workbench 1.x disk to install narrator.device v34 and a copy of the Workbench 2.0 disk to install narrator.device v37
@endnode
@node installation "Installation"
@{b}Installation@{ub}
Follow the steps for successful installation:
@{" "}
- Install AmiSSL and a TCP/IP stack if not already done so
- Download the latest release of AmigaGPT
- Extract the amigagpt.lha archive to your desired location
@{b}Optional steps to enable speech functionality@{ub}
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 " link tran43}
@{"Installing `narrator.device` v34 " link narrator34}
@{"Installing `narrator.device` v37 " link narrator37}
@endnode
@node tran43 "Installing translator.library v43"
@{b}Installing `translator.library` v43@{ub}
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
@endnode
@node narrator34 "Installing `narrator.device` v34"
@{b}Installing `narrator.device` v34@{ub}
Insert your Workbench 1.x disk and copy `df0:devs/narrator.device` to `{AmigaGPTProgramDirectory}/devs/speech/34`
@endnode
@node narrator37 "Installing `narrator.device` v37"
@{b}Installing `narrator.device` v37@{ub}
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`
@endnode
@node launching "Launching AmigaGPT"
@{b}Launching AmigaGPT@{ub}
- 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.
@endnode
@node usage "Usage"
@{b}Using AmigaGPT@{ub}
Click on a topic to learn about it:
@{"Screen select " link screen}
@{"Entering your OpenAI API key " link apikey}
@{"Chatting with ChatGPT " link chatting}
@{"Conversation list " link conlist}
@{"Edit menu " link editmenu}
@{"Changing the font of the UI and chat " link font}
@endnode
@node screen "Screen select"
@{b}Selecting a screen to open AmigaGPT in@{ub}
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.
@endnode
@node apikey "Entering your OpenAI API key"
@{b}Entering your OpenAI API key@{ub}
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.
@endnode
@node chatting "Chatting with ChatGPT"
@{b}Chatting with ChatGPT@{ub}
When the app has opened, you are presented with a text input box. You can type any prompt into this box and press "Send" or Shift + Enter to see ChatGPT's response. The generated text appears in the box above the input. Depending on if you have speech configured and enabled, you will also hear it spoken to you.
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.
@endnode
@node conlist "Conversation list"
@{b}Conversation list@{ub}
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. Your conversations will get saved and they will appear again the next time you open AmigaGPT.
@endnode
@node editmenu "Edit menu"
@{b}Edit menu@{ub}
In the "Edit" menu, you'll find basic text editing commands like Cut, Copy, Paste and Clear.
@endnode
@node font "Changing the fonts"
@{b}Changing the fonts@{ub}
You may change the fonts of both the UI and the chat.
To change the font of either, go to the "View" menu.
@endnode
@node developing "Developing"
@{b}Developing@{ub}
Source code hosted at https://github.com/sacredbanana/AmigaGPT
You can either compile the code natively or with the Docker container.
@{b}Native@{ub}
@{i}Building the AmigaOS 3 app@{ui}
If you would like to build this project from source you will need Bebbo's @{b}amiga-gcc@{ub} toolchain here https://github.com/bebbo/amiga-gcc
Once this is installed, download the additional SDK's from https://github.com/sacredbanana/AmigaSDK-gcc and put them in your Amiga development environment installed in the above step.
@{i}Building the AmigaOS 4 app@{ui}
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.
@{b}Docker@{ub}
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.
@endnode
@node contributing "Contributing"
@{b}Contributing to AmigaGPT@{ub}
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.
@endnode
@node credits "Contributors"
@{b}Contributors@{ub}
@{b}Code@{ub}
- Cameron Armstrong (sacredbanana/Nightfox) https://github.com/sacredbanana/
@{b}Art@{ub}
- Mauricio Sandoval - Icon design
@{b}Special Thanks@{ub}
- 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
@endnode
@node license "License"
@{b}License@{ub}
@{b}AmigaGPT@{ub}
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.
@{b}THIRD PARTY LICENSES@{ub}
@{b}json-c@{ub}
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.
@endnode
@node models "Models"
@{b}Models@{ub}
@{b}GPT-4@{ub}
GPT-4 is currently in a limited beta and only accessible to those who have been granted access. Please join the waitlist (https://openai.com/waitlist/gpt-4) to get access.
GPT-4 is a large multimodal model (accepting text inputs and emitting text outputs today, with image inputs coming in the future) that can solve difficult problems with greater accuracy than any of our previous models, thanks to its broader general knowledge and advanced reasoning capabilities. For many basic tasks, the difference between GPT-4 and GPT-3.5 models is not significant. However, in more complex reasoning situations, GPT-4 is much more capable than any of our previous models.
@{b}Model variants@{ub}
@{b}gpt-4@{ub}
More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat. Will be updated with our latest model iteration 2 weeks after it is released.
Max tokens: 8,192
Training data: Up to Sep 2021
@{b}gpt-4-0613@{ub}
Snapshot of gpt-4 from June 13th 2023 with function calling data. Unlike gpt-4, this model will not receive updates, and will be deprecated 3 months after a new version is released.
Max tokens: 8,192
Training data: Up to Sep 2021
@{b}gpt-4-32k@{ub}
Same capabilities as the base gpt-4 mode but with 4x the context length. Will be updated with our latest model iteration.
Max tokens: 32,768
Training data: Up to Sep 2021
@{b}gpt-4-32k-0613@{ub}
Snapshot of gpt-4-32 from June 13th 2023. Unlike gpt-4-32k, this model will not receive updates, and will be deprecated 3 months after a new version is released.
Max tokens: 32,768
Training data: Up to Sep 2021
@{b}GPT-3.5@{ub}
GPT-3.5 models can understand and generate natural language or code. Our most capable and cost effective model in the GPT-3.5 family is gpt-3.5-turbo which has been optimized for chat but works well for traditional completions tasks as well.
@{b}gpt-3.5-turbo@{ub}
Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of text-davinci-003. Will be updated with our latest model iteration 2 weeks after it is released.
Max tokens: 4,096
Training data: Up to Sep 2021
@{b}gpt-3.5-turbo-0613@{ub}
Snapshot of gpt-3.5-turbo from June 13th 2023 with function calling data. Unlike gpt-3.5-turbo, this model will not receive updates, and will be deprecated 3 months after a new version is released.
Max tokens: 4,096
Training data: Up to Sep 2021
@{b}gpt-3.5-turbo-16k@{ub}
Same capabilities as the standard gpt-3.5-turbo model but with 4 times the context.
Max tokens: 16,384
Training data: Up to Sep 2021
@{b}gpt-3.5-turbo-16k-0613@{ub}
Snapshot of gpt-3.5-turbo-16k from June 13th 2023. Unlike gpt-3.5-turbo-16k, this model will not receive updates, and will be deprecated 3 months after a new version is released.
Max tokens: 16,384
Training data: Up to Sep 2021
@endnode
@node changelog "Changelog"
@{b}Changelog@{ub}
@{b}1.2.1 (2023-11-04)@{ub}
- Now fully backwards compatible with Cloanto's AmigaOS 3.X (included in Amiga Forever)
@{b}1.2.0 (2023-10-04)@{ub}
- Now fully backwards compatible with AmigaOS 3.9
@{b}1.1.0 (2023-07-22)@{ub}
- Now supports characters from Western languages other than English
- Blank responses from OpenAI no longer cause a crash
@{b}1.0.1 (2023-06-24)@{ub}
- After setting UI font, the font is now applied fully without needing to restart the app
@{b}1.0 (2023-06-17)@{ub}
- Initial release
@endnode