Informationen zu den unterstützten Connectors für Application Integration.

GenAI mit der Vertex AI-Aufgabe einbetten

Diese Beispielintegration enthält einen Ablauf, der als untergeordnete Integration für die Interaktion mit Google Cloud Vertex AI-Modellen verwendet werden kann. Bevor Sie das folgende Codebeispiel verwenden, müssen alle Voraussetzungen erfüllt sein.

Codebeispiel

{
  "triggerConfigs": [
    {
      "label": "API Trigger",
      "startTasks": [
        {
          "taskId": "1"
        }
      ],
      "properties": {
        "Trigger name": "vertex-ai-task_API_1"
      },
      "triggerType": "API",
      "triggerNumber": "1",
      "triggerId": "api_trigger/vertex-ai-task_API_1",
      "description": "As inputs, we are only adding TextPrompt and ModelId. You can set Model ID for different Google models, such as text-bison, chat-bison, etc.",
      "position": {
        "x": -210
      }
    }
  ],
  "taskConfigs": [
    {
      "task": "Vertex AI - Predict",
      "taskId": "4",
      "parameters": {
        "request": {
          "key": "request",
          "value": {
            "stringValue": "$`Task_4_request`$"
          }
        },
        "projectsId": {
          "key": "projectsId",
          "value": {
            "stringValue": "$ProjectId$"
          }
        },
        "endpoint": {
          "key": "endpoint",
          "value": {
            "stringValue": "$endpoint$"
          }
        },
        "locationsId": {
          "key": "locationsId",
          "value": {
            "stringValue": "$Region$"
          }
        },
        "response": {
          "key": "response",
          "value": {
            "stringArray": {
              "stringValues": [
                "$`Task_4_response`$"
              ]
            }
          }
        },
        "taskTemplateId": {
          "key": "taskTemplateId",
          "value": {
            "stringValue": "2b5513a2-f3f4-4ac6-918e-8ea55b53cbb8"
          }
        }
      },
      "nextTasks": [
        {
          "taskId": "3"
        }
      ],
      "taskExecutionStrategy": "WHEN_ALL_SUCCEED",
      "displayName": "Vertex AI - Predict (Preview)",
      "description": "This is the actual Vertex AI API call with the variables we\u0027ve previously setup. Notice that under authentication, you need to have a Service Account with Vertex AI Predict IAM permissions.",
      "taskTemplate": "Vertex AI - Predict",
      "externalTaskType": "NORMAL_TASK",
      "position": {
        "x": -208,
        "y": 256
      }
    },
    {
      "task": "FieldMappingTask",
      "taskId": "1",
      "parameters": {
        "FieldMappingConfigTaskParameterKey": {
          "key": "FieldMappingConfigTaskParameterKey",
          "value": {
            "jsonValue": "{\n  \"@type\": \"type.googleapis.com/enterprise.crm.eventbus.proto.FieldMappingConfig\",\n  \"mappedFields\": [{\n    \"inputField\": {\n      \"fieldType\": \"STRING_VALUE\",\n      \"transformExpression\": {\n        \"initialValue\": {\n          \"baseFunction\": {\n            \"functionType\": {\n              \"baseFunction\": {\n                \"functionName\": \"GET_PROJECT_ID\"\n              }\n            }\n          }\n        }\n      }\n    },\n    \"outputField\": {\n      \"referenceKey\": \"$ProjectId$\",\n      \"fieldType\": \"STRING_VALUE\",\n      \"cardinality\": \"OPTIONAL\"\n    }\n  }, {\n    \"inputField\": {\n      \"fieldType\": \"STRING_VALUE\",\n      \"transformExpression\": {\n        \"initialValue\": {\n          \"baseFunction\": {\n            \"functionType\": {\n              \"baseFunction\": {\n                \"functionName\": \"GET_REGION\"\n              }\n            }\n          }\n        }\n      }\n    },\n    \"outputField\": {\n      \"referenceKey\": \"$Region$\",\n      \"fieldType\": \"STRING_VALUE\",\n      \"cardinality\": \"OPTIONAL\"\n    }\n  }, {\n    \"inputField\": {\n      \"fieldType\": \"STRING_VALUE\",\n      \"transformExpression\": {\n        \"initialValue\": {\n          \"referenceValue\": \"$endpoint$\"\n        },\n        \"transformationFunctions\": [{\n          \"functionType\": {\n            \"stringFunction\": {\n              \"functionName\": \"CONCAT\"\n            }\n          },\n          \"parameters\": [{\n            \"initialValue\": {\n              \"referenceValue\": \"$ModelId$\"\n            }\n          }]\n        }]\n      }\n    },\n    \"outputField\": {\n      \"referenceKey\": \"$endpoint$\",\n      \"fieldType\": \"STRING_VALUE\",\n      \"cardinality\": \"OPTIONAL\"\n    }\n  }, {\n    \"inputField\": {\n      \"fieldType\": \"JSON_VALUE\",\n      \"transformExpression\": {\n        \"initialValue\": {\n          \"referenceValue\": \"$PalmPromptRequest$\"\n        },\n        \"transformationFunctions\": [{\n          \"functionType\": {\n            \"jsonFunction\": {\n              \"functionName\": \"RESOLVE_TEMPLATE\"\n            }\n          }\n        }]\n      }\n    },\n    \"outputField\": {\n      \"referenceKey\": \"$`Task_4_request`$\",\n      \"fieldType\": \"JSON_VALUE\",\n      \"cardinality\": \"OPTIONAL\"\n    }\n  }]\n}"
          }
        }
      },
      "nextTasks": [
        {
          "taskId": "4"
        }
      ],
      "taskExecutionStrategy": "WHEN_ALL_SUCCEED",
      "displayName": "Set Prompt Parameters",
      "description": "In here, we are setting the required variables for the Vertex AI task. The actual payload is set using the resolve_template function from a pre-defined Local Variable called PalmPromptRequest.",
      "externalTaskType": "NORMAL_TASK",
      "position": {
        "x": -210,
        "y": 126
      }
    },
    {
      "task": "FieldMappingTask",
      "taskId": "3",
      "parameters": {
        "FieldMappingConfigTaskParameterKey": {
          "key": "FieldMappingConfigTaskParameterKey",
          "value": {
            "jsonValue": "{\n  \"@type\": \"type.googleapis.com/enterprise.crm.eventbus.proto.FieldMappingConfig\",\n  \"mappedFields\": [{\n    \"inputField\": {\n      \"fieldType\": \"JSON_VALUE\",\n      \"transformExpression\": {\n        \"initialValue\": {\n          \"referenceValue\": \"$`Task_4_response`.predictions$\"\n        },\n        \"transformationFunctions\": [{\n          \"functionType\": {\n            \"jsonFunction\": {\n              \"functionName\": \"GET_ELEMENT\"\n            }\n          },\n          \"parameters\": [{\n            \"initialValue\": {\n              \"literalValue\": {\n                \"intValue\": \"0\"\n              }\n            }\n          }]\n        }, {\n          \"functionType\": {\n            \"jsonFunction\": {\n              \"functionName\": \"GET_PROPERTY\"\n            }\n          },\n          \"parameters\": [{\n            \"initialValue\": {\n              \"literalValue\": {\n                \"stringValue\": \"content\"\n              }\n            }\n          }]\n        }]\n      }\n    },\n    \"outputField\": {\n      \"referenceKey\": \"$Content$\",\n      \"fieldType\": \"STRING_VALUE\",\n      \"cardinality\": \"OPTIONAL\"\n    }\n  }]\n}"
          }
        }
      },
      "taskExecutionStrategy": "WHEN_ALL_SUCCEED",
      "displayName": "Map Prompt Response",
      "description": "Finally, we are mapping just the content of the Vertex AI task output as the final integration Output. ",
      "externalTaskType": "NORMAL_TASK",
      "position": {
        "x": -210,
        "y": 378
      }
    }
  ],
  "integrationParameters": [
    {
      "key": "TextPrompt",
      "dataType": "STRING_VALUE",
      "displayName": "TextPrompt",
      "inputOutputType": "IN"
    },
    {
      "key": "Region",
      "dataType": "STRING_VALUE",
      "defaultValue": {
        "stringValue": "us-central1"
      },
      "displayName": "Region"
    },
    {
      "key": "ProjectId",
      "dataType": "STRING_VALUE",
      "displayName": "ProjectId"
    },
    {
      "key": "`Task_4_request`",
      "dataType": "JSON_VALUE",
      "defaultValue": {
        "jsonValue": "{\n}"
      },
      "displayName": "`Task_4_request`",
      "isTransient": true,
      "producer": "1_4",
      "jsonSchema": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"instances\": {\n      \"type\": \"array\"\n    },\n    \"parameters\": {\n      \"type\": \"object\"\n    }\n  }\n}"
    },
    {
      "key": "`Task_4_response`",
      "dataType": "JSON_VALUE",
      "displayName": "`Task_4_response`",
      "isTransient": true,
      "producer": "1_4",
      "jsonSchema": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"deployedModelId\": {\n      \"type\": \"string\"\n    },\n    \"modelVersionId\": {\n      \"type\": \"string\"\n    },\n    \"model\": {\n      \"type\": \"string\"\n    },\n    \"predictions\": {\n      \"type\": \"array\"\n    },\n    \"modelDisplayName\": {\n      \"type\": \"string\"\n    }\n  }\n}"
    },
    {
      "key": "ModelId",
      "dataType": "STRING_VALUE",
      "defaultValue": {
        "stringValue": "text-bison@001"
      },
      "displayName": "ModelId",
      "inputOutputType": "IN"
    },
    {
      "key": "endpoint",
      "dataType": "STRING_VALUE",
      "defaultValue": {
        "stringValue": "publishers/google/models/"
      },
      "displayName": "endpoint"
    },
    {
      "key": "PalmPromptRequest",
      "dataType": "JSON_VALUE",
      "defaultValue": {
        "jsonValue": "{\n  \"instances\": [{\n    \"prompt\": \"$TextPrompt$\"\n  }],\n  \"parameters\": {\n    \"temperature\": 0.2,\n    \"maxOutputTokens\": 768.0,\n    \"topP\": 0.8,\n    \"topK\": 40.0\n  }\n}"
      },
      "displayName": "PalmPromptRequest",
      "jsonSchema": "{\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"instances\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"prompt\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"parameters\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"topK\": {\n          \"type\": \"number\"\n        },\n        \"temperature\": {\n          \"type\": \"number\"\n        },\n        \"maxOutputTokens\": {\n          \"type\": \"number\"\n        },\n        \"topP\": {\n          \"type\": \"number\"\n        }\n      }\n    }\n  }\n}"
    },
    {
      "key": "Content",
      "dataType": "STRING_VALUE",
      "displayName": "Content",
      "inputOutputType": "OUT"
    }
  ]
}

Beispiel für einen Integrationsablauf

Die folgende Abbildung zeigt ein Beispiellayout des Integrationseditors für dieses Integrationscodebeispiel.

Bild mit Beispiel für den Integrationsablauf Bild mit Beispiel für den Integrationsablauf

Beispielintegration hochladen und ausführen

So laden Sie die Beispielintegration hoch und führen sie aus:

  1. Speichern Sie das Integrationsbeispiel als JSON-Datei auf Ihrem System.
  2. Rufen Sie in der Google Cloud Console die Seite Application Integration auf.

    Zu „Application Integration“

  3. Klicken Sie im Navigationsmenü auf Integrationen. Die Seite Integrationen wird angezeigt.
  4. Wählen Sie eine vorhandene Integration aus oder erstellen Sie eine neue Integration, indem Sie auf Integration erstellen klicken.

    Wenn Sie eine neue Integration erstellen, gehen Sie so vor:

    1. Geben Sie im Dialogfeld Integration erstellen einen Namen und eine Beschreibung ein.
    2. Wählen Sie eine Region für die Integration aus.
    3. Wählen Sie ein Dienstkonto für die Integration aus. Sie können die Details des Dienstkontos einer Integration jederzeit im Bereich Integrationsübersicht in der Symbolleiste für Integrationen ändern oder aktualisieren.
    4. Klicken Sie auf Erstellen.

    Dadurch wird die Integration auf der Seite Integrationseditor geöffnet.

  5. Klicken Sie im Integrationseditor auf das Menü zum Hochladen/Herunterladen und wählen Sie Integration hochladen aus.
  6. Wählen Sie im Dateibrowser-Dialogfeld die Datei aus, die Sie in Schritt 1 gespeichert haben, und klicken Sie dann auf Öffnen.

    Eine neue Version der Integration wird mit der hochgeladenen Datei erstellt.

  7. Klicken Sie im Integrationseditor auf Testen.
  8. Klicken Sie auf Integration testen. Dadurch wird die Integration ausgeführt und das Ausführungsergebnis wird im Bereich Integration testen angezeigt.