blob: 0f4bbc5de4d79ace93fac8e0cda5110763f0e6d3 (
plain) (
blame)
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
|
██████╗██╗ ██╗ ██████╗ ██████╗ ████████╗
██╔════╝██║ ██║ ██╔════╝ ██╔══██╗╚══██╔══╝
██║ ██║ ██║█████╗██║ ███╗██████╔╝ ██║
██║ ██║ ██║╚════╝██║ ██║██╔═══╝ ██║
╚██████╗███████╗██║ ╚██████╔╝██║ ██║
╚═════╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝
cli-gpt is a ChatGPT-like terminal wrapper to make interfacing with GPT models with an OpenAI API key easier.
## Installation
### Requirements
I've tried to keep requirements low as to keep the program pretty minimal. Outside of native Python libraries, we're grabbing `openai` (obviously) to interface with the OpenAI API, `tiktoken` to get token information, `selenium` for URL parsing, and `prompt_toolkit` + `pygments` for better terminal handling.
To install and run the program, simply execute the following commands.
```
# Create environment
python -m venv .venv/
. .venv/bin/activate
pip install -r requirements.txt
```
### Token File
To use this program, you will need an OpenAI API key. Keep this token in a file named `key` in the repository directory and the program should automatically read from it.
### Usage
Simply run the program using the following command in the repository directory
```
python src/chat.py
```
## Additional Functionalities
In addition to expected chat-bot call/response functionality, the `/help` command will list all commands and a short description of what that command will accomplish. Here is a summary of those commands:
```
- /exit: Closes the chat.
- /context: Passthrough a URL or filepath to add context into the chat history.
- /help: Display this list of available commands.
- /load: Load in a previous chat's JSON file.
- /save: Saves messages to specified JSON file and closes chat.
- /clear: Clears all messages and tokens from the chatlog, restarting the chat.
- /model: Change the model being used.
- /info: Print model information and cli-gpt version.
- /write: Write out any code from the previous message to a specified file.
```
## TODO:
Implementations I'm still working on include:
- "/copy" function to easily copy/paste codeblocks from assistant messages
- Better handling of key reading (perhaps an environment variable)
- Condensing token usage
- Switching between text and image models
- More intuitive command handling, particularly with "/cancel" catching
- More robust error handling :)
## Contact
For any inquiries, please reach out to [jordan@schark.online](mailto:jordan@schark.online). A mirror of this repositor can be found at [https://git.schark.online/cli-gpt/](https://git.schark.online/cli-gpt).
|