chat/
chat.rs

1use openai_gpt_rs::chat::Message;
2use openai_gpt_rs::{client::Client, response::Content};
3use std::env;
4use std::io::{stdin, stdout, Write};
5
6#[tokio::main]
7async fn main() {
8    let client = Client::new(env::var("OPENAI_API_KEY").unwrap().as_str());
9
10    let mut role: String;
11    let mut message = String::new();
12
13    let mut index = String::new();
14
15    print!("    1: system\n    2: assistant\n    3: user\nSelect a role: ");
16    let _ = stdout().flush();
17
18    stdin().read_line(&mut index).unwrap();
19
20    if index.trim() == "1" {
21        role = "system".to_string();
22    } else if index.trim() == "2" {
23        role = "assistant".to_string();
24    } else if index.trim() == "3" {
25        role = "user".to_string();
26    } else {
27        panic!("Invalid role!");
28    }
29
30    role = role.trim().to_string();
31
32    print!("Enter a message: ");
33    let _ = stdout().flush();
34
35    stdin().read_line(&mut message).unwrap();
36
37    let content = message.trim().to_string();
38
39    let message = Message { role, content };
40
41    let message = vec![message];
42
43    let resp = client
44        .create_chat_completion(|args| args.messages(message))
45        .await
46        .unwrap();
47
48    let content = resp.get_content(0).unwrap();
49
50    println!("Response: {}", content);
51}