1. Antes de comenzar
En este codelab, aprenderás a automatizar tareas de Google Workspace con las funciones de multimodalidad y llamada a función de la API de Gemini.
Requisitos previos
- Conocimientos básicos de Apps Script, JavaScript o un lenguaje de programación similar
Qué aprenderá
- Cómo aprovechar las funciones de multimodalidad y llamada a función de la API de Gemini
- Cómo encadenar varias llamadas a la API de Gemini
- Cómo automatizar tareas de Google Workspace con la API de Gemini
Requisitos
- Un navegador web
- Una cuenta de Gmail Como alternativa, puedes usar una cuenta de Google Workspace que haya implementado la configuración específica de la API de Gemini.
- Una conexión desde una región admitida para la API de Gemini
- Opcional: Una interfaz de línea de comandos con el programa
curlpara probar solicitudes directas a la API
El código completo de este codelab está disponible en el libro de recetas de la API de Gemini en GitHub. Consúltalo si necesitas el código completo.
2. Configura la API de Gemini
Acerca de Gemini
Los modelos de Gemini son la familia de modelos de IA más grande y potente de Google. Para aprovechar estos modelos en tus apps, puedes usar la API de Gemini. También puedes probar la API de Gemini en Google AI Studio, una interfaz web para la API en la que puedes probar instrucciones, modificar la configuración del modelo y ajustar modelos personalizados sin escribir código.
Obtén una clave
- Para usar la API de Gemini, crea una clave de API en Google AI Studio.
Opcional: Prueba tu clave
Si tienes acceso a una línea de comandos con curl, agrega tu clave a la primera línea del siguiente bloque y, luego, ejecútala en tu terminal para probar la clave de API.
export GOOGLE_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GOOGLE_API_KEY}"
Deberías ver una lista de modelos en formato JSON, como models/gemini-1.0-pro. Esto significa que funcionó.
3. Opcional: Realiza una solicitud a la API de Gemini
En este paso opcional, realizarás una solicitud a la API de Gemini para comprender mejor cómo funciona la generación de contenido antes de agregarlo a una app de Apps Script.
Acerca de los modelos
La API de Gemini proporciona varios modelos con diferentes capacidades y limitaciones. En la página de modelos de Gemini, se incluye una lista de cada uno de los modelos junto con sus capacidades.
Cómo realizar tu primera solicitud
Para que la API de Gemini complete una instrucción de texto, debes crear una solicitud JSON y enviarla al extremo de la API de REST.
Para hacerlo, sigue estos pasos:
- En un archivo nuevo, ingresa la siguiente solicitud JSON:
{
contents: [
{
parts: [
{ text: 'The most important aspects of a persuasive presentation are:' }
]
}
]
}
La solicitud JSON incluye la siguiente instrucción: The most important aspects of a persuasive presentation are:. El modelo completará esta instrucción y te dará el resultado directamente.
La solicitud JSON tiene tres campos de nivel superior que se deben completar: contents, generationConfig y safetySettings. Solo se requiere contents. Los demás proporcionan mecanismos para controlar la salida.
- Guarda este JSON en un archivo
presentation.txty, luego, pásalo directamente acurlde la siguiente manera:
curl -H 'Content-Type: application/json' -X POST -d @presentation.txt \
'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-latest:generateContent?key='${GOOGLE_API_KEY}
En este ejemplo, debes establecer los siguientes valores en la URL:
v1betaespecifica la versión de la API.gemini-1.0-pro-latestespecifica Gemini 1.0 Pro como el modelo y usa la instantánea más reciente.generateContentespecifica el método de la API al que llamas.
Deberías ver resultados similares a los siguientes:
{
"candidates": [
{
"content": {
"parts": [
{
"text": "* **Credibility:** The audience must trust that you are an expert on the subject matter and that you have their best interests at heart.\n* **Clearness:** Your message must be easy to understand and follow. Avoid using jargon or technical terms that your audience may not be familiar with.\n* **Concreteness:** Use specific examples and data to support your arguments. Avoid making vague or general claims.\n* **Emotional appeal:** In addition to appealing to the audience's logical side, you should also try to connect with them on an emotional level. Use storytelling, humor, and personal anecdotes to make your points more memorable and engaging.\n* **Strong closing:** End your presentation with a strong call to action. Tell the audience what you want them to do and why it is important for them to do it."
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [...]
}
],
"promptFeedback": {
"safetyRatings": [...]
}
}
Para facilitar la lectura, aquí tienes el resultado de la terminal con el formato habitual:
- Credibilidad: El público debe confiar en que eres un experto en el tema y que tienes sus mejores intereses en mente.
- Claridad: Tu mensaje debe ser fácil de entender y seguir. Evita usar jerga o términos técnicos con los que tu público tal vez no esté familiarizado.
- Concreción: Usa ejemplos y datos específicos para respaldar tus argumentos. Evita hacer afirmaciones vagas o generales.
- Apelación emocional: Además de apelar al lado lógico del público, también debes intentar conectarte con él a nivel emocional. Usa anécdotas personales, humor y narraciones para que tus argumentos sean más memorables y atractivos.
- Cierre sólido: Finaliza tu presentación con un llamado a la acción sólido. Dile al público qué quieres que haga y por qué es importante que lo haga.
Para obtener más información sobre los otros parámetros de configuración, incluidos generationConfig y safetySettings, consulta las guías de instrucciones y seguridad.
4. Llama a la API de Gemini desde Apps Script
- Visita script.new y se creará automáticamente un archivo de
code.gsApps Script. - Mantén el cursor sobre el archivo
code.gsy, luego, haz clic en
> Cambiar nombre. - Cambia el nombre del archivo a
utils.gs. - En el archivo, quita la función
myFunctionpara que quede vacío.
Agrega tu clave de API al proyecto
- En el menú de navegación, selecciona Configuración del proyecto.
- En Propiedades de secuencia de comandos, haz clic en Agregar propiedad de secuencia de comandos.
- En Propiedad, ingresa
GOOGLE_API_KEY. - En Value, ingresa tu clave de API de Google AI Studio.

- Haz clic en Guardar las propiedades de la secuencia de comandos.
- Regresa al editor.
Agrega el código de la API de Gemini
En el archivo utils.gs, sigue estos pasos:
Configura la clave de API y el extremo:
const properties = PropertiesService.getScriptProperties().getProperties();
const geminiApiKey = properties['GOOGLE_API_KEY'];
const geminiEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-latest:generateContent?key=${geminiApiKey}`;
- Agrega la siguiente función que llama a la API de Gemini con una instrucción específica:
function callGemini(prompt, temperature=0) {
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
},
]
}
],
"generationConfig": {
"temperature": temperature,
},
};
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(geminiEndpoint, options);
const data = JSON.parse(response);
const content = data["candidates"][0]["content"]["parts"][0]["text"];
return content;
}
- Agrega la siguiente función que establece la instrucción:
function testGemini() {
const prompt = "The best thing since sliced bread is";
const output = callGemini(prompt);
console.log(prompt, output);
}
Pruébalo
- Haz clic en
Guardar. - Elige
testGeminien la lista desplegable de funciones y haz clic en
. - Acepta los permisos necesarios. Tu código debería ejecutarse y deberías ver algunos resultados de la consola en el registro de ejecución.

¡Funcionó!
5. Llama a la API de Gemini con imágenes
Una de las funciones más potentes de la familia de modelos de Gemini es la compatibilidad con la entrada multimodal, lo que significa que puedes proporcionar más que solo texto. En esta sección, agregarás una función que llama a la API de Gemini con una imagen.
- En la parte superior del archivo
utils.gs, después de la declaraciónconst geminiEndpointexistente, agrega la siguiente línea:
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
Agrega el código de Gemini Vision
- Agrega una función al archivo
utils.gspara llamar a este extremo recién agregado:
function callGeminiProVision(prompt, image, temperature=0) {
const imageData = Utilities.base64Encode(image.getAs('image/png').getBytes());
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
},
{
"inlineData": {
"mimeType": "image/png",
"data": imageData
}
}
]
}
],
"generationConfig": {
"temperature": temperature,
},
};
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(geminiProVisionEndpoint, options);
const data = JSON.parse(response);
const content = data["candidates"][0]["content"]["parts"][0]["text"];
return content;
}
- Agrega la siguiente función de prueba:
function testGeminiVision() {
const prompt = "Provide a fun fact about this object.";
const image = UrlFetchApp.fetch('https://storage.googleapis.com/generativeai-downloads/images/instrument.jpg').getBlob();
const output = callGeminiProVision(prompt, image);
console.log(prompt, output);
}
Esta función carga una imagen de prueba de Internet y la pasa a la función que definiste. Más adelante, lo conectarás para usar un gráfico de una hoja de cálculo, por lo que esto es solo una prueba.
Pruébalo
- Guarda y ejecuta la función
testGeminiVisiony, luego, inspecciona el resultado.

6. Llama a la API de Gemini con herramientas
Además de texto e imágenes, también puedes proporcionar acceso a herramientas en tus instrucciones.
Agrega el código de control de herramientas
- Agrega una función al archivo
utils.gsque acepte una especificación de herramienta:
function callGeminiWithTools(prompt, tools, temperature=0) {
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
},
]
}
],
"tools" : tools,
"generationConfig": {
"temperature": temperature,
},
};
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(geminiEndpoint, options);
const data = JSON.parse(response);
const content = data["candidates"][0]["content"]["parts"][0]["functionCall"];
return content;
}
Para obtener más información sobre este esquema y los campos disponibles, consulta la referencia de la API de FunctionDeclaration.
Pruébalo
- Define una herramienta que el modelo pueda usar para encontrar la fecha y hora actuales:
function testGeminiTools() {
const prompt = "Tell me how many days there are left in this month.";
const tools = {
"function_declarations": [
{
"name": "datetime",
"description": "Returns the current date and time as a formatted string.",
"parameters": {
"type": "string"
}
}
]
};
const output = callGeminiWithTools(prompt, tools);
console.log(prompt, output);
}
El formato que se usa aquí es el esquema FunctionDeclaration. En realidad, no llamas a la función de fecha y hora. Solo recibirás una indicación de que el modelo solicitó una llamada a función. Manejarás las llamadas a funciones en un paso posterior.
- Guarda y ejecuta la función
testGeminiToolspara ver el resultado.

7. Descripción general de las integraciones de demostración con Google Workspace
Ahora que comprendes cómo funciona la llamada a funciones, puedes extender fácilmente las capacidades del modelo de Gemini a otros servicios. En las siguientes secciones, crearás integraciones con productos de Google Workspace, como Google Drive, Presentaciones de Google y Hojas de cálculo de Google. Este es un diagrama simplificado:

En un nivel superior, cuando llega una búsqueda del usuario, usas la llamada a funciones de la API de Gemini para determinar qué herramienta usar. Crearás tres herramientas que pueden hacer lo siguiente:
- Organiza una reunión. La función
setupMeeting()del diagrama invoca la API de Gemini 1.0 Pro para resumir un blog en Google Drive y agregar el resumen a una reunión recién creada en el Calendario de Google. - Redacta un correo electrónico basado en las estadísticas de un gráfico. La función
draftEmail()del diagrama invoca a Gemini 1.0 Pro Vision para analizar un gráfico en Hojas de cálculo de Google y redactar un correo electrónico en Gmail según el análisis. - Crea una presentación esqueleto. La función
createDeck()del diagrama invoca a Gemini 1.0 Pro para generar ideas de viñetas para una presentación en Presentaciones de Google.
Para cada herramienta, debes hacer lo siguiente:
- Determina si la respuesta de llamada a función de la API de Gemini solicita invocar esa herramienta en particular en un bloque
if...else. - Agrega la función real para implementar la funcionalidad de la herramienta.
- Declara la herramienta con la API de Gemini para que el modelo de Gemini sepa de su existencia y pueda devolver la respuesta correcta de la llamada a función.
8. Cómo configurar una reunión con Apps Script
Primero, automatizas la configuración de una reunión en el Calendario de Google, pero también agregas una descripción, que es un resumen de un archivo en Google Drive.
Para hacerlo, sigue estos pasos:
- Descarga este archivo de texto, que es la copia de texto del blog de lanzamiento de Gemini 1.5 Pro.
- Sube el archivo a tu carpeta raíz en Google Drive.
- En el editor, crea un archivo
main.gsy, luego, agrega el siguiente código:
function main() {
const userQuery = "Set up a meeting at 10AM tomorrow with Helen to discuss the news in the Gemini-blog.txt file.";
var tool_use = callGeminiWithTools(userQuery, WORKSPACE_TOOLS);
Logger.log(tool_use);
if(tool_use['name'] == "setupMeeting") {
setupMeeting(tool_use['args']['time'], tool_use['args']['recipient'], tool_use['args']['filename']);
Logger.log("Your meeting has been set up.");
}
else
Logger.log("no proper tool found");
}
Aquí, invocas la capacidad de llamada a funciones de la API de Gemini. A continuación, debes definir la función de la herramienta.
- A la izquierda del editor, junto a Servicios, haz clic en + Agregar un servicio > API de Calendar de Google > Agregar. Esto habilita el servicio avanzado de Google Calendar, que necesitarás usar para algunas APIs avanzadas más adelante.

- En el archivo
utils.gs, agrega el siguiente código:
function attachFileToMeeting(event, file, fileName) {
// Get the iCal ID for the event.
const iCalEventId = event.getId();
// Log the ID and title for debugging.
console.log(`iCal event ID: ${iCalEventId}`);
console.log(`event Title: ${event.getTitle()}`);
// Set up the options for listing the event with the advanced Google Calendar service.
const options = {
iCalUID: iCalEventId,
};
// Use the primary calendar as the calendar ID to list events.
const calendarId = 'primary';
// Use the advanced Google Calendar service to list the event.
const calEvents = Calendar.Events.list(calendarId, options);
// Get the Calendar ID used by the advanced Google Calendar service.
const eventId = calEvents.items[0].id;
// Get the file URL for the attachment.
const fileUrl = file.getUrl();
// Set up the patch options to add the file.
var patch = {
attachments: [{
'fileUrl': fileUrl,
'title': fileName
}]
};
// Patch the event to add the file as an attachment.
Calendar.Events.patch(patch, 'primary', eventId, {"supportsAttachments": true});
}
function setupMeeting(time, recipient, filename) {
const files = DriveApp.getFilesByName(filename);
const file = files.next();
const blogContent = file.getAs("text/*").getDataAsString();
var geminiOutput = callGemini("Give me a really short title of this blog and a summary with less than three sentences. Please return the result as a JSON with two fields: title and summary. \n" + blogContent);
// The Gemini model likes to enclose the JSON with ```json and ```
geminiOutput = JSON.parse(geminiOutput.replace(/```(?:json|)/g, ""));
const title = geminiOutput['title'];
const fileSummary = geminiOutput['summary'];
const event = CalendarApp.getDefaultCalendar().createEventFromDescription(`meet ${recipient} at ${time} to discuss "${title}"`);
event.setDescription(fileSummary);
attachFileToMeeting(event, file, filename);
}
Este código hace lo siguiente:
- La función
setupMeeting()recorre tu Google Drive y encuentra el archivoGemini-blog.txt. La llamada a la función de la API de Gemini devuelve automáticamente este nombre de archivo en el paso 3. - La función
setupMeeting()llama a la API de Gemini para resumir el contenido del archivo, configura una reunión con CalendarApp usando una descripción de formato libre y agrega el resumen a la reunión. - La función
setupMeeting()llama a la funciónattachFileToMeeting()para usar el servicio avanzado de Calendario de Google y adjuntar el archivo del blog a la reunión.
- En la parte superior del archivo
utils.gs, agrega el siguiente código:
const WORKSPACE_TOOLS = {
"function_declarations": [
{
"name": "setupMeeting",
"description": "Sets up a meeting in Google Calendar.",
"parameters": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the meeting."
},
"recipient": {
"type": "string",
"description": "The name of the recipient."
},
"filename": {
"type": "string",
"description": "The name of the file."
},
},
"required": [
"time",
"recipient",
"filename"
]
}
},
// You add tools here.
]
};
- En el editor, vuelve al archivo
main.gsy haz clic en
. - Si Google Workspace te solicita permiso para ejecutar la secuencia de comandos, haz clic en Aceptar.
En unos segundos, el registro de ejecución mostrará un mensaje que te indicará que se configuró la reunión.
- En el Calendario de Google, busca la reunión con el resumen y el archivo adjunto.

9. Crea el borrador de un correo electrónico con Apps Script
A continuación, automatizarás la creación de un borrador de correo electrónico en Gmail. A continuación, se presenta la situación: Supongamos que realizas análisis de datos en Hojas de cálculo de Google. Colocas todos los números en su lugar y creas un gráfico. Quieres usar la API de Gemini Pro Vision para redactar un correo electrónico basado en el gráfico.
Para hacerlo, sigue estos pasos:
- Abre esta hoja y haz clic en Archivo -> Crear una copia.
- En el cuadro de texto Nombre del diálogo Copiar documento, reemplaza el nombre predeterminado
Copy of CollegeExpensesporCollegeExpenses. - En el archivo
main.gs, reemplaza la consulta del usuario anterior por una nueva y, luego, agrega el siguiente código a la sentenciaif...else:
function main() {
// const userQuery = "Set up a meeting at 5PM with Helen to discuss the news in the Gemini-1.5-blog.txt file.";
const userQuery = "Draft an email for Mary with insights from the chart in the CollegeExpenses sheet.";
if(...) {...}
// Add this code
else if(tool_use['name'] == "draftEmail") {
draftEmail(tool_use['args']['sheet_name'], tool_use['args']['recipient']);
Logger.log("Check your Gmail to review the draft");
}
else {...}
}
- En el archivo
utils.gs, agrega el siguiente código:
function draftEmail(sheet_name, recipient) {
const prompt = `Compose the email body for ${recipient} with your insights for this chart. Use information in this chart only and do not do historical comparisons. Be concise.`;
var files = DriveApp.getFilesByName(sheet_name);
var sheet = SpreadsheetApp.openById(files.next().getId()).getSheetByName("Sheet1");
var expenseChart = sheet.getCharts()[0];
var chartFile = DriveApp.createFile(expenseChart.getBlob().setName("ExpenseChart.png"));
var emailBody = callGeminiProVision(prompt, expenseChart);
GmailApp.createDraft(recipient+"@demo-email-provider.com", "College expenses", emailBody, {
attachments: [chartFile.getAs(MimeType.PNG)],
name: 'myname'
});
}
Esta función recupera el gráfico de gastos universitarios de la hoja y lo envía a Gemini Pro Vision para que cree el borrador del correo electrónico. Gemini Pro Vision extrae información del gráfico y redacta el cuerpo del correo electrónico en tu nombre.
- En el archivo
utils.gs, agrega el siguiente código al objetoWORKSPACE_TOOLSdespués del comentarioYou add tools here:
WORKSPACE_TOOLS = {
"function_declarations": [
// You add tools here.
{
"name": "draftEmail",
"description": "Write an email by analyzing data or charts in a Google Sheets file.",
"parameters": {
"type": "object",
"properties": {
"sheet_name": {
"type": "string",
"description": "The name of the sheet to analyze."
},
"recipient": {
"type": "string",
"description": "The name of the recipient."
},
},
"required": [
"sheet_name",
"recipient"
]
}
},
]
};
- En el editor, vuelve al archivo
main.gsy, luego, haz clic en
. - Después de 10 a 20 segundos, abre Gmail. Deberías ver un borrador de correo electrónico como este:
Puedes revisar el borrador del correo electrónico antes de enviarlo. Gemini Pro Vision escribe el correo electrónico por completo después de que le das una instrucción breve y el gráfico.
10. Crea una presentación esqueleto con Apps Script
A continuación, automatizarás la creación de una presentación esqueleto en Presentaciones de Google con Apps Script.
Para hacerlo, sigue estos pasos:
- En el archivo
main.gs, reemplaza la consulta del usuario anterior por una nueva y agrega el siguiente código a la sentenciaif...else:
function main() {
// const userQuery = "Draft an email for Mary with insights from the chart in the CollegeExpenses sheet.";
const userQuery = "Help me put together a deck about water conservation.";
if(...) {...}
// Add this code
else if(tool_use['name'] == 'createDeck') {
deckURL = createDeck(tool_use['args']['topic']);
Logger.log("Deck URL: " + deckURL);
}
else {...}
}
- En el archivo
utils.gs, agrega el siguiente código:
function createDeck(topic) {
const prompt = `I'm preparing a ${NUM_SLIDES}-slide deck to discuss ${topic}. Please help me brainstorm and generate main bullet points for each slide. Keep the title of each slide short. Please produce the result as a valid JSON so that I can pass it to other APIs.`;
var geminiOutput = callGemini(prompt, 0.4);
// The Gemini model likes to enclose the JSON with ```json and ```
geminiOutput = geminiOutput.replace(/```(?:json|)/g, "");
const bulletPoints = JSON.parse(geminiOutput);
// Create a Google Slides presentation.
const presentation = SlidesApp.create("My New Presentation");
// Set up the opening slide.
var slide = presentation.getSlides()[0];
var shapes = slide.getShapes();
shapes[0].getText().setText(topic);
var body;
for (var i = 0; i < NUM_SLIDES; i++) {
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.TITLE_AND_BODY);
shapes = slide.getShapes();
// Set title.
shapes[0].getText().setText(bulletPoints['slides'][i]['title']);
// Set body.
body = "";
for (var j = 0; j < bulletPoints['slides'][i]['bullets'].length; j++) {
body += '* ' + bulletPoints['slides'][i]['bullets'][j] + '\n';
}
shapes[1].getText().setText(body);
}
return presentation.getUrl();
}
Esta función llama a la API de Gemini para generar ideas sobre un tema en particular y devolver los viñetas en el formato
de JSON y, luego, usa Apps Script para completar una presentación de esqueleto.
- En el archivo
utils.gs, agrega el siguiente código al objetoWORKSPACE_TOOLSdespués del comentarioYou add tools here:
WORKSPACE_TOOLS = {
"function_declarations": [
// You add tools here.
{
"name": "createDeck",
"description": "Build a simple presentation deck with Google Slides and return the URL.",
"parameters": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The topic that the presentation is about."
},
},
"required": [
"topic"
]
}
},
]
};
- En la parte superior del archivo
utils.gs, define la siguiente constante:
const NUM_SLIDES = 3;
Es la cantidad de diapositivas que crea el modelo de Gemini además de la diapositiva de apertura.
- En el editor, vuelve al archivo
main.gsy, luego, haz clic en
. Luego de unos segundos, verás una URL de presentación en el registro de ejecución. - Usa tu navegador para abrir la URL. Deberías ver una presentación de esqueleto con viñetas.

11. Ideas para explorar
Además de estas tres integraciones, puedes explorar las siguientes ideas:
- Crea un chatbot en Google Chat. Uno de los casos de uso más populares de los modelos de lenguaje grandes (LLM) es la creación de chatbots. Con la API de Gemini, es fácil compilar un chatbot para Google Chat. Para obtener más información, consulta la API de Google Chat y el codelab Compila apps para Google Chat con Gemini.
- Generación mejorada por recuperación (RAG) con tus propios datos en Google Drive o Keep En este codelab, solo usarás un archivo de texto para el resumen. Sin embargo, también puedes usar el contenido de tu Google Drive y Keep personales, como notas, PDFs e imágenes, con la API de Gemini, una base de datos vectoriales y, de manera opcional, una herramienta de orquestación, como LangChain, para realizar la recuperación y generación con base en datos y personalizar la respuesta del modelo según tus datos.
- Usar la capacidad de llamada a funciones de varios turnos de la API de Gemini Las llamadas a funciones de la API de Gemini no se limitan a un solo turno, y puedes usar las llamadas a funciones de varios turnos para tareas aún más complejas.
- Ve más allá de Google Workspace. Ahora que sabes cómo integrar la API de Gemini a Google Workspace, puedes ir más allá de Google Workspace y aprovechar otras APIs del mundo.
12. Felicitaciones
Aprendiste sobre las capacidades multimodales y las llamadas a funciones de la API de Gemini. Los usaste para automatizar algunas tareas de Google Workspace con Apps Script.