Backend-Module bieten eine Infrastruktur für die Verarbeitung großer Mengen von funktionsbezogenen Nachrichten und die Interaktion mit der Benutzeroberfläche des Kundenservicemitarbeiter-Desktops. In dieser Anleitung wird beschrieben, wie Sie Backend-Module in Ihr Agentsystem einbinden.
Weitere Informationen zu Konzepten und Struktur von Hintergrundmodulen finden Sie in der Dokumentation Grundlagen zu Backend-Modulen.
Vorbereitung
- Wenn Sie sie noch nicht konfiguriert haben, installieren Sie die Google Cloud CLI.
- Erstellen Sie für jede Art von Ereignisbenachrichtigung, die Sie von Dialogflow benötigen, ein Cloud Pub/Sub-Thema. Notieren Sie sich die Themen-ID und den Themennamen für die spätere Backend-Bereitstellung.
- Konfigurieren Sie Ihr Unterhaltungsprofil mit Pub/Sub-Themen in der Agent Assist Console.
Automatisierte Bereitstellung
Die Bereitstellung kann durch ein Google Cloud -Automatisierungsskript oder Terraform automatisiert werden.
Automatisierungsskript
Weitere Informationen finden Sie unter ./deploy.sh.
Terraform-Änderungen anwenden
Sie können die Bereitstellung mit einem Automatisierungsskript für die gcloud CLI oder mit Terraform automatisieren. Führen Sie die folgenden Schritte aus, bevor Sie Terraform-Änderungen anwenden.
- Weisen Sie Ihrem Konto die folgenden IAM-Rollen zu:
Project IAM Admin
(roles/resourcemanager.projectIamAdmin)Service Usage Admin
(roles/serviceusage.serviceUsageAdmin)Service Account Admin
(roles/iam.serviceAccountAdmin)Service Account User
(roles/iam.serviceAccountUser)Pub/Sub Admin
(roles/pubsub.admin)Secret Manager Admin
(roles/secretmanager.admin)Cloud Build Editor
(roles/cloudbuild.builds.editor)Artifact Registry Administrator
(roles/artifactregistry.admin)Storage Admin
(roles/storage.admin)Cloud Run Admin
(roles/run.admin)Cloud Memorystore Redis Admin
(roles/redis.admin)Serverless VPC Access Admin
(roles/vpcaccess.admin)
- Erstellen Sie Images für den UI-Connector und den Cloud Pub/Sub-Interceptor und notieren Sie sich den Namen des Images.
- Führen Sie für den UI-Connector den folgenden Befehl im Ordner
./ui-connector
aus.$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/aa-integration-backend/ui-connector
- Führen Sie für Cloud Pub/Sub Interceptor den folgenden Befehl im Ordner
./cloud-pubsub-interceptor
aus.$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/aa-integration-backend/cloud-pubsub-interceptor
- Führen Sie für den UI-Connector den folgenden Befehl im Ordner
- Erstellen Sie mit dem folgenden Befehl einen Cloud Storage-Bucket zum Speichern des Terraform-Zustands und aktualisieren Sie den Backend-Bucket-Wert unter
/terraform/backend.tf
.GCP_PROJECT_ID=$(gcloud config get-value project) # Create the Cloud storage bucket gcloud storage buckets create gs://${GCP_PROJECT_ID}-tfstate # Enable Object Versioning to keep the history of your deployments gcloud storage buckets update gs://${GCP_PROJECT_ID}-tfstate --versioning
- Exportieren Sie den Wert der erforderlichen Terraform-Variablen
gcp_project_id
,ui_connector_docker_image
undcloud_pubsub_interceptor_docker_image
. Beispiel: export TF_VAR_gcp_project_id='you-gcp-project-id'. Alternativ können Sie die Werte auch direkt in/terraform/variables.tf
eingeben. - Passen Sie die Authentifizierungsmethode an, indem Sie die
auth.check_auth()
-Methode unter/ui-connector/auth.py
ändern.
Wenn Sie diese Schritte mit Cloud Build automatisieren möchten, folgen Sie dieser Anleitung und verwenden Sie die Build-Konfigurationsdatei ./terraform_cloudbuild.yaml. Damit Cloud Build die Dienste bereitstellen kann, müssen Sie dem Cloud Build-Dienstkonto die in Schritt 1 aufgeführten IAM-Rollen zuweisen.
Manuelle Bereitstellung
In den folgenden Schritten wird beschrieben, wie Sie Backend-Module manuell bereitstellen.
Umgebungsvariablen einrichten
Um die Befehle für die Bereitstellung zu vereinfachen, empfehlen wir, die folgenden nützlichen Umgebungsvariablen in Ihrer Shell festzulegen. Sie können die Variablen mit dem folgenden Beispielbefehl festlegen:
$ export GCP_PROJECT_ID='aa-integration-service'
Legen Sie die folgenden Umgebungsvariablen fest:
GCP_PROJECT_ID
: Die Projekt-ID Ihres Cloud Platform-Projekts, in dem sich die zugehörigen Ressourcen befinden. Beispiel:my-project
.SERVICE_REGION
: Der Standort oder die Region Ihrer Dienste und zugehörigen Google Cloud Ressourcen. Plattformressourcen. Beispiel:us-central1
.
Administratorkonto einrichten
Wir empfehlen, separate Google Cloud Konten für die Dienstverwaltung und die Laufzeitidentität zu verwenden. Die Dienstverwaltung wird hauptsächlich von Personen mit Google-Konten durchgeführt, während die Laufzeitidentität Cloud Run-Diensten Berechtigungen über Dienstkonten erteilt, um den Zugriff auf erforderliche Ressourcen zu ermöglichen.
Administratorkonto für Menschen vorbereiten
Wenn Sie ein Konto verwenden möchten, das bereits die Berechtigungen „Bearbeiter“ oder „Inhaber“ für Ihr Projekt hat, können Sie mit dem nächsten Abschnitt fortfahren.
Zum Verwalten der Backend-Infrastruktur richten Sie ein Administratorkonto ein und weisen Sie ihm die folgenden IAM-Rollen (Identity and Access Management) zu. Ihre Berechtigungen sind alle in den einfachen Rollen „Bearbeiter“ und „Inhaber“ enthalten.
roles/secretmanager.admin
(Secret Manager-Administrator): Verwalten Sie Secrets, die in Secret Manager für die JWT-Generierung und ‑Überprüfung gespeichert sind.roles/run.admin
(Cloud Run Admin): Cloud Run-Dienste bereitstellen und verwalten.roles/iam.serviceAccountUser
(Dienstkontonutzer): Erteilen Sie Cloud Run-Laufzeitdienstkonteniam.serviceAccounts.actAs
-Berechtigungen.roles/cloudbuild.builds.editor
(Cloud Build-Bearbeiter): Erstellen Sie Docker-Images für die Integrationsdienste mit Cloud Build.- Artifact Registry-Administrator: Speichert und verwaltet erstellte Docker-Images für die Integrationsdienste.
roles/pubsub.editor
(Cloud Pub/Sub Editor): Erstellen und verwalten Sie Cloud Pub/Sub-Themen und ‑Abos.roles/redis.admin
(Redis-Administrator): Erstellt und verwaltet Memorystore for Redis-Ressourcen.
Verwenden Sie den Google Cloud CLI-Befehl add-iam-policy-binding
, um einem menschlichen Konto IAM-Rollen zuzuweisen. Hier ein Beispielbefehl:
$ gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member='user:test-user@gmail.com' \ --role='roles/pubsub.editor'
Administratorkonto in gcloud festlegen
Ersetzen Sie $ADMIN_ACCOUNT
im folgenden Beispiel durch das Administratorkonto, das Sie verwenden möchten (z. B. myaccount@gmail.com
):
$ gcloud config set account $ADMIN_ACCOUNT
Dienstkonten einrichten
Cloud Run-Dienste oder -Jobs werden standardmäßig als Compute Engine-Standarddienstkonto ausgeführt. Anstatt die Standardeinstellung beizubehalten, empfehlen wir, jedem Cloud Run-Dienst eine dedizierte Identität zuzuweisen. Dazu weisen Sie ihm ein nutzerverwaltetes Dienstkonto mit den minimal erforderlichen Berechtigungen zu. Wenn Sie das Standarddienstkonto beibehalten möchten, können Sie mit dem nächsten Schritt Umgebungsvariablen festlegen fortfahren.
Zwei Dienstkonten für jede Cloud Run-Laufzeit erstellen
Ersetzen Sie den Wert von
$CONNECTOR_SERVICE_ACCOUNT_ID
und$INTERCEPTOR_SERVICE_ACCOUNT_ID
, falls erforderlich, und führen Sie die folgenden Befehle aus, um die Dienstkonten zu erstellen:$ export CONNECTOR_SERVICE_ACCOUNT_ID='aa-ui-connector' && gcloud iam service-accounts create $CONNECTOR_SERVICE_ACCOUNT_ID \ --description='Agent Assist integration - UI connector service account' \ --display-name='Agent Assist integration - UI connector' $ export INTERCEPTOR_SERVICE_ACCOUNT_ID='aa-pubsub-interceptor' && gcloud iam service-accounts create $INTERCEPTOR_SERVICE_ACCOUNT_ID \ --description='Agent Assist integration - Pubsub interceptor service account' \ --display-name='Agent Assist integration - Pubsub interceptor'
Verwenden Sie den folgenden Beispielbefehl, um den Dienstkonten für den UI-Connector und den Cloud Pub/Sub-Connector die folgenden Rollen zuzuweisen:
$ gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member='serviceAccount:$CONNECTOR_SERVICE_ACCOUNT_ID@$GCP_PROJECT_ID.iam.gserviceaccount.com' \ --role='roles/pubsub.editor'
Weisen Sie dem Dienstkonto des UI-Connectors die folgenden IAM-Rollen zu:
roles/redis.editor
roles/vpcaccess.user
roles/compute.viewer
roles/secretmanager.secretAccessor
roles/dialogflow.agentAssistClient
Weisen Sie dem Dienstkonto des Cloud Pub/Sub-Connectors die folgenden Rollen zu:
roles/redis.editor
roles/vpcaccess.user
roles/compute.viewer
Umgebungsvariablen festlegen
Legen Sie die Werte der folgenden Umgebungsvariablen auf die Dienstkonten fest, die Sie gerade erstellt haben, oder auf das Compute Engine-Standarddienstkonto in Ihrem Projekt.
CONNECTOR_SERVICE_ACCOUNT
: Das Dienstkonto für die Laufzeit des UI-Connectors. Beispiel:aa-ui-connector@my-project-id.iam.gserviceaccount.com
.INTERCEPTOR_SERVICE_ACCOUNT
: Das Dienstkonto für die Cloud Pub/Sub Interceptor-Laufzeit. Beispiel:aa-pubsub-interceptor@my-project-id.iam.gserviceaccount.com
.
Nutzerauthentifizierungsmethode anpassen
Das Code-Repository unterstützt sowohl Backend-Nutzer als auch Nutzer des Frontend-Moduls für Genesys Cloud und Twilio.
- Öffnen Sie im Code-Repository die Datei
ui_connector/auth.py
. Geben Sie den unterstützten Identitätsanbieter an, indem Sie die Umgebungsvariable
AUTH_OPTION
festlegen, oder implementieren Sie Ihre Authentifizierungsmethode mitauth.check_auth
.Standardmäßig ist
AUTH_OPTION
leer und keine Nutzer dürfen JWT beim UI Connector-Dienst registrieren. Unterstützte Werte:Salesforce
: Das Autorisierungstoken mit Salesforce OpenID Connect überprüfen. Erforderliche Umgebungsvariable: SALESFORCE_ORGANIZATION_ID.SalesforceLWC
: Überprüfen Sie ein Salesforce-OAuth-Clientanmeldedaten-Authentifizierungstoken mit demoauth2/userinfo
-REST-Endpunkt. Erforderliche Umgebungsvariablen: SALESFORCE_ORGANIZATION_ID, SALESFORCE_DOMAIN.GenesysCloud
: Überprüfen Sie das Autorisierungstoken mit der UsersAPI des Genesys SDK.Twilio
: Das Authentifizierungstoken für Twilio wird überprüft. Erforderliche Umgebungsvariable: TWILIO_FLEX_ENVIRONMENT.Skip
: Überspringen der Überprüfung des Authentifizierungstokens. Sie sollte nicht in der Produktion verwendet werden.
Beispiel:
$ export AUTH_OPTION='Salesforce'
Für jeden Tokentyp kann eine andere Validierungsmethode verwendet werden. Sie entscheiden, wie das Token validiert wird. Ohne Änderungen gibt
auth.check_auth
für jede Anfragefalse
zurück.
Zulässige Ursprünge anpassen (empfohlen)
Wenn Sie die Ursprünge einschränken möchten, die auf Ihren Dienst zugreifen können, ändern Sie den Wert der Variablen config.CORS_ALLOWED_ORIGINS
. Mit dem Standardwert *
kann jeder Ursprung Ihren Dienst aufrufen.
JWT-Secret-Schlüssel generieren und speichern
Damit der UI-Connector-Dienst sichere Authentifizierungstokens an den Client zurücksenden kann, muss er sie mit einem JWT-geheimen Schlüssel verschlüsseln. Der Wert des Schlüssels kann ein beliebiger String sein, sollte aber eindeutig und schwer zu erraten sein.
Dieser geheime Schlüssel wird in Secret Manager gespeichert.
Umgebungsvariable festlegen
JWT_SECRET_NAME
: Der Name des geheimen Schlüssels im Secret Manager. Das kann ein beliebiger Name sein. Empfohlener Wert:aa-integration-jwt-secret
.
Schlüssel generieren
Wir empfehlen, einen zufälligen Hash als JWT-Schlüssel zu generieren, damit er nicht von Angreifern erraten werden kann. Dazu können Sie python secrets verwenden, um sichere Zufallszahlen zu generieren.
# generate_secret_key.py import secrets jwt_secret_key = secrets.token_bytes(16) print(jwt_secret_key) # Output example: b'L\x9b\xd6i4\xc3\x1d\x95\xe3\xf78z\xdda\x97\xec'
Schlüssel in Secret Manager speichern
Ersetzen Sie im folgenden Beispielbefehl my_key
durch den geheimen Schlüssel, den Sie verwenden möchten.
$ python generate_secret_key.py | gcloud secrets create $JWT_SECRET_NAME --data-file=- \ --replication-policy=user-managed --locations=$SERVICE_REGION
Memorystore for Redis einrichten
Für die Einrichtung von Redis benötigen Sie die folgenden Umgebungsvariablen:
VPC_CONNECTOR_NAME
: Der Name Ihres Connectors für serverlosen VPC-Zugriff zum Verbinden von Cloud Run-Diensten mit Memorystore for Redis. Empfohlener Wert:aa-integration-vpc
.VPC_NETWORK
: Das VPC-Netzwerk, an das der Connector für Serverloser VPC-Zugriff angehängt wird. Der Wert solltedefault
sein, wenn Sie keine VPC für Ihr Google Cloud Projekt einrichten.VPC_SUBNET
: Der Name des autorisierten VPC-Netzwerk, an das Ihre Redis-Instanz angehängt ist. Der Wert solltedefault
sein, wenn Sie die VPC-Netzwerkeinstellungen nicht angepasst haben.REDIS_IP_RANGE
: Ein nicht reserviertes internes IP-Netzwerk für Ihren Connector für Serverloser VPC-Zugriff. Es ist nicht zugewiesener Speicherplatz in einem Umfang von/28
erforderlich. Empfohlener Wert:10.8.0.0/28
(dieser Wert sollte für die meisten neuen Projekte funktionieren).REDIS_INSTANCE_ID
: Ein Name für Ihre Redis-Instanz. Empfohlener Wert:aa-integration-redis
.
Redis-Instanz in der Region Ihrer Cloud Run-Dienste erstellen
Führen Sie dazu diesen Befehl aus:
$ gcloud redis instances create $REDIS_INSTANCE_ID --size=5 --region=$SERVICE_REGION
Sie können über Cloud Run mithilfe von Direct Egress oder serverlosem VPC-Zugriff eine Verbindung zu einer Redis-Instanz herstellen.
Connector für Serverloser VPC-Zugriff erstellen {:#create-svpca-connector} (Optional)
Das ist jetzt optional, wenn Kunden „Direct Egress“ auswählen. Wenn Sie den Serverloser VPC-Zugriff auswählen, müssen Sie einen Connector für Serverloser VPC-Zugriff erstellen. Weitere Informationen zu diesem Schritt finden Sie im Cloud Run-Tutorial.
Prüfen Sie, ob die Serverless VPC Access API für Ihr Projekt aktiviert ist:
$ gcloud services enable vpcaccess.googleapis.com
Erstellen Sie einen Connector für Serverloser VPC-Zugriff mit einem benutzerdefinierten IP-Bereich:
$ gcloud compute networks vpc-access connectors create $VPC_CONNECTOR_NAME \ --network $VPC_NETWORK \ --region $SERVICE_REGION \ --range $REDIS_IP_RANGE
Redis-Host und Redis-Port als Umgebungsvariablen speichern
- Legen Sie die IP-Adresse Ihrer Redis-Instanz auf die Umgebungsvariable
REDIS_HOST
fest. - Legen Sie die Portnummer Ihrer Redis-Instanz auf die Umgebungsvariable
REDIS_PORT
fest.
UI-Connector-Dienst bereitstellen
Für den UI-Connector-Dienst benötigen Sie die folgenden Umgebungsvariablen:
CONNECTOR_SERVICE_NAME
: Der Cloud Run-Dienstname Ihres UI-Connectors. Empfohlener Wert:ui-connector
.CONNECTOR_IMAGE_NAME
: Der Bildname Ihres UI Connector-Dienstes. Sie kann mitCONNECTOR_SERVICE_NAME
identisch sein. Empfohlener Wert:ui-connector
.
Docker-Image erstellen
Führen Sie im Ordner /ui-connector
den folgenden Befehl aus:
$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/$CONNECTOR_IMAGE_NAME
UI-Connector in Cloud Run bereitstellen
Führen Sie im Ordner /ui-connector
den folgenden Befehl aus:
- Wenn Sie Direct Egress für die Verbindung zu Redis verwenden.
$ gcloud run deploy $CONNECTOR_IMAGE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$CONNECTOR_IMAGE_NAME \ --platform managed \ --service-account=$CONNECTOR_SERVICE_ACCOUNT_NAME \ --allow-unauthenticated \ --timeout 3600 \ --region $SERVICE_REGION \ --network $VPC_NETWORK \ --subnet $VPC_SUBNET \ --clear-vpc-connector \ --min-instances=1 \ --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT,GCP_PROJECT_ID=$GCP_PROJECT_ID,AUTH_OPTION=$AUTH_OPTION \ --update-secrets=/secret/jwt_secret_key=${JWT_SECRET_NAME}:latest
- Wenn Sie einen erstellten Connector für Serverloser VPC-Zugriff für die Redis-Verbindung verwenden.
$ gcloud run deploy $CONNECTOR_IMAGE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$CONNECTOR_IMAGE_NAME \ --platform managed \ --service-account=$CONNECTOR_SERVICE_ACCOUNT_NAME \ --allow-unauthenticated \ --timeout 3600 \ --region $SERVICE_REGION \ --vpc-connector $VPC_CONNECTOR_NAME \ --clear-network \ --min-instances=1 \ --no-cpu-throttling \ --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT,GCP_PROJECT_ID=$GCP_PROJECT_ID,AUTH_OPTION=$AUTH_OPTION \ --update-secrets=/secret/jwt_secret_key=${JWT_SECRET_NAME}:latest
Notieren Sie sich die Dienst-URL für den bereitgestellten UI-Connector, die von Clients (Agent-Desktops) verwendet wird.
Cloud Pub/Sub-Interceptor-Dienst bereitstellen
Für den Pub/Sub-Interceptor-Dienst benötigen Sie die folgenden Umgebungsvariablen:
INTERCEPTOR_SERVICE_NAME
: Der Cloud Run-Dienstname Ihres Cloud Pub/Sub-Interceptors. Empfohlener Wert:cloud-pubsub-interceptor
.INTERCEPTOR_IMAGE_NAME
: Der Bildname Ihres Cloud Pub/Sub-Interceptor-Dienstes. Er kann mitINTERCEPTOR_SERVICE_NAME
identisch sein. Empfohlener Wert:cloud-pubsub-interceptor
.INTERCEPTOR_SERVICE_ACCOUNT_NAME
: Das Dienstkonto für die Cloud Pub/Sub-Interceptor-Laufzeit.
Docker-Image erstellen
Führen Sie im Ordner /cloud-pubsub-interceptor
den folgenden Befehl aus:
$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/$INTERCEPTOR_IMAGE_NAME
Pub/Sub-Interceptor in Cloud Run bereitstellen
Führen Sie im Ordner /cloud-pubsub-interceptor
den folgenden Befehl aus:
- Wenn Sie Direct Egress für die Verbindung zu Redis verwenden.
$ gcloud run deploy $INTERCEPTOR_SERVICE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$INTERCEPTOR_IMAGE_NAME \ --platform managed \ --service-account=$INTERCEPTOR_SERVICE_ACCOUNT_NAME \ --region $SERVICE_REGION \ --network $VPC_NETWORK \ --subnet $VPC_SUBNET \ --clear-vpc-connector \ --ingress=internal \ --min-instances=1 \ --no-cpu-throttling \ # You can also add LOGGING_FILE here to specify the logging file path on Cloud Run. --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT
- Wenn Sie einen erstellten Connector für Serverloser VPC-Zugriff für die Redis-Verbindung verwenden.
$ gcloud run deploy $INTERCEPTOR_SERVICE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$INTERCEPTOR_IMAGE_NAME \ --platform managed \ --service-account=$INTERCEPTOR_SERVICE_ACCOUNT_NAME \ --region $SERVICE_REGION \ --vpc-connector $VPC_CONNECTOR_NAME \ --clear-network \ --ingress=internal \ --min-instances=1 \ # You can also add LOGGING_FILE here to specify the logging file path on Cloud Run. --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT
Bereitgestellte URL speichern
Legen Sie die bereitgestellte URL als Umgebungsvariable INTERCEPTOR_SERVICE_URL
fest.
Cloud Pub/Sub-Abos konfigurieren
Cloud Pub/Sub-Abos verwenden Folgendes:
- Themen
- Unterhaltungsprofil
- Dienstkonto
- Dienstkontoberechtigung für Interceptor-Dienst
Cloud Pub/Sub-Themen erstellen
Erstellen Sie ein Cloud Pub/Sub-Thema für jede Art von Ereignisbenachrichtigung, die Sie von Dialogflow benötigen. Die verfügbaren Benachrichtigungstypen für Ereignisse sind:
- Neue Vorschlagsereignisse: Ereignisse, die gesendet werden, wenn neue Agent Assist-Vorschläge verfügbar sind, z. B. neue Smart Reply-Vorschläge als Reaktion auf eine Äußerung des Kunden.
- Ereignisse für neue Nachrichten: Ereignisse, die gesendet werden, wenn eine neue Äußerung von einem Kundenservicemitarbeiter oder Kunden erkannt wird (z. B. wenn der Kunde
Hi
sagt). - Neue Ereignisse für den Unterhaltungslebenszyklus: Ereignisse, die für bestimmte Änderungen des Unterhaltungslebenszyklus gesendet werden, z. B. wenn eine Unterhaltung begonnen oder abgeschlossen wird.
- Benachrichtigungsereignisse für neue Erkennungsergebnisse: Ereignisse, die gesendet werden, wenn ein Zwischen-Transkript von einem Kundenservicemitarbeiter oder Kunden erkannt wird (z. B. wenn der Kunde
Hi, how can I help you?
sagt, wird ein Zwischen-TranskriptHi how can
erstellt, während der Kunde spricht).
Notieren Sie sich die Themen-ID und den Namen des Themas für die spätere Backend-Bereitstellung.
Unterhaltungsprofil konfigurieren
Konfigurieren Sie ein Konversationsprofil mit den Cloud Pub/Sub-Themen, die Sie im vorherigen Schritt erstellt haben.
- Wenn Sie ein neues Konversationsprofil erstellen, wählen Sie Pub/Sub-Benachrichtigungen und dann Pub/Sub-Benachrichtigungen aktivieren aus. Nach der Aktivierung können Sie die Kästchen neben den Benachrichtigungstypen ankreuzen, die Sie aktivieren möchten, und die Themen-ID für das zugehörige Cloud Pub/Sub-Thema der Benachrichtigung eingeben.
- Wählen Sie für jedes Thema
JSON
als Nachrichtenformat aus.
Dienstkonto für die Pub/Sub-Aboidentität erstellen
Erstellen Sie mit dem folgenden Befehl ein Dienstkonto, das die Pub/Sub-Abonnementidentität darstellt:
$ gcloud iam service-accounts create cloud-run-pubsub-invoker \ --display-name "Cloud Run Pub/Sub Invoker"
Gewähren Sie dem Dienstkonto die Berechtigung zum Aufrufen Ihres Interceptor-Dienstes.
Führen Sie dazu diesen Befehl aus:
$ gcloud run services add-iam-policy-binding $INTERCEPTOR_SERVICE_NAME \ --member=serviceAccount:cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com \ --role=roles/run.invoker
Cloud Pub/Sub-Abos für Themen erstellen
Für jedes Thema, das Sie erstellt haben, müssen Sie ein entsprechendes Cloud Pub/Sub-Abo erstellen.
Neue Ereignisse für Vorschläge
Ersetzen Sie your-new-suggestion-topic-id
durch das Cloud Pub/Sub-Thema, das Sie für neue Vorschläge konfiguriert haben:
$ export TOPIC_ID='your-new-suggestion-topic-id' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/human-agent-assistant-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com
Neue Nachrichtenereignisse
Ersetzen Sie your-new-message-event-topic-id
durch das Cloud Pub/Sub-Thema, das Sie für neue Nachrichtenereignisse konfiguriert haben:
$ export TOPIC_ID='your-new-message-event-topic-id' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/new-message-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com
Lifecycle-Events für Unterhaltungen
Ersetzen Sie your-conversation-lifecycle-event-topic
durch das Cloud Pub/Sub-Thema, das Sie für neue Ereignisse im Konversationslebenszyklus konfiguriert haben:
$ export TOPIC_ID='your-conversation-lifecycle-event-topic' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/conversation-lifecycle-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com
Neue Benachrichtigungsereignisse für Erkennungsergebnisse
$ export TOPIC_ID='your-new-recognition-result-notification-event-topic' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/new-recognition-result-notification-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com