L'API Gemini può generare output di testo se vengono forniti testo, immagini, video e audio come input.
Questa guida mostra come generare testo utilizzando i metodi
generateContent
e
streamGenerateContent
. Per scoprire come utilizzare le funzionalità di visione e audio di Gemini, consulta le guide Vision e Audio.
Generare testo da input di solo testo
Il modo più semplice per generare testo utilizzando l'API Gemini è fornire al modello un singolo input di solo testo, come mostrato in questo esempio:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
In questo caso, il prompt ("Spiega come funziona l'IA") non include esempi di output, istruzioni di sistema o informazioni sulla formattazione. Si tratta di un approccio zero-shot. Per alcuni casi d'uso, un prompt one-shot o few-shot potrebbe produrre un output più in linea con le aspettative degli utenti. In alcuni casi, potresti anche fornire istruzioni di sistema per aiutare il modello a comprendere l'attività o a seguire linee guida specifiche.
Genera testo da input di testo e immagini
L'API Gemini supporta input multimodali che combinano testo con file multimediali. L'esempio seguente mostra come generare testo da un input di testo e immagini:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
Generare uno stream di testo
Per impostazione predefinita, il modello restituisce una risposta al termine dell'intero processo di generazione del testo. Puoi ottenere interazioni più rapide non aspettando l'intero risultato, ma utilizzando lo streaming per gestire i risultati parziali.
L'esempio seguente mostra come implementare lo streaming utilizzando il metodo
streamGenerateContent
per
generare testo da un prompt di input di solo testo.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Creare una conversazione di chat
L'SDK Gemini ti consente di raccogliere più round di domande
e risposte, consentendo agli utenti di procedere gradualmente verso le risposte o di ricevere aiuto
per problemi articolati. Questa funzionalità dell'SDK fornisce un'interfaccia per tenere traccia della cronologia delle conversazioni, ma dietro le quinte utilizza lo stesso metodo generateContent
per creare la risposta.
Il seguente esempio di codice mostra un'implementazione di chat di base:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
Puoi anche utilizzare lo streaming con la chat, come mostrato nell'esempio seguente:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Configurare la generazione di testo
Ogni prompt inviato al modello include parametri che controllano il modo in cui il modello genera le risposte. Puoi utilizzare
GenerationConfig
per
configurare questi parametri. Se non configuri i parametri, il modello
utilizza le opzioni predefinite, che possono variare in base al modello.
L'esempio seguente mostra come configurare diverse opzioni disponibili.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
Aggiungere istruzioni di sistema
Le istruzioni di sistema ti consentono di indirizzare il comportamento di un modello in base alle tue esigenze e ai tuoi casi d'uso specifici.
Fornendo al modello le istruzioni di sistema, fornisci un contesto aggiuntivo per comprendere l'attività, generare risposte più personalizzate e rispettare linee guida specifiche durante l'intera interazione dell'utente con il modello. Puoi anche specificare il comportamento a livello di prodotto impostando istruzioni di sistema, separate dai prompt forniti dagli utenti finali.
Puoi impostare le istruzioni di sistema quando inizializzazione il modello:
// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
systemInstruction: "You are a cat. Your name is Neko.",
});
Dopodiché, puoi inviare richieste al modello come di consueto.
Passaggi successivi
Ora che hai esplorato le nozioni di base dell'API Gemini, potresti provare a:
- Comprensione della visione: scopri come utilizzare la comprensione della visione nativa di Gemini per elaborare immagini e video.
- Comprensione audio: scopri come utilizzare la funzionalità di comprensione audio nativa di Gemini per elaborare i file audio.