La API de Gemini puede generar un resultado de texto cuando se proporcionan texto, imágenes, video y audio como entrada.
En esta guía, se muestra cómo generar texto con los métodos generateContent
y streamGenerateContent
. Para obtener información sobre cómo trabajar con las capacidades de visión y audio de Gemini, consulta las guías de visión y audio.
Genera texto a partir de una entrada de solo texto
La forma más sencilla de generar texto con la API de Gemini es proporcionarle al modelo una sola entrada de solo texto, como se muestra en este ejemplo:
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());
En este caso, la instrucción ("Explica cómo funciona la IA") no incluye ejemplos de resultados, instrucciones del sistema ni información de formato. Es un enfoque sin ejemplos. En algunos casos de uso, una instrucción única o de varias imágenes podría producir un resultado más alineado con las expectativas de los usuarios. En algunos casos, también es posible que desees proporcionar instrucciones del sistema para ayudar al modelo a comprender la tarea o seguir lineamientos específicos.
Genera texto a partir de una entrada de texto y una imagen
La API de Gemini admite entradas multimodales que combinan texto con archivos multimedia. En el siguiente ejemplo, se muestra cómo generar texto a partir de una entrada de texto y una imagen:
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());
Genera una transmisión de texto
De forma predeterminada, el modelo muestra una respuesta después de completar todo el proceso de generación de texto. Puedes lograr interacciones más rápidas si no esperas el resultado completo y, en su lugar, usas la transmisión para controlar los resultados parciales.
En el siguiente ejemplo, se muestra cómo implementar la transmisión con el método streamGenerateContent
para generar texto a partir de una instrucción de entrada de solo texto.
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);
}
Cómo crear una conversación de chat
El SDK de Gemini te permite recopilar varias rondas de preguntas y respuestas, lo que permite a los usuarios avanzar de forma incremental hacia las respuestas o obtener ayuda con problemas de varias partes. Esta función del SDK proporciona una interfaz para hacer un seguimiento del historial de conversaciones, pero en segundo plano usa el mismo método generateContent
para crear la respuesta.
En el siguiente ejemplo de código, se muestra una implementación básica de chat:
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());
También puedes usar la transmisión con chat, como se muestra en el siguiente ejemplo:
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);
}
Configura la generación de texto
Cada instrucción que envías al modelo incluye
parámetros que controlan cómo el modelo genera respuestas. Puedes usar GenerationConfig
para configurar estos parámetros. Si no configuras los parámetros, el modelo
usará las opciones predeterminadas, que pueden variar según el modelo.
En el siguiente ejemplo, se muestra cómo configurar varias de las opciones disponibles.
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());
¿Qué sigue?
Ahora que exploraste los conceptos básicos de la API de Gemini, te recomendamos que pruebes lo siguiente:
- Comprensión visual: Aprende a usar la comprensión visual nativa de Gemini para procesar imágenes y videos.
- Comprensión de audio: Obtén información para usar la comprensión de audio nativa de Gemini y procesar archivos de audio.