use std::error::Error;
use openairs::{
client,
completions::{ChatCompletionRequest, ChatCompletionResponse, Message},
models::{self},
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let api_key = std::env::var("OPENAI_API_KEY").expect("Could not get api token");
let open_ai_client = client::OpenAIClient::new(api_key);
let messages = vec![Message::new(
"Can you write me a rust program that prints hello world?",
)];
println!("{}", messages[0].content);
let model = models::GPT_4;
let response = open_ai_client.chat_completion(&model, messages).await?;
println!("{} \n\n", response.choices[0].message.content);
let messages = vec![Message::new(
"Can you write me a poem about the Rust programming language?",
)];
println!("{}", messages[0].content);
let request = ChatCompletionRequest::new(model.name, messages).temperature(0.3);
let response = open_ai_client
.send_request::<ChatCompletionRequest, ChatCompletionResponse>(request)
.await?;
println!("{} \n\n", response.choices[0].message.content);
Ok(())
}