Right now it's just yet another wrapper around the openAI apis
Run interactively:
jaCommand line parameters
ja (just ask) is a small CLI / TUI app that allows you to work with AI tools Usage: ja [OPTIONS] [-- <MESSAGE>...] [COMMAND] Commands: chat default command (can be omitted) logs help Print this message or the help of the given subcommand(s) Arguments: [MESSAGE]... Options: -m, --model <MODEL> ID of the model to use Possible values: - gpt-3.5-turbo: alias 3.5 (default - because it's fast and cheap) - gpt-3.5-turbo-0301 - gpt-3.5-turbo-0613 - gpt-3.5-turbo-1106 - gpt-3.5-turbo-16k: alias 3.5-16k - gpt-3.5-turbo-16k-0613 - gpt-4: alias 4 - gpt-4-0314 - gpt-4-0613 - gpt-4-1106-preview - gpt-4-32k: alias 4-32k - gpt-4-32k-0314 - gpt-4-32k-0613 -t, --temperature <TEMPERATURE> Sampling temperature -p, --top-p <TOP_P> Probability mass percentage -n, --n <N> Number of choices to generate for each input message -s, --stream <STREAM> Stream the resultt of the API call [possible values: true, false] --stop <STOP> Up to 4 sequences where the API will stop generating further tokens -c, --max-tokens <MAX_TOKENS> The maximum number of tokens to generate in the chat completion --presence-penalty <PRESENCE_PENALTY> Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far --frequency-penalty <FREQUENCY_PENALTY> Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far -u, --user <USER> A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse -i, --input <INPUT> Input file -o, --output <OUTPUT> Output file --system <SYSTEM> System message -v, --verbose Show verbose output -h, --help Print help (see a summary with '-h') -V, --version Print version Example usage:
Provide command line paramters directly:
$ ja -- hello assistant: Hello! How can I assist you today? Provide input via a pipe:
$ echo "hello" | ja assistant: Hello! How can I assist you today? In no specific order, some ideas:
- Store logs in cache dir (use --verbose to see the filename)
- Accept input from stdin
- Prompts for input at the terminal if none is provided from command line / stdin
- Chat mode. Not just a single conversation, but multiple (there are plenty of ChatGPT style apps already though)
- Syntax highlight code in output
- Add a TUI mode (using ratatui)
- History management: Allow users to view, search, and manage their conversation history, making it easier to refer back to previous interactions.
- Customizable output formatting: Provide options for users to customize the output format, such as plain text, JSON, or even HTML, to better suit their needs.
- Rate limiting and usage monitoring: Add features to monitor API usage and enforce rate limits, helping users avoid unexpected costs or API restrictions.
- Support for other OpenAI models: Expand the app to support additional OpenAI models, giving users more options for generating content.
- Text-to-speech integration: Integrate text-to-speech functionality, allowing users to listen to the AI-generated responses instead of reading them.
- Customize system message. Customizable AI behavior: Allow users to adjust the AI's behavior
- Templated messages
