Répondre aux incidents avec Google Chat, Vertex AI et Apps Script
Ce tutoriel explique comment créer une application Google Chat qui
permet de gérer les incidents en temps réel. Pour répondre à un incident, l'application
crée et remplit un espace Chat, facilite la gestion des incidents
avec des messages, des commandes à barre oblique et des boîtes de dialogue, et utilise l'IA pour résumer
la réponse à l'incident dans un document Google Docs.
Un incident est un événement qui nécessite l'attention immédiate d'une équipe
de personnes à résoudre. Voici quelques exemples d'incidents:
Création d'une demande urgente dans un système de gestion de la relation client (CRM)
plate-forme, ce qui nécessite une équipe de service
pour collaborer sur une résolution.
Un système se déconnecte, ce qui alerte un groupe d'ingénieurs en fiabilité des sites (SRE).
afin qu'ils puissent collaborer et le remettre en ligne.
Un tremblement de terre de grande magnitude se produit et les services d'urgence ont besoin
pour coordonner leur réponse.
Pour les besoins de ce tutoriel, l'alerte d'incident démarre lorsqu'un utilisateur
signale l'incident en cliquant sur un bouton depuis une page Web. La page Web simule
un incident en demandant aux utilisateurs de saisir des informations de base: titre,
la description et les adresses e-mail des personnes interrogées.
Découvrez l'application Chat de gestion des incidents en action:
<ph type="x-smartling-placeholder"></ph>
Figure 1. Site Web sur lequel un utilisateur peut signaler un incident.
Figure 2 : Notification indiquant que l'espace Chat de l'incident a été créé
Figure 3 : l'espace Chat de gestion des incidents
Figure 4 : Résoudre l'incident à l'aide d'une commande à barre oblique.
Figure 5 : Boîte de dialogue de résolution des incidents
Figure 6 : Document Google Docs de résolution d'incident partagé dans l'espace
Figure 7 : Document Google Docs sur la résolution des incidents liés à l'IA.
Prérequis
Si vous avez besoin d'activer l'un de ces prérequis pour votre organisation, contactez
votre administrateur Google Workspace pour les activer:
Pour avoir
Annuaire
(partage des contacts) activée pour Google Workspace. L'appli d'incident utilise
l'annuaire pour consulter les informations sur les les coordonnées, comme son nom ;
et votre adresse e-mail. Les personnes chargées de la réponse aux incidents doivent être des utilisateurs disposant d'une adresse e-mail Google Chat
dans votre organisation Google Workspace.
Objectifs
Créez une application Chat qui répond aux incidents.
Voici comment aider les utilisateurs à faire face aux incidents:
<ph type="x-smartling-placeholder">
</ph>
Créer des espaces de réponse aux incidents
Publier des messages résumant les incidents et les réponses.
Favorisez la collaboration grâce aux
Fonctionnalités de l'application Chat
résumer des conversations et des solutions avec Vertex AI ;
Architecture
Le schéma suivant illustre l'architecture de Google Workspace
Ressources Google Cloud utilisées par la réponse aux incidents
Application Google Chat.
L'architecture montre comment la réponse aux incidents
L'application Google Chat traite un incident et sa résolution.
Un utilisateur commence un incident à partir d’un site Web externe hébergé sur
Apps Script.
Le site Web envoie une requête HTTP asynchrone au
Application Google Chat, également hébergée sur Apps Script.
L'application Google Chat de gestion des incidents traite la requête:
Un membre d'équipe est ajouté au service SDK Admin d'Apps Script
telles que l'ID utilisateur et l'adresse e-mail.
Avec un ensemble de requêtes HTTP envoyées à l'API Chat à l'aide de la méthode
le service de chat avancé d'Apps Script,
la gestion des incidents
L'application Google Chat crée un incident Chat
espace, le remplit avec des membres de l'équipe et envoie un message à l'espace.
Les membres de l'équipe discutent de l'incident dans l'espace Chat.
Un membre de l'équipe appelle une commande à barre oblique pour signaler une résolution au
l'incident.
Appel HTTP vers l'API Chat à l'aide d'Apps Script
Le service de chat avancé affiche la liste
messages de l'espace.
Vertex AI reçoit les messages listés et génère un résumé.
Le service DocumentApp d'Apps Script crée un
et ajoute le résumé de Vertex AI
document.
L'application Google Chat de gestion des incidents appelle
API Chat pour envoyer un message partageant un lien vers le résumé
Document Docs.
Préparer l'environnement
Cette section explique comment créer et configurer un projet Google Cloud pour le
Application Chat
L'authentification et l'autorisation permettent au
L'application Chat accède aux ressources dans Google Workspace et
Google Cloud pour traiter les incidents.
Dans ce tutoriel, vous allez publier l'application en interne. Vous pouvez donc utiliser un espace réservé.
des informations. Avant de publier l'application en externe, remplacez l'espace réservé
avec des informations réelles
pour l'écran de consentement.
Dans la console Google Cloud, accédez à
Menumenu>API et Services>Écran de consentement OAuth.
Sous Type d'utilisateur, sélectionnez Interne, puis cliquez sur Créer.
Dans le champ Nom de l'application, saisissez Incident Management.
Dans Adresse e-mail d'assistance utilisateur, sélectionnez votre adresse e-mail ou une adresse
Google Groupes.
Sous Coordonnées du développeur, saisissez votre adresse e-mail.
Cliquez sur Enregistrer et continuer.
Cliquez sur Ajouter ou supprimer des habilitations. Un panneau contenant la liste des champs d'application s'affiche
pour chaque API activée dans votre projet Cloud.
Sous Ajouter manuellement des champs d'application, collez les champs d'application suivants:
Consultez le récapitulatif d'enregistrement de l'application, puis cliquez sur Retour au tableau de bord.
Créer et déployer l'application Chat
Dans la section suivante, vous allez copier et mettre à jour
Projet Apps Script contenant toutes les applications
pour votre application Chat. Il n'est donc pas nécessaire de copier
et coller chaque fichier.
Certaines fonctions incluent des traits de soulignement à la fin de leur nom, comme
processSlashCommand_() de ChatApp.gs. Le trait de soulignement
masque la fonction
depuis la page Web d'initialisation de l'incident
lorsqu'il est ouvert dans un navigateur. Pour plus
pour en savoir plus, consultez
Fonctions privées.
Apps Script prend en charge deux types de fichiers : les scripts .gs et .html.
. Pour respecter cette prise en charge, le code JavaScript côté client de l'application est inclus
dans les balises <script /> et son code CSS est inclus dans les balises <style /> à l'intérieur
un fichier HTML.
Vous pouvez éventuellement afficher l'intégralité du projet sur GitHub.
Définit les constantes référencées par d'autres fichiers de code,
y compris l'ID de votre projet Cloud, l'ID d'emplacement Vertex AI et
pour fermer un incident.
Gère les événements d'interaction Chat, y compris
les messages, les clics sur les fiches,
les commandes à barre oblique et les boîtes de dialogue. Répond aux
Commande à barre oblique /closeIncident en ouvrant une boîte de dialogue pour rassembler les incidents
détails de la résolution. Lit les messages dans l'espace en appelant la méthode
spaces.messages.list de l'API Chat.
Récupère les ID utilisateur à l'aide du service d'annuaire du SDK Admin dans
Apps Script.
/**
* Responds to a MESSAGE event in Google Chat.
*
* This app only responds to a slash command with the ID 1 ("/closeIncident").
* It will respond to any other message with a simple "Hello" text message.
*
* @param {Object} event the event object from Google Chat
*/
function onMessage(event) {
if (event.message.slashCommand) {
return processSlashCommand_(event);
}
return { "text": "Hello from Incident Response app!" };
}
/**
* Responds to a CARD_CLICKED event in Google Chat.
*
* This app only responds to one kind of dialog (Close Incident).
*
* @param {Object} event the event object from Google Chat
*/
function onCardClick(event) {
if (event.isDialogEvent) {
if (event.dialogEventType == 'SUBMIT_DIALOG') {
return processSubmitDialog_(event);
}
return {
actionResponse: {
type: "DIALOG",
dialogAction: {
actionStatus: "OK"
}
}
};
}
}
/**
* Responds to a MESSAGE event with a Slash command in Google Chat.
*
* This app only responds to a slash command with the ID 1 ("/closeIncident")
* by returning a Dialog.
*
* @param {Object} event the event object from Google Chat
*/
function processSlashCommand_(event) {
if (event.message.slashCommand.commandId != CLOSE_INCIDENT_COMMAND_ID) {
return {
"text": "Command not recognized. Use the command `/closeIncident` to close the incident managed by this space."
};
}
const sections = [
{
header: "Close Incident",
widgets: [
{
textInput: {
label: "Please describe the incident resolution",
type: "MULTIPLE_LINE",
name: "description"
}
},
{
buttonList: {
buttons: [
{
text: "Close Incident",
onClick: {
action: {
function: "closeIncident"
}
}
}
]
}
}
]
}
];
return {
actionResponse: {
type: "DIALOG",
dialogAction: {
dialog: {
body: {
sections,
}
}
}
}
};
}
/**
* Responds to a CARD_CLICKED event with a Dialog submission in Google Chat.
*
* This app only responds to one kind of dialog (Close Incident).
* It creates a Doc with a summary of the incident information and posts a message
* to the space with a link to the Doc.
*
* @param {Object} event the event object from Google Chat
*/
function processSubmitDialog_(event) {
const resolution = event.common.formInputs.description[""].stringInputs.value[0];
const chatHistory = concatenateAllSpaceMessages_(event.space.name);
const chatSummary = summarizeChatHistory_(chatHistory);
const docUrl = createDoc_(event.space.displayName, resolution, chatHistory, chatSummary);
return {
actionResponse: {
type: "NEW_MESSAGE",
},
text: `Incident closed with the following resolution: ${resolution}\n\nHere is the automatically generated post-mortem:\n${docUrl}`
};
}
/**
* Lists all the messages in the Chat space, then concatenate all of them into
* a single text containing the full Chat history.
*
* For simplicity for this demo, it only fetches the first 100 messages.
*
* Messages with slash commands are filtered out, so the returned history will
* contain only the conversations between users and not app command invocations.
*
* @return {string} a text containing all the messages in the space in the format:
* Sender's name: Message
*/
function concatenateAllSpaceMessages_(spaceName) {
// Call Chat API method spaces.messages.list
const response = Chat.Spaces.Messages.list(spaceName, { 'pageSize': 100 });
const messages = response.messages;
// Fetch the display names of the message senders and returns a text
// concatenating all the messages.
let userMap = new Map();
return messages
.filter(message => message.slashCommand === undefined)
.map(message => `${getUserDisplayName_(userMap, message.sender.name)}: ${message.text}`)
.join('\n');
}
/**
* Obtains the display name of a user by using the Admin Directory API.
*
* The fetched display name is cached in the provided map, so we only call the API
* once per user.
*
* If the user does not have a display name, then the full name is used.
*
* @param {Map} userMap a map containing the display names previously fetched
* @param {string} userName the resource name of the user
* @return {string} the user's display name
*/
function getUserDisplayName_(userMap, userName) {
if (userMap.has(userName)) {
return userMap.get(userName);
}
let displayName = 'Unknown User';
try {
const user = AdminDirectory.Users.get(
userName.replace("users/", ""),
{ projection: 'BASIC', viewType: 'domain_public' });
displayName = user.name.displayName ? user.name.displayName : user.name.fullName;
} catch (e) {
// Ignore error if the API call fails (for example, because it's an
// out-of-domain user or Chat app)) and just use 'Unknown User'.
}
userMap.set(userName, displayName);
return displayName;
}
ChatSpaceCreator.gs
Reçoit les données de formulaire saisies par les utilisateurs concernant l'incident
d'initialisation, et l'utilise pour configurer un chat
en créant et en renseignant un espace, puis en publiant un message
l'incident.
/**
* Creates a space in Google Chat with the provided title and members, and posts an
* initial message to it.
*
* @param {Object} formData the data submitted by the user. It should contain the fields
* title, description, and users.
* @return {string} the resource name of the new space.
*/
function createChatSpace(formData) {
const users = formData.users.trim().length > 0 ? formData.users.split(',') : [];
const spaceName = setUpSpace_(formData.title, users);
addAppToSpace_(spaceName);
createMessage_(spaceName, formData.description);
return spaceName;
}
/**
* Creates a space in Google Chat with the provided display name and members.
*
* @return {string} the resource name of the new space.
*/
function setUpSpace_(displayName, users) {
const memberships = users.map(email => ({
member: {
name: `users/${email}`,
type: "HUMAN"
}
}));
const request = {
space: {
displayName: displayName,
spaceType: "SPACE",
externalUserAllowed: true
},
memberships: memberships
};
// Call Chat API method spaces.setup
const space = Chat.Spaces.setup(request);
return space.name;
}
/**
* Adds this Chat app to the space.
*
* @return {string} the resource name of the new membership.
*/
function addAppToSpace_(spaceName) {
const request = {
member: {
name: "users/app",
type: "BOT"
}
};
// Call Chat API method spaces.members.create
const membership = Chat.Spaces.Members.create(request, spaceName);
return membership.name;
}
/**
* Posts a text message to the space on behalf of the user.
*
* @return {string} the resource name of the new message.
*/
function createMessage_(spaceName, text) {
const request = {
text: text
};
// Call Chat API method spaces.messages.create
const message = Chat.Spaces.Messages.create(request, spaceName);
return message.name;
}
DocsApi.gs
Appelle l'API Google Docs pour créer un document Google Docs dans un
dans le Google Drive de l'utilisateur
et rédige un résumé des informations sur l'incident,
(créée dans VertexAiApi.gs) au document.
/**
* Creates a Doc in the user's Google Drive and writes a summary of the incident information to it.
*
* @param {string} title The title of the incident
* @param {string} resolution Incident resolution described by the user
* @param {string} chatHistory The whole Chat history be included in the document
* @param {string} chatSummary A summary of the Chat conversation to be included in the document
* @return {string} the URL of the created Doc
*/
function createDoc_(title, resolution, chatHistory, chatSummary) {
let doc = DocumentApp.create(title);
let body = doc.getBody();
body.appendParagraph(`Post-Mortem: ${title}`).setHeading(DocumentApp.ParagraphHeading.TITLE);
body.appendParagraph("Resolution").setHeading(DocumentApp.ParagraphHeading.HEADING1);
body.appendParagraph(resolution);
body.appendParagraph("Summary of the conversation").setHeading(DocumentApp.ParagraphHeading.HEADING1);
body.appendParagraph(chatSummary);
body.appendParagraph("Full Chat history").setHeading(DocumentApp.ParagraphHeading.HEADING1);
body.appendParagraph(chatHistory);
return doc.getUrl();
}
VertexAiApi.gs
Résume la conversation dans le chat
à l'aide de Vertex AI. Ce résumé est publié dans un espace
document dans DocsAPI.gs.
/**
* Summarizes a Chat conversation using the Vertex AI text prediction API.
*
* @param {string} chatHistory The Chat history that will be summarized.
* @return {string} The content from the text prediction response.
*/
function summarizeChatHistory_(chatHistory) {
const prompt =
"Summarize the following conversation between Engineers resolving an incident"
+ " in a few sentences. Use only the information from the conversation.\n\n"
+ chatHistory;
const request = {
instances: [
{ prompt: prompt }
],
parameters: {
temperature: 0.2,
maxOutputTokens: 256,
topK: 40,
topP: 0.95
}
}
const fetchOptions = {
method: 'POST',
headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() },
contentType: 'application/json',
payload: JSON.stringify(request)
}
const response = UrlFetchApp.fetch(
`https://${VERTEX_AI_LOCATION_ID}-aiplatform.googleapis.com/v1`
+ `/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION_ID}`
+ "/publishers/google/models/text-bison:predict",
fetchOptions);
const payload = JSON.parse(response.getContentText());
return payload.predictions[0].content;
}
WebController.gs
diffuse le site Web d'initialisation de l'incident.
/**
* Serves the web page from Index.html.
*/
function doGet() {
return HtmlService
.createTemplateFromFile('Index')
.evaluate();
}
/**
* Serves the web content from the specified filename.
*/
function include(filename) {
return HtmlService
.createHtmlOutputFromFile(filename)
.getContent();
}
/**
* Returns the email address of the user running the script.
*/
function getUserEmail() {
return Session.getActiveUser().getEmail();
}
Index.html
Code HTML constituant le site Web d'initialisation de l'incident.
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<?!= include('Stylesheet'); ?>
</head>
<body>
<div class="container">
<div class="content">
<h1>Incident Manager</h1>
<form id="incident-form" onsubmit="handleFormSubmit(this)">
<div id="form">
<p>
<label for="title">Incident title</label><br/>
<input type="text" name="title" id="title" />
</p>
<p>
<label for="users">Incident responders</label><br/>
<small>
Please enter a comma-separated list of email addresses of the users
that should be added to the space.
Do not include <?= getUserEmail() ?> as it will be added automatically.
</small><br/>
<input type="text" name="users" id="users" />
</p>
<p>
<label for="description">Initial message</label></br>
<small>This message will be posted after the space is created.</small><br/>
<textarea name="description" id="description"></textarea>
</p>
<p class="text-center">
<input type="submit" value="CREATE CHAT SPACE" />
</p>
</div>
<div id="output" class="hidden"></div>
<div id="clear" class="hidden">
<input type="reset" value="CREATE ANOTHER INCIDENT" onclick="onReset()" />
</div>
</form>
</div>
</div>
<?!= include('JavaScript'); ?>
</body>
</html>
JavaScript.html
Gère le comportement des formulaires, y compris les envois,
les erreurs et les effacer
pour le site Web d'initialisation de l'incident. Inclus
dans Index.html par la fonction include personnalisée de WebController.gs.
Cliquez sur Paramètres et utilitaires .
more_vert>Paramètres du projet.
Notez les valeurs des champs Numéro du projet et ID du projet. Toi
utilisez-les dans les sections suivantes.
Créer le projet Apps Script
Pour créer un projet Apps Script et l'associer à votre
Cloud:
Cliquez sur le bouton suivant pour ouvrir le projet Apps Script Répondre aux incidents avec Google Chat.
Ouvrir le projet
Cliquez sur info_outlineVue d'ensemble.
Sur la page "Vue d'ensemble", cliquez sur Créer une copie.
Nommez votre copie du projet Apps Script:
Cliquez sur Copie de Répondre aux incidents avec Google Chat.
Dans Titre du projet, saisissez Incident Management Chat app.
Cliquez sur Renommer.
Dans votre copie du projet Apps Script, accédez à Consts.gs
et remplacez YOUR_PROJECT_ID par l'ID de votre
Google Cloud.
Définir le projet Cloud du projet Apps Script
Dans votre projet Apps Script,
cliquez sur Paramètres du projet.
Sous Projet Google Cloud Platform (GCP), cliquez sur Changer de projet.
Dans Numéro de projet GCP, collez le numéro de votre projet Cloud.
Cliquez sur Définir un projet. Le projet Cloud et Apps Script
projet sont maintenant connectés.
Créer un déploiement Apps Script
Maintenant que tout le code est en place, déployez Apps Script
projet. Vous utilisez l'ID de déploiement lorsque vous configurez
Application de chat dans Google Cloud
Dans Apps Script, ouvrez le projet de l'application de gestion des incidents.
Si Module complémentaire et Application Web ne sont pas déjà sélectionnés, à côté de
Sélectionnez le type, cliquez sur les types de déploiement , puis sélectionnez Module complémentaire et Application Web.
Dans Description, saisissez une description pour cette version, par exemple
Complete version of incident management app
Dans Exécuter en tant que, sélectionnez Utilisateur accédant à l'application Web.
Sous Qui a accès, sélectionnez Tous les membres de votre organisation Workspace.
où "votre organisation Workspace" est le nom de votre
organisation Google Workspace.
Cliquez sur Déployer. Rapports Apps Script réussis
déploiement, et fournit un ID de déploiement et une URL pour l'incident
page Web d'initialisation.
Notez l'URL de l'application Web. Vous pourrez y accéder par la suite au début d'un incident.
Copiez l'ID de déploiement. Vous utilisez cet identifiant lorsque vous configurez
Application Chat dans la console Google Cloud
Cliquez sur OK.
Configurer l'application Chat dans la console Google Cloud
Cette section explique comment configurer l'API Google Chat dans la console Google Cloud
contenant des informations sur votre application Chat, y compris
ID du déploiement que vous venez de créer à partir de votre script Apps Script
projet.
Dans la console Google Cloud, cliquez sur Menu.
menu>Autres produits>Google Workspace>Bibliothèque de produits>API Google Chat>Gérer>Configuration.
Dans le champ Nom de l'application, saisissez Incident Management.
Dans le champ URL de l'avatar, saisissez https://developers.google.com/chat/images/quickstart-app-avatar.png.
Dans Description, saisissez Responds to incidents..
Activez l'option Activer les fonctionnalités interactives.
Sous Fonctionnalité, sélectionnez Recevoir des messages privés, Rejoindre des espaces et des conversations de groupe.
Sous Paramètres de connexion, sélectionnez Projet Apps Script.
Dans Deployment ID (ID de déploiement), collez l'ID de déploiement Apps Script.
que vous avez copiée précédemment depuis le projet Apps Script
le déploiement.
Enregistrez une commande à barre oblique que la commande
Utilisation complète d'une application Chat:
Sous Commandes à barre oblique, cliquez sur Ajouter une commande à barre oblique.
Dans le champ Nom, saisissez /closeIncident.
Dans le champ ID de commande, saisissez 1.
Dans Description, saisissez
Closes the incident being discussed in the space.
Sélectionnez Ouvre une boîte de dialogue.
Cliquez sur OK. La commande à barre oblique est enregistrée et répertoriée.
Sous Visibilité, sélectionnez
Rendre cette application Chat accessible à des personnes et des groupes spécifiques dans votre
domaine Workspace, puis saisissez votre adresse e-mail.
Sous Journaux, sélectionnez Consigner les erreurs dans Logging.
Cliquez sur Enregistrer. Un message indiquant que la configuration est enregistrée s'affiche,
prêts à être testés.
Tester l'application Chat
Pour tester l'application Chat de gestion des incidents, lancez une
de la page Web et vérifiez que l'application Chat
fonctionne comme prévu:
Accédez à l'URL de l'application Web de déploiement d'Apps Script.
Quand Apps Script demande l'autorisation d'accéder à vos données,
cliquez sur Examiner les autorisations, puis connectez-vous avec un compte Google approprié.
dans votre domaine Google Workspace, puis cliquez sur Allow (Autoriser).
La page Web d'initialisation de l'incident s'ouvre. Saisissez les informations relatives au test:
Dans le champ Titre de l'incident, saisissez The First Incident.
Si vous le souhaitez, dans Répondants aux incidents, saisissez les adresses e-mail
vos collègues de la réponse aux incidents. Il doit s'agir d'utilisateurs ayant
un compte Google Chat de votre organisation Google Workspace ; ou
la création d'un espace. Ne saisissez pas votre propre adresse e-mail, car elle est
automatiquement inclus.
Dans le champ Message initial, saisissez Testing the incident management Chat app..
Cliquez sur Créer un espace Chat. Un message creating space s'affiche.
Une fois l'espace créé, un message Space created! s'affiche. Cliquez sur
Ouvrir l'espace : cette option permet d'ouvrir l'espace dans Chat dans un nouvel onglet.
Si vous le souhaitez, vous et les autres personnes impliquées dans la gestion des incidents pouvez envoyer des messages dans le
espace. L'application résume ces messages à l'aide de Vertex AI et partage un
document rétrospectif.
Pour mettre fin à la réponse à l’incident et commencer le processus de résolution, dans le
Espace Chat, saisissez /closeIncident. Une gestion des incidents
s'ouvre.
Dans Fermer l'incident, saisissez une description pour la résolution de l'incident.
comme Test complete.
Cliquez sur Fermer l'incident.
L'application de gestion des incidents liste les messages de l'espace et les résume
avec Vertex AI, colle le résumé dans un document Google Docs et partage
dans l'espace.
Effectuer un nettoyage
Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud pour
utilisées dans ce tutoriel, nous vous recommandons de supprimer
Google Cloud.
Dans la console Google Cloud, accédez à la page Gérer les ressources. Cliquez sur
Menumenu>IAM et Administrateur>Gérer les ressources.
L'application de gestion des incidents s'authentifie avec les identifiants de l'utilisateur pour appeler des API
et à appeler des services Google Cloud, comme l'API Chat et l'API Vertex AI.
Cela signifie que l'utilisateur qui initialise un incident doit avoir accès à ces
services. Pour rendre l'application plus robuste, envisagez d'appeler l'API Vertex AI.
en tant que compte de service au lieu des identifiants de l'utilisateur appelant
la commande à barre oblique /closeIncident. Si vous avez besoin d'aide pour configurer un compte de service
pour l'API Vertex AI, consultez
Utilisez un compte de service personnalisé.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/09/02 (UTC).
[]
[]
{
"lastModified": "Dernière mise à jour le 2024/09/02 (UTC).",
"confidential": False
}