AIChat

CI Crates

Chat with ChatGPT-3.5 in the terminal.

demo

Install

With cargo

cargo install --force aichat

Binaries on macOS, Linux, Windows

Download from Github Releases, unzip and add opscan to your $PATH.

Features

Config

On first launch, aichat will guide you through configuration.

```

No config file, create a new one? Yes Openai API Key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Use proxy? Yes Set proxy: socks5://127.0.0.1:1080 Save chat messages Yes ```

After setting, it will automatically create the configuration file. Of course, you can also manually set the configuration file.

yaml api_key: "<YOUR SECRET API KEY>" # Request via https://platform.openai.com/account/api-keys temperature: 1.0 # optional, see https://platform.openai.com/docs/api-reference/chat/create#chat/create-temperature save: true # optional, If set to true, aichat will save chat messages to message.md no_highlight: false # optional, Whether to disable highlight proxy: "socks5://127.0.0.1:1080" # optional, set proxy server. e.g. http://127.0.0.1:8080 or socks5://127.0.0.1:1080

Use .info command to view the configuration file path. 〉.info config file /home/alice/.config/aichat/config.yaml roles file /home/alice/.config/aichat/roles.yaml messages file /home/alice/.config/aichat/messages.md current role proxy save messages true highlight true

Roles

We can let ChatGPT play a certain role through prompt to make it better generate what we want. See awesome-chatgpt-prompts for details.

We can predefine a batch of roles in roles.yaml. For example, we define a emoji translator as follows.

yaml - name: emoji prompt: > I want you to translate the sentences I wrote into emojis. I will write the sentence, and you will express it with emojis. I just want you to express it with emojis. I don't want you to reply with anything but emoji. When I need to tell you something in English, I will do it by wrapping it in curly brackets like {like this}.

Let ChatGPT answer questions in the role of a emoji translator

``` 〉.role emoji

〉I am very angry 😠💢👿 ```

CLI

``` Chat with OpenAI GPT-3.5 in the terminal.

Usage: aichat [OPTIONS] [TEXT]...

Arguments: [TEXT]... Input text, if no input text, enter interactive mode

Options: -L, --list-roles List all roles -r, --role Specify the role that the AI will play -h, --help Print help -V, --version Print version ```

Interactive chat if no text input: $ aichat Welcome to aichat x.x.x Type ".help" for more information. 〉

Imperative request data: aichat --role emoji I am very angry

Accept pipe: cat text | aichat

License

Copyright (c) 2023 aichat-developers.

aichat is made available under the terms of either the MIT License or the Apache License 2.0, at your option.

See the LICENSE-APACHE and LICENSE-MIT files for license details.