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; let open_ai = OpenAI::new(&api_key, model, None, None);
22
23 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}