Command-line interface for ChatGPT Assistants: https://platform.openai.com/docs/assistants/overview
Project description
openai-assistants-cli
Command-line interface for ChatGPT Assistants: https://platform.openai.com/docs/assistants/overview.
Features
- Command-Line Interface: Interact with ChatGPT or Claude directly from your terminal.
- Multiple Assistants: Easily switch between different assistants defined in the config file.
- Keyboard Shortcuts: Use Ctrl-C, Ctrl-D, and Ctrl-R shortcuts for easier conversation management and input control.
- Multi-Line Input: Enter multi-line mode for more complex queries or conversations.
- Markdown Support: Enable or disable markdown formatting for chat sessions to tailor the output to your preferences.
- Logging: Log your conversations to disk or stdout
Coming Soon
- Usage tracking: Track your API usage with token count and price information.
Installation
This install assumes a Linux/OSX machine with Python and pip available.
pip install openai-assistants-cli
Install latest version from source:
pip install git+https://github.com/grid-link-inc/gpt-cli
Or install by cloning the repository manually:
git clone https://github.com/grid-link-inc/gpt-cli
cd gpt-cli
pip install .
Add the OpenAI API key to your .bashrc
file (in the root of your home folder).
In this example we use nano, you can use any text editor.
nano ~/.bashrc
export OPENAI_API_KEY=<your_key_here>
Run the tool
openai-assistants-cli
You can also use a gpt.yml
file for configuration. See the Configuration section below.
Usage
Make sure to set the OPENAI_API_KEY
environment variable to your OpenAI API key (or put it in the ~/.config/gpt-cli/gpt.yml
file as described below).
Add your assistant to the config file. See Configuration
below. (TODO Add assistant-id arg and use this in Usage/quickstart)
usage: openai-assistants-cli [-h] [--no_markdown]
[--log_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--no_stream]
[{assistant-name}]
Run a chat session with ChatGPT. See https://github.com/grid-link-inc/gpt-cli for more information.
optional arguments:
-h, --help show this help message and exit
--no_markdown Disable markdown formatting in the chat session.
--log_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
The log level to use
--no_stream If specified, will not stream the response to standard output. This is
useful if you want to use the response in a script. Ignored when the
--prompt option is not specified.
--no_price Disable price logging.
Type :q
or Ctrl-D to exit, :c
or Ctrl-C to clear the conversation, :r
or Ctrl-R to re-generate the last response.
To enter multi-line mode, enter a backslash \
followed by a new line. Exit the multi-line mode by pressing ESC and then Enter.
Configuration
You can configure the assistants in the config file ~/.config/gpt-cli/gpt.yml
. The file is a YAML file with the following structure (see also config.py)
default_assistant: <assistant_name>
markdown: False
openai_api_key: <openai_api_key>
anthropic_api_key: <anthropic_api_key>
log_file: <path>
log_level: <DEBUG|INFO|WARNING|ERROR|CRITICAL>
assistants:
<assistant_name>:
id: <assistant id string>
<assistant_name>:
...
You can override the parameters for the pre-defined assistants as well.
You can specify the default assistant to use by setting the default_assistant
field.
Example:
default_assistant: my_assistant
markdown: True
openai_api_key: <openai_api_key>
assistants:
my_assistant:
id: asst_abcdabcdabcd
my_other_assistant:
id: asst_123412341234
$ openai-assistants-cli my_other_assistant
>
Testing
pytest tests
TODO for v1.0
- Implement PriceChatListener for Assistants
- Add configurable instructions for each assistant to be passed to runs.create()
- Accept an assistant ID as a cli arg
- Make file names clickable in citations (that were created by add_citations_to_messages())
- Cache File retrievals
- Consolidate the two log file / persistance implementations
Publishing
## Build
pip install build
python -m build
## Test it
pip install twine
twine upload --repository testpypi dist/* --username __token__ # Use your API token as the password when promtped
pip install --index-url https://test.pypi.org/simple/ openai-assistants-cli
## Publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file openai-assistants-cli-0.1.1.tar.gz
.
File metadata
- Download URL: openai-assistants-cli-0.1.1.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59032cf3546bed3e18ea9dde5f36617b0c550bb925ec842ca2d5ea6aa88bd4e8 |
|
MD5 | 026a2752bf23dc7ce8c4d0c3f8aed316 |
|
BLAKE2b-256 | f751e94599a36be0cbd45ee1465d0ee46e67ef68542727ce45f7ee0a00a890cd |