You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
sigoden 0de680a4e9
chore: use rustls (#1)
* chore: use rustls

* remove docker release
1 year ago
.github/workflows chore: use rustls (#1) 1 year ago
src feat: support initial configuration items 1 year ago
.gitignore init commit 1 year ago
Cargo.lock chore: use rustls (#1) 1 year ago
Cargo.toml chore: use rustls (#1) 1 year ago
LICENSE-APACHE chore: add LICENSE 1 year ago
LICENSE-MIT chore: add LICENSE 1 year ago
README.md chore: update readme 1 year ago

README.md

AIChat

CI Crates

Chat with OpenAI GPT-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.

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.

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
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

The default config dir is as follows, You can override config dir with $AICHAT_CONFIG_DIR.

  • Linux: /home/alice/.config/aichat
  • Windows: C:\Users\Alice\AppData\Roaming\aichat
  • MacOS: /Users/Alice/Library/Application Support

aichat may generate the following files in the config dir:

  • config.yaml: the config file.
  • roles.yaml: the roles definition file.
  • history.txt: the repl history file.
  • messages.md: the chat messages storage file.

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 rules.yaml. For example, we define a javascript-console role as follows.

- name: javascript-console
  prompt: > 
    I want you to act as a javascript console. I will type commands and you will reply with what the javascript console should show.
    I want you to only reply with the terminal output inside one unique code block, and nothing else.
    do not write explanations. do not type commands unless I instruct you to do so. 
    when i need to tell you something in english, i will do so by putting text inside curly brackets {like this}.
    My first command is:

Let ChaGPT answer questions in the role of a javascript-console.

aichat --role javascript-console console.log("Hello World")

In interactive mode, we do this:

〉.role javascript-console

〉console.log("Hello world")

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.