1. Zanim zaczniesz
Z tego ćwiczenia w programie dowiesz się, jak zautomatyzować zadania Google Workspace za pomocą funkcji wywoływania funkcji i wielomodalności dostępnych w Gemini API.
Wymagania wstępne
- Podstawowa znajomość języka Apps Script, JavaScript lub podobnego języka programowania
Czego się nauczysz
- Jak korzystać z funkcji wywoływania i wielomodalności interfejsu Gemini API.
- Jak połączyć kilka wywołań interfejsu Gemini API.
- Jak zautomatyzować zadania Google Workspace za pomocą interfejsu Gemini API.
Wymagania
- Przeglądarka.
- Konto Gmail. Możesz też mieć konto Google Workspace, na którym wdrożono określoną konfigurację interfejsu Gemini API.
- połączenie z regionu obsługiwanego przez interfejs Gemini API.
- Opcjonalnie: interfejs wiersza poleceń z programem
curl
do testowania bezpośrednich żądań do interfejsu API.
Pełny kod do tego ćwiczenia w programowaniu znajdziesz w poradniku interfejsu Gemini API Cookbook na GitHubie. Sprawdź go, jeśli potrzebujesz uzupełnionego kodu.
2. Konfigurowanie interfejsu Gemini API
Informacje o Gemini
Modele Gemini to największa i najbardziej wydajna rodzina modeli AI od Google. Aby korzystać z tych modeli w swoich aplikacjach, możesz użyć Gemini API. Możesz też wypróbować Gemini API w Google AI Studio – interfejsie internetowym API, który pozwala wypróbowywać prompty, ulepszać ustawienia modelu i dostrajać modele niestandardowe bez konieczności pisania kodu.
Uzyskaj klucz
- Aby korzystać z Gemini API, utwórz klucz interfejsu API w Google AI Studio.
Opcjonalnie: przetestuj klucz
Jeśli masz dostęp do wiersza poleceń z użyciem curl, dodaj klucz do pierwszego wiersza poniższego bloku, a następnie uruchom go w terminalu, by przetestować klucz interfejsu API.
export GOOGLE_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GOOGLE_API_KEY}"
Powinna być widoczna lista modeli w formacie JSON, takich jak modele/gemini-1.0-pro. To oznacza, że wszystko działa.
3. Opcjonalnie: wyślij żądanie do interfejsu Gemini API
W tym opcjonalnym kroku wysyłasz żądanie do interfejsu Gemini API, aby lepiej zrozumieć, jak działa generowanie treści, zanim dodasz je do aplikacji Apps Script.
Informacje o modelach
Gemini API udostępnia wiele modeli o różnych możliwościach i ograniczeniach. Każdy z modeli wraz z ich możliwościami znajdziesz na stronie modeli Gemini.
Składanie pierwszej prośby
Aby interfejs Gemini API wypełnił prompt tekstowy, utwórz żądanie JSON i wyślij je do punktu końcowego interfejsu API REST.
W tym celu wykonaj następujące czynności:
- W nowym pliku wpisz to żądanie JSON:
{
contents: [
{
parts: [
{ text: 'The most important aspects of a persuasive presentation are:' }
]
}
]
}
Żądanie JSON zawiera ten prompt: The most important aspects of a persuasive presentation are:
. Model wykona tę instrukcję i bezpośrednio przekaże Ci wynik.
Żądanie JSON ma do wypełnienia 3 pola najwyższego poziomu: contents
, generationConfig
i safetySettings
. Wymagana jest tylko wartość contents
. Inne oferują mechanizmy kontrolowania danych wyjściowych.
- Zapisz ten kod JSON w pliku
presentation.txt
, a następnie przekaż go bezpośrednio docurl
w ten sposób:
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}
W tym przykładzie ustawiasz w adresie URL te wartości:
v1beta
określa wersję interfejsu API.gemini-1.0-pro-latest
określa Gemini 1.0 Pro jako model i używa najnowszego zrzutu.generateContent
określa wywoływaną metodę API.
Wyniki powinny wyglądać podobnie do tych:
{
"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": [...]
}
}
Aby zachować czytelność, poniżej znajdziesz sformatowane regularnie dane wyjściowe terminala:
- Wiarygodność: odbiorcy muszą ufać, że jesteś ekspertem w danej dziedzinie i że masz w sobie dobre interesy.
- Jasność: przekaz musi być zrozumiały i zrozumiały. Unikaj żargonu i terminów technicznych, których odbiorcy mogą nie znać.
- Konkretność: użyj konkretnych przykładów i danych potwierdzających Twoje argumenty. Unikaj niejasnych lub ogólnych twierdzeń.
- Odwoływanie się do emocji: oprócz przedstawienia w kontekście logicznej strony widzów musisz też spróbować nawiązać z nimi więź emocjonalną. Wykorzystaj narrację, poczucie humoru i osobiste anegdoty, aby Twoje wypowiedzi były bardziej zapadające w pamięć i wciągające.
- Solidne zakończenie: zakończ prezentację silnym wezwaniem do działania. Powiedz odbiorcom, czego od nich oczekujesz i dlaczego jest to ważne.
Aby dowiedzieć się więcej o innych ustawieniach, takich jak generationConfig
i safetySettings
, zapoznaj się z komunikatami i przewodnikami dotyczącymi bezpieczeństwa.
4. Wywoływanie interfejsu Gemini API z poziomu Apps Script
- Otwórz script.new, a plik Apps Script
code.gs
zostanie utworzony automatycznie. - Najedź kursorem na plik
code.gs
i kliknij > Zmień nazwę. - Zmień nazwę pliku na
utils.gs
. - Usuń z niego funkcję
myFunction
, aby plik był pusty.
Dodaj klucz interfejsu API do projektu
- W menu nawigacyjnym kliknij Ustawienia projektu.
- W sekcji Właściwości skryptu kliknij Dodaj właściwość skryptu.
- W polu Usługa wpisz
GOOGLE_API_KEY
. - W polu Wartość wpisz klucz interfejsu API z Google AI Studio.
- Kliknij Zapisz właściwości skryptu.
- Wróć do edytora.
Dodawanie kodu interfejsu Gemini API
W pliku utils.gs
wykonaj te czynności:
Skonfiguruj klucz interfejsu API i punkt końcowy:
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}`;
- Dodaj tę funkcję, która wywołuje interfejs Gemini API za pomocą określonego promptu:
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;
}
- Dodaj tę funkcję, która ustawia prompt:
function testGemini() {
const prompt = "The best thing since sliced bread is";
const output = callGemini(prompt);
console.log(prompt, output);
}
Przetestuj
- Kliknij Zapisz.
- Wybierz
testGemini
na liście funkcji i kliknij . - Zaakceptuj niezbędne uprawnienia. Twój kod powinien się uruchomić. W dzienniku wykonywania powinny być widoczne dane wyjściowe konsoli wraz z wynikami.
Udało się!
5. Wywoływanie interfejsu Gemini API za pomocą obrazów
Jedną z najpotężniejszych funkcji rodziny Gemini jest obsługa multimodalnego wprowadzania danych, co oznacza, że możesz podać nie tylko tekst. W tej sekcji dodasz funkcję, która wywołuje interfejs Gemini API za pomocą obrazu.
- Na górze pliku
utils.gs
po dotychczasowej deklaracjiconst geminiEndpoint
dodaj ten wiersz:
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
Dodawanie kodu Gemini Vision
- Dodaj funkcję do pliku
utils.gs
, aby wywoływać ten nowo dodany punkt końcowy:
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;
}
- Dodaj tę funkcję testową:
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);
}
Ta funkcja wczytuje obraz testowy z internetu i przekazuje go do zdefiniowanej funkcji. Później podłączasz go do wykresu z arkusza kalkulacyjnego, więc jest to tylko test.
Przetestuj
- Zapisz i uruchom funkcję
testGeminiVision
, a następnie sprawdź dane wyjściowe.
6. Wywoływanie interfejsu Gemini API za pomocą narzędzi
Oprócz tekstu i obrazów w promptach możesz też zapewnić dostęp do narzędzi.
Dodaj kod obsługi narzędzia
- Dodaj do pliku
utils.gs
funkcję, która akceptuje specyfikację narzędzia:
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;
}
Więcej informacji o tym schemacie i dostępnych polach znajdziesz w dokumentacji interfejsu FunctionDeclaration
API.
Przetestuj
- Zdefiniuj narzędzie, za pomocą którego model może znaleźć aktualną datę i godzinę:
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);
}
Użyty tutaj format to schemat FunctionDeclaration
. W rzeczywistości nie wywołujesz funkcji daty i godziny. Otrzymasz tylko wskazówkę, że model zażądał wywołania funkcji. Wywołania funkcji obsługujesz w późniejszym kroku.
- Aby zobaczyć dane wyjściowe, zapisz i uruchom funkcję
testGeminiTools
.
7. Omówienie integracji demonstracyjnej z Google Workspace
Skoro już wiesz, jak działają wywoływanie funkcji, możesz łatwo rozszerzyć możliwości modelu Gemini na inne usługi. W kolejnych sekcjach dowiesz się, jak tworzyć integracje z usługami Google Workspace, takimi jak Dysk, Prezentacje i Arkusze Google. Oto uproszczony schemat:
Ogólnie rzecz biorąc, gdy pojawia się zapytanie użytkownika, wykorzystujesz wywołanie funkcji interfejsu Gemini API, aby określić, którego narzędzia użyć. Tworzysz 3 narzędzia, które:
- Skonfiguruj spotkanie. Funkcja
setupMeeting()
na diagramie wywołuje interfejs API Gemini 1.0 Pro, który podsumowuje bloga na Dysku Google i dodaje podsumowanie do nowo utworzonego spotkania w Kalendarzu Google. - Napisz wersję roboczą e-maila na podstawie statystyk z wykresu. Funkcja
draftEmail()
na diagramie wywołuje Gemini 1.0 Pro Vision, aby przeanalizować wykres w Arkuszach Google i na podstawie tej analizy utworzyć e-maila w Gmailu. - Utwórz prezentację szkieletową. Funkcja
createDeck()
na diagramie wywołuje Gemini 1.0 Pro w celu przeprowadzenia burzy mózgów na temat listy punktowanej w Prezentacjach Google.
W przypadku każdego narzędzia musisz wykonać te 3 czynności:
- Sprawdź, czy odpowiedź wywołania funkcji interfejsu Gemini API prosi o wywołanie tego konkretnego narzędzia w bloku
if...else
. - Dodaj rzeczywistą funkcję, aby wdrożyć funkcję narzędzia.
- Zadeklaruj narzędzie w interfejsie Gemini API, aby model Gemini wiedział o istnieniu tego narzędzia i mogł zwrócić prawidłową odpowiedź wywołującą funkcję.
8. Konfigurowanie spotkania za pomocą Apps Script
Najpierw automatyzujesz konfigurowanie spotkania w Kalendarzu Google, ale dodajesz też opis, który jest podsumowaniem pliku na Dysku Google.
W tym celu wykonaj następujące czynności:
- Pobierz plik tekstowy będący tekstem bloga o premierze Gemini 1.5 Pro.
- Prześlij plik do folderu głównego na Dysku Google.
- W edytorze utwórz plik
main.gs
, a następnie dodaj ten kod:
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");
}
Tutaj wywołujesz funkcję wywoływania funkcji interfejsu Gemini API. Następnie trzeba zdefiniować funkcję narzędzia.
- Po lewej stronie edytora, obok opcji Usługi kliknij + Dodaj usługę > Interfejs API Kalendarza Google > Dodaj. Spowoduje to włączenie zaawansowanej usługi Kalendarz Google, której później będzie trzeba użyć w przypadku niektórych zaawansowanych interfejsów API.
- W pliku
utils.gs
dodaj ten kod:
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);
}
Ten kod wykonuje takie zadania:
- Funkcja
setupMeeting()
przegląda Dysk Google i znajduje plikGemini-blog.txt
. Ta nazwa pliku jest automatycznie zwracana przez wywołanie funkcji interfejsu Gemini API w kroku 3. - Funkcja
setupMeeting()
wywołuje Gemini API, aby podsumować zawartość pliku, konfiguruje spotkanie w aplikacji Kalendarz za pomocą swobodnego opisu i dodaje podsumowanie do spotkania. - Funkcja
setupMeeting()
wywołuje funkcjęattachFileToMeeting()
, aby użyć zaawansowanej usługi Kalendarz Google do dołączenia pliku bloga do spotkania.
- Na początku pliku
utils.gs
dodaj ten kod:
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.
]
};
- W edytorze wróć do pliku
main.gs
i kliknij . - Jeśli Google Workspace poprosi o pozwolenie na uruchomienie skryptu, kliknij OK.
Po kilku sekundach dziennik wykonania wyświetli komunikat z informacją, że spotkanie zostało skonfigurowane.
- W Kalendarzu Google znajdź spotkanie z podsumowaniem i załącznikiem.
9. Napisz wersję roboczą e-maila za pomocą Apps Script
Następnie automatyzujesz tworzenie wersji roboczej e-maila w Gmailu. Oto scenariusz: załóżmy, że analizujesz dane w Arkuszach Google. Dodajesz wszystkie liczby do odpowiednich miejsc i tworzysz wykres. Chcesz użyć interfejsu Gemini Pro Vision API, aby utworzyć wersję roboczą e-maila na podstawie wykresu.
W tym celu wykonaj następujące czynności:
- Otwórz ten arkusz i kliknij Plik -> Utwórz kopię.
- W polu tekstowym Nazwa w oknie Kopiuj dokument zastąp domyślną nazwę
Copy of CollegeExpenses
tekstemCollegeExpenses
. - W pliku
main.gs
zastąp poprzednie zapytanie użytkownika nowym zapytaniem, a potem dodaj do instrukcjiif...else
ten kod:
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 {...}
}
- W pliku
utils.gs
dodaj ten kod:
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'
});
}
Ta funkcja pobiera wykres wydatków na studia z arkusza i wysyła go do Gemini Pro Vision w celu utworzenia wersji roboczej e-maila. Gemini Pro Vision wyodrębnia informacje z wykresu i tworzy w Twoim imieniu treść e-maila.
- W pliku
utils.gs
dodaj ten kod do obiektuWORKSPACE_TOOLS
po komentarzuYou 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"
]
}
},
]
};
- W edytorze wróć do pliku
main.gs
i kliknij . - Po upływie 10–20 sekund otwórz Gmaila. Zobaczysz wersję roboczą e-maila podobną do tej:
Przed wysłaniem e-maila możesz poprawić jego wersję roboczą. E-mail jest w całości tworzony przez Gemini Pro Vision po tym, jak przekażesz mu krótki prompt i wykres.
10. Utwórz szkieletową prezentację za pomocą Apps Script
Następnie automatyzujesz tworzenie szkieletowej prezentacji w Prezentacjach Google za pomocą języka Apps Script.
W tym celu wykonaj następujące czynności:
- W pliku
main.gs
zastąp poprzednie zapytanie użytkownika nowym zapytaniem i dodaj ten kod do instrukcjiif...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 {...}
}
- W pliku
utils.gs
dodaj ten kod:
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();
}
Ta funkcja wywołuje interfejs Gemini API, aby przeprowadzić burzę mózgów na określony temat, zwrócić listę punktowaną w formacie
w formacie JSON, a następnie użyć Apps Script do wypełnienia szkieletowej prezentacji.
- W pliku
utils.gs
dodaj ten kod do obiektuWORKSPACE_TOOLS
po komentarzuYou 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"
]
}
},
]
};
- Na górze pliku
utils.gs
określ tę stałą:
const NUM_SLIDES = 3;
To jest liczba slajdów tworzonych przez model Gemini oprócz slajdu otwierającego.
- W edytorze wróć do pliku
main.gs
i kliknij . Po kilku sekundach URL prezentacji pojawi się w dzienniku wykonywania. - Otwórz adres URL w przeglądarce. Zobaczysz talię szkieletową wypełnioną punktorami.
11. Pomysły do zbadania
Oprócz tych 3 integracji możesz zapoznać się z tymi pomysłami:
- Tworzenie czatbota w Google Chat Jednym z najpopularniejszych przypadków użycia dużych modeli językowych (LLM) jest tworzenie czatbota. Za pomocą interfejsu Gemini API możesz łatwo stworzyć czatbota na potrzeby Google Chat. Więcej informacji znajdziesz w materiałach dotyczących interfejsu Google Chat API oraz ćwiczeń z programowania na temat tworzenia aplikacji na potrzeby Google Chat z Gemini.
- Generowanie rozszerzone przez wyszukiwanie w zapisanych informacjach (RAG) z użyciem własnych danych na Dysku Google lub w Keep W ramach tego ćwiczenia w Codelabs do podsumowania używasz tylko jednego pliku tekstowego. Możesz też jednak wykorzystywać treści z osobistego Dysku Google lub Keep (np. notatki, pliki PDF i obrazy), korzystając z Gemini API, wektorowej bazy danych i opcjonalnie narzędzia do administrowania (np. LangChain), aby wykonać RAG i spersonalizować odpowiedź modelu na podstawie Twoich danych.
- Użyj funkcji wieloetapowego wywoływania funkcji interfejsu Gemini API. Wywoływanie funkcji interfejsu Gemini API nie jest ograniczone do jednej rundy. Możesz też wywoływać funkcje wieloetapowe w przypadku jeszcze bardziej złożonych zadań.
- Wyjdź poza Google Workspace Wiesz już, jak zintegrować interfejs Gemini API z Google Workspace. Teraz możesz wyjść poza Google Workspace i wykorzystać inne interfejsy API.
12. Gratulacje
Znasz już multimodalne możliwości i wywoływanie funkcji interfejsu Gemini API. Udało Ci się wykorzystać je do automatyzacji niektórych zadań w Google Workspace za pomocą Apps Script.