#chatgpt #openai #gpt #api #gpt-3 #command-line #api-bindings

bin+lib chatgpt_api

Use ChatGPT easily from Rust. Or from the command line.

3 releases (breaking)

0.3.0 Mar 15, 2023
0.2.0 Mar 6, 2023
0.1.0 Mar 2, 2023

#8 in #gpt-3

MIT/Apache

45KB
1K SLoC

ChatGPT for Rust

Crates.io Docs.rs

Use ChatGPT easily from Rust. Or from the command line.

Based on acheong08/ChatGPT. All the hard stuff was done by the original project author acheong08, all credit goes to him!

Status: Not finished, but usable.

Library

Installation

Add the following to your Cargo.toml:

[dependencies]
chatgpt_api = "0.1"

Usage

The config file contains the authentication credentials. Check out the authentication methods here: https://github.com/mrrobb/chatgpt#authentication-methods.

let config = Config::from_file(&config_file);
let mut bot = Chatbot::new(config, None, None).await;
let response = bot.ask("Hello, world!", None, None, None).await;

Note: Check out the examples for more.

CLI

Installation

If you have Rust installed, you can install the CLI from source:

cargo install chatgpt

Usage

Usage: chatgpt [OPTIONS]

Options:
  -v, --verbose  Sets the level of verbosity
  -h, --help     Print help
  -V, --version  Print version

By default, the CLI will look for a config file in ~/.config/chatgpt/config.json. You can specify a different path with the CHATGPT_CONFIG environment variable.

Authentication methods

Go to https://chat.openai.com and log in. Then, open the developer tools and go to the Application tab. In the Storage section, click on Cookies and copy the value of the __Secure-next-auth.session-token cookie.

{
    "session_token": "..."
}

Access token

Go to https://chat.openai.com and log in. Then, go to https://chat.openai.com/api/auth/session and copy the value of the accessToken field.

{
    "access_token": "..."
}

TODO

  • Add builder pattern to the Chatbot struct
  • Better (some?) error handling
  • Better formatting for the CLI
  • Custom config file path for the CLI
  • Test email and password authentication

Dependencies

~12–26MB
~402K SLoC