use_openai/
use_openai.rs

1use openai_safe::OpenAI;
2use openai_safe::OpenAIModels;
3use schemars::JsonSchema;
4use serde::Deserialize;
5use serde::Serialize;
6
7#[derive(Deserialize, Serialize, JsonSchema, Debug, Clone)]
8struct TranslationResponse {
9    pub spanish: String,
10    pub french: String,
11    pub german: String,
12    pub polish: String,
13}
14
15#[tokio::main]
16async fn main() {
17    env_logger::init();
18    let api_key: String = std::env::var("OPENAI_API_KEY").expect("OPENAI_API_KEY not set");
19    let model = OpenAIModels::Gpt3_5Turbo; // Choose the model
20
21    let open_ai = OpenAI::new(&api_key, model, None, None);
22
23    // Example context and instructions
24    let instructions =
25        "Translate the following English text to all the languages in the response type";
26
27    match open_ai
28        .get_answer::<TranslationResponse>(instructions)
29        .await
30    {
31        Ok(response) => println!("Response: {:?}", response),
32        Err(e) => eprintln!("Error: {:?}", e),
33    }
34}