Conversazioni con contesto
Per simulare una conversazione è possibile fornire più messaggi nel campo input.
response = client.responses.create(
model: "gpt-4o-mini",
input: [
{ role: "system", content: "Sei un assistente utile." },
{ role: "user", content: "Spiegami cos'è Ruby in poche frasi." }
]
)
puts response.output_text
Il ruolo system permette di definire il comportamento dell’assistente, mentre user rappresenta la richiesta dell’utente.
Streaming delle risposte
Se si vuole ricevere la risposta in tempo reale (utile per chatbot o interfacce interattive) è possibile utilizzare lo streaming.
stream = client.responses.stream(
model: "gpt-4.1-mini",
input: "Scrivi una breve storia su un robot sviluppatore Ruby."
)
stream.each do |event|
if event.type == "response.output_text.delta"
print event.delta
end
end
In questo modo il testo viene restituito progressivamente, migliorando l’esperienza utente.
Generazione di immagini
OpenAI permette anche di generare immagini a partire da una descrizione testuale.
image = client.images.generate(
model: "gpt-image-1",
prompt: "Un robot che programma Ruby in un ufficio moderno",
size: "1024x1024"
)
puts image.data[0].url
Questa funzionalità è utile per creare contenuti visivi dinamici, illustrazioni o asset per applicazioni.
Trascrizione audio con Whisper
Per convertire audio in testo è possibile utilizzare il modello Whisper.
transcription = client.audio.transcriptions.create(
model: "whisper-1",
file: File.open("audio.mp3")
)
puts transcription.text
Questo è particolarmente utile per applicazioni di:
- voice assistant
- sottotitoli automatici
- analisi di contenuti audio

