Pour se connecter à l’API de ChatGPT avec Rust, vous devrez utiliser une bibliothèque HTTP comme reqwest ou hyper pour envoyer une requête POST à l’API. Encore, les bibliothèques nécessaires pour manipuler des données JSON, comme serde, seront utiles pour construire les données nécessaires pour la requête et décomposer la réponse.
Voici un exemple de base avec l’utilisation de la bibliothèque reqwest (version 0.10 ou ultérieure) et serde:
```
extern crate reqwest;
extern crate serde;
extern crate serde_json;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Message {
role: String,
content: String,
}
#[derive(Serialize, Deserialize, Debug)]
struct GPT3Response {
id: String,
object: String,
created: i32,
model: String,
choices: Vec
}
#[derive(Serialize, Deserialize, Debug)]
struct Choices {
message: Message,
finish_reason: String,
}
#[tokio::main]
async fn main() {
let client = reqwest::Client::new();
let url = “https://api.openai.com/v1/engines/davinci-codex/completions”;
let prompt = vec![Message {role: “system”.to_string(), content: “You are a helper bot.”.to_string()},
Message {role: “user”.to_string(), content: “Who won the world series in 2020?”.to_string()}];
let body = serde_json::to_string(&prompt).unwrap();
Dans cet exemple, remplacer “YOUR-OPENAI-KEY” par votre clé d’API OpenAI. Vous devrez initialiser le client HTTP, construire une requête POST pour l’API, et formater la réponse en utilisant les structures définies pour les messages et la réponse completions de chat.
Ensuite, l’appel à `send()` envoie effectivement la requête, et nous utilisons `await` pour attendre la réponse (puisque reqwest fonctionne de manière asynchrone). Enfin, nous prenons la `response` JSON et la convertissons en notre structure `GPT3Response`.
Notez que ce code doit être exécuté dans une application Rust compatible avec Tokio, car reqwest utilise Tokio pour ses caractéristiques asynchrones. La ligne `#[tokio::main]` au-dessus de la définition `main` est une macro qui configure automatiquement votre fonction main pour utiliser un exécuteur Tokio.
Et n’oubliez pas de gérer les erreurs correctement dans votre code réel.
Veuillez consulter la documentation officielle de l’OpenAI pour plus d’informations sur l’utilisation de leur API : [https://beta.openai.com/docs/]+.