Per connettersi all’API ChatGPT con Rust, avrai bisogno di un client HTTP come reqwest ed un crate per gestire le JSON come serde\_json. Qui mostro un esempio di codice su come farlo:
Assicurati di avere nel tuo file Cargo.toml le seguenti dipendenze:
```
[dependencies]
reqwest = { version = “0.11”, features = [“json”] }
serde = “1.0“
serde_json = “1.0“
tokio = { version = “1”, features = [“full”] }
```
Esempio di codice:
```
use reqwest::Error;
use serde::Deserialize;
use serde::Serialize;
use std::collections::HashMap;
#[derive(Serialize)]
struct Prompt<‘a> {
messages: Vec
}
#[derive(Serialize)]
struct ChatMessage<‘a> {
role: &‘a str,
content: &‘a str,
}
#[derive(Deserialize)]
struct Response {
id: String,
object: String,
created: u64,
model: String,
usage: HashMap
}
#[tokio::main]
async fn main() -> Result<(), Error> {
let mut headers = reqwest::header::HeaderMap::new();
headers.insert(
“Authorization”,
reqwest::header::HeaderValue::from_str(“Bearer YOUR-API-KEY”).unwrap(),
);
Nell’esempio sopra, ho utilizzato l’endpoint “https://api.openai.com/v1/engines/davinci-codex/completions”, l’ultimo modello disponibile da OpenAI. La chiave dell’API va inserita nel campo “Bearer YOUR-API-KEY”. Ricorda di sostituire “YOUR-API-KEY” con la tua chiave API.
Nello script sorgente, bisogna inviare un messaggio di sistema seguito da un messaggio dell’utente. Il messaggio del sistema estableisce il comportamento del modello AI. Il messaggio dell’utente è la domanda a cui l’IA risponderà.
Infine, il codice stampa le scelte restituite dall’API. Ogni scelta contiene un campo “message” che ha il messaggio del modello AI “assistant”.