

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Maschinelles Lernen für Amazon OpenSearch Service
<a name="ml"></a>

ML Commons ist ein OpenSearch Plugin, das eine Reihe gängiger Algorithmen für maschinelles Lernen (ML) durch Transport- und REST-API-Aufrufe bereitstellt. Diese Aufrufe wählen die richtigen Knoten und Ressourcen für jede ML-Anfrage aus und überwachen ML-Aufgaben, um die Verfügbarkeit sicherzustellen. Auf diese Weise können Sie bestehende Open-Source-ML-Algorithmen nutzen und den Aufwand für die Entwicklung neuer ML-Funktionen reduzieren. Weitere Informationen zum Plugin finden Sie in der OpenSearch Dokumentation unter [Maschinelles Lernen](https://opensearch.org/docs/latest/ml-commons-plugin/index/). In diesem Kapitel wird beschrieben, wie Sie das Plugin mit Amazon OpenSearch Service verwenden.

**Topics**
+ [Amazon OpenSearch Service ML-Konnektoren für AWS-Services](ml-amazon-connector.md)
+ [Amazon OpenSearch Service ML-Konnektoren für Plattformen von Drittanbietern](ml-external-connector.md)
+ [Wird verwendet CloudFormation , um Remote-Inferenz für die semantische Suche einzurichten](cfn-template.md)
+ [ML Commons-Einstellungen werden nicht unterstützt](#sm)
+ [OpenSearch Vorlagen für das Service Flow-Framework](ml-workflow-framework.md)

# Amazon OpenSearch Service ML-Konnektoren für AWS-Services
<a name="ml-amazon-connector"></a>

Wenn Sie Amazon OpenSearch Service Machine Learning (ML) Connectors mit einem anderen verwenden AWS-Service, müssen Sie eine IAM-Rolle einrichten, um Service sicher mit diesem OpenSearch Service zu verbinden. AWS-Services dass Sie einen Connector einrichten können, der Amazon SageMaker AI und Amazon Bedrock einschließt. In diesem Tutorial erfahren Sie, wie Sie einen Connector von OpenSearch Service zu SageMaker Runtime erstellen. Weitere Informationen zu Konnektoren finden Sie unter [Unterstützte Konnektoren](https://opensearch.org/docs/latest/ml-commons-plugin/remote-models/connectors/#supported-connectors).

**Topics**
+ [Voraussetzungen](#connector-sagemaker-prereq)
+ [Erstellen Sie einen OpenSearch Service-Connector](#connector-sagemaker-create)

## Voraussetzungen
<a name="connector-sagemaker-prereq"></a>

Um einen Connector zu erstellen, benötigen Sie einen Amazon SageMaker AI Domain-Endpunkt und eine IAM-Rolle, die OpenSearch Servicezugriff gewährt. 

### Richten Sie eine Amazon SageMaker AI-Domain ein
<a name="connector-sagemaker"></a>

Informationen zur [Bereitstellung Ihres Machine-Learning-Modells finden Sie unter Bereitstellen eines](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-deployment.html) Modells in *Amazon SageMaker AI im Amazon AI Developer Guide*. SageMaker Notieren Sie sich die Endpunkt-URL für Ihr Modell, die Sie benötigen, um einen AI-Connector zu erstellen.

### Erstellen einer IAM-Rolle
<a name="connector-sagemaker-iam"></a>

Richten Sie eine IAM-Rolle ein, um SageMaker Runtime-Berechtigungen an den Service zu OpenSearch delegieren. Informationen zum Erstellen einer neuen Rolle finden Sie unter [Erstellen einer IAM-Rolle (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html#roles-creatingrole-user-console) im *IAM-Benutzerhandbuch*. Optional können Sie eine bestehende Rolle verwenden, sofern sie über dieselben Rechte verfügt. Wenn Sie eine neue Rolle erstellen, anstatt eine AWS verwaltete Rolle zu verwenden, ersetzen Sie sie `opensearch-sagemaker-role` in diesem Tutorial durch den Namen Ihrer eigenen Rolle.

1. Fügen Sie Ihrer neuen Rolle die folgende verwaltete IAM-Richtlinie hinzu, damit OpenSearch Service auf Ihren SageMaker KI-Endpunkt zugreifen kann. Informationen zum Anhängen einer Richtlinie an eine Rolle finden Sie unter [Hinzufügen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console). 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {   
               "Action": [
                   "sagemaker:InvokeEndpointAsync",
                   "sagemaker:InvokeEndpoint"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Folgen Sie den Anweisungen unter [Vertrauensrichtlinie für Rollen ändern](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy), um die Vertrauensstellung der Rolle zu bearbeiten. Ersetzen Sie den Wert in der folgenden Richtlinie *service-principal* durch einen der folgenden Dienstprinzipale für OpenSearch Service oder OpenSearch Serverless:  
**Für Service OpenSearch **  
`opensearchservice.amazonaws.com`  
**Für OpenSearch Serverless**  
`ml.opensearchservice.amazonaws.com`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "sts:AssumeRole"
               ],
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ml.opensearchservice.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

------

   Wir empfehlen, dass Sie die Schlüssel `aws:SourceAccount` und die `aws:SourceArn` Bedingungsschlüssel verwenden, um den Zugriff auf eine bestimmte Domain zu beschränken. Das `SourceAccount` ist die AWS-Konto ID, die dem Besitzer der Domain gehört, und das `SourceArn` ist der ARN der Domain. Sie können der Vertrauensrichtlinie beispielsweise den folgenden Bedingungsblock hinzufügen: 

   ```
   "Condition": {
       "StringEquals": {
           "aws:SourceAccount": "account-id"
       },
       "ArnLike": {
           "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
       }
   }
   ```

### Konfigurieren von -Berechtigungen
<a name="connector-sagemaker-permissions"></a>

Um den Connector zu erstellen, benötigen Sie die Erlaubnis, die IAM-Rolle an OpenSearch Service zu übergeben. Sie benötigen außerdem Zugriff auf die Aktion `es:ESHttpPost`. Um diese beiden Berechtigungen zu erteilen, fügen Sie die folgende Richtlinie an die IAM-Rolle an, deren Anmeldeinformationen zum Signieren der Anforderung verwendet werden:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/opensearch-sagemaker-role"
        },
        {
            "Effect": "Allow",
            "Action": "es:ESHttpPost",
            "Resource": "arn:aws:es:us-east-1:111122223333:domain/domain-name/*"
        }
    ]
}
```

------

Wenn Ihr Benutzer oder Ihre Rolle nicht `iam:PassRole` berechtigt ist, Ihre Rolle weiterzugeben, kann es sein, dass beim Versuch, ein Repository im nächsten Schritt zu registrieren, ein Autorisierungsfehler auftritt.

### Ordnen Sie die ML-Rolle in OpenSearch Dashboards zu (wenn Sie eine differenzierte Zugriffskontrolle verwenden)
<a name="connector-sagemaker-fgac"></a>

Durch eine differenzierte Zugriffskontrolle wird beim Einrichten eines Konnektors ein zusätzlicher Schritt eingeführt. Auch wenn Sie die HTTP-Basisauthentifizierung für alle anderen Zwecke verwenden, müssen Sie die `ml_full_access`-Rolle Ihrer IAM-Rolle mit `iam:PassRole`-Berechtigungen zuordnen, um `opensearch-sagemaker-role` zu übergeben.

1. Navigieren Sie zum OpenSearch Dashboards-Plugin für Ihre OpenSearch Service-Domain. Sie finden den Dashboards-Endpunkt in Ihrem Domain-Dashboard in der OpenSearch Service-Konsole. 

1. Wählen Sie im Hauptmenü **Sicherheit**, **Rollen** und dann die Rolle **ml\$1full\$1access** aus.

1. Wählen Sie **Zugeordnete Benutzer**, **Mapping verwalten**. 

1. Fügen Sie unter **Backend-Rollen** den ARN der Rolle hinzu, die über Berechtigungen zur Weitergabe `opensearch-sagemaker-role` verfügt.

   ```
   arn:aws:iam::account-id:role/role-name
   ```

1. Wählen Sie **Zuordnen** und bestätigen Sie, dass der Benutzer oder die Rolle unter **Zugeordnete Benutzer** angezeigt wird.

## Erstellen Sie einen OpenSearch Service-Connector
<a name="connector-sagemaker-create"></a>

Um einen Connector zu erstellen, senden Sie eine `POST` Anfrage an den Endpunkt der OpenSearch Service-Domäne. Sie können curl, den Python-Beispielclient, Postman oder eine andere Methode verwenden, um eine signierte Anfrage zu senden. Beachten Sie, dass Sie eine `POST` Anfrage in der Kibana-Konsole nicht verwenden können. Die Anfrage hat das folgende Format:

```
POST domain-endpoint/_plugins/_ml/connectors/_create
{
   "name": "sagemaker: embedding",
   "description": "Test connector for Sagemaker embedding model",
   "version": 1,
   "protocol": "aws_sigv4",
   "credential": {
      "roleArn": "arn:aws:iam::account-id:role/opensearch-sagemaker-role"
   },
   "parameters": {
      "region": "region",
      "service_name": "sagemaker"
   },
   "actions": [
      {
         "action_type": "predict",
         "method": "POST",
         "headers": {
            "content-type": "application/json"
         },
         "url": "https://runtime.sagemaker.region.amazonaws.com/endpoints/endpoint-id/invocations",
         "request_body": "{ \"inputs\": { \"question\": \"${parameters.question}\", \"context\": \"${parameters.context}\" } }"
      }
   ]
}
```

Wenn sich Ihre Domain in einer Virtual Private Cloud (VPC) befindet, muss Ihr Computer mit der VPC verbunden sein, damit die Anfrage den AI-Connector erfolgreich erstellen kann. Der Zugriff auf eine VPC hängt von der Netzwerkkonfiguration ab, beinhaltet jedoch in der Regel eine Verbindung zu einem VPN- oder Unternehmensnetzwerk. Um zu überprüfen, ob Sie Ihre OpenSearch Service-Domain erreichen können, navigieren Sie `https://your-vpc-domain.region.es.amazonaws.com` in einem Webbrowser zu und überprüfen Sie, ob Sie die Standard-JSON-Antwort erhalten.

### Beispiel für einen Python-Client
<a name="connector-sagemaker-python"></a>

Der Python-Client ist einfacher zu automatisieren als eine HTTP-Anfrage und hat eine bessere Wiederverwendbarkeit. Um den AI-Konnektor mit dem Python-Client zu erstellen, speichern Sie den folgenden Beispielcode in einer Python-Datei. Der Client benötigt die [https://pypi.org/project/requests-aws4auth/](https://pypi.org/project/requests-aws4auth/)Pakete [AWS SDK für Python (Boto3)[https://requests.readthedocs.io/en/latest/](https://requests.readthedocs.io/en/latest/)](https://aws.amazon.com/sdk-for-python/), und. 

```
import boto3
import requests 
from requests_aws4auth import AWS4Auth

host = 'domain-endpoint/'
region = 'region'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# Register repository
path = '_plugins/_ml/connectors/_create'
url = host + path

payload = {
   "name": "sagemaker: embedding",
   "description": "Test connector for Sagemaker embedding model",
   "version": 1,
   "protocol": "aws_sigv4",
   "credential": {
      "roleArn": "arn:aws:iam::account-id:role/opensearch-sagemaker-role"
   },
   "parameters": {
      "region": "region",
      "service_name": "sagemaker"
   },
   "actions": [
      {
         "action_type": "predict",
         "method": "POST",
         "headers": {
            "content-type": "application/json"
         },
         "url": "https://runtime.sagemaker.region.amazonaws.com/endpoints/endpoint-id/invocations",
         "request_body": "{ \"inputs\": { \"question\": \"${parameters.question}\", \"context\": \"${parameters.context}\" } }"
      }
   ]
}
headers = {"Content-Type": "application/json"}

r = requests.post(url, auth=awsauth, json=payload, headers=headers)
print(r.status_code)
print(r.text)
```

# Amazon OpenSearch Service ML-Konnektoren für Plattformen von Drittanbietern
<a name="ml-external-connector"></a>

In diesem Tutorial erfahren Sie, wie Sie einen Connector von OpenSearch Service zu Cohere erstellen. Weitere Informationen zu Konnektoren finden Sie unter [Unterstützte Konnektoren](https://opensearch.org/docs/latest/ml-commons-plugin/remote-models/connectors/#supported-connectors).

Wenn Sie einen Amazon OpenSearch Service Machine Learning (ML) Connector mit einem externen Remote-Modell verwenden, müssen Sie Ihre spezifischen Autorisierungsdaten in speichern AWS Secrets Manager. Dies kann ein API-Schlüssel oder eine Kombination aus Benutzername und Passwort sein. Das bedeutet, dass Sie auch eine IAM-Rolle erstellen müssen, die es OpenSearch Service Access ermöglicht, aus Secrets Manager zu lesen. 

**Topics**
+ [Voraussetzungen](#connector-external-prereq)
+ [Erstellen Sie einen OpenSearch Service-Connector](#connector-external-create)

## Voraussetzungen
<a name="connector-external-prereq"></a>

Um einen Connector für Cohere oder einen externen Anbieter mit OpenSearch Service zu erstellen, benötigen Sie eine IAM-Rolle, die dem OpenSearch Service Zugriff auf den Ort gewährt AWS Secrets Manager, an dem Sie Ihre Anmeldeinformationen speichern. Sie müssen Ihre Anmeldeinformationen auch in Secrets Manager speichern.

### Erstellen einer IAM-Rolle
<a name="connector-external-iam"></a>

Richten Sie eine IAM-Rolle ein, um Secrets Manager Manager-Berechtigungen an den Service zu OpenSearch delegieren. Sie können auch die vorhandene `SecretManagerReadWrite` Rolle verwenden. Informationen zum Erstellen einer neuen Rolle finden Sie unter [Erstellen einer IAM-Rolle (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html#roles-creatingrole-user-console) im *IAM-Benutzerhandbuch*. Wenn Sie eine neue Rolle erstellen, anstatt eine AWS verwaltete Rolle zu verwenden, ersetzen Sie sie `opensearch-secretmanager-role` in diesem Tutorial durch den Namen Ihrer eigenen Rolle.

1. Fügen Sie Ihrer neuen Rolle die folgende verwaltete IAM-Richtlinie hinzu, damit OpenSearch Service auf Ihre Secrets Manager Manager-Werte zugreifen kann. Informationen zum Anhängen einer Richtlinie an eine Rolle finden Sie unter [Hinzufügen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console). 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {   
               "Action": [
                   "secretsmanager:GetSecretValue"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Folgen Sie den Anweisungen unter [Vertrauensrichtlinie für Rollen ändern](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy), um die Vertrauensstellung der Rolle zu bearbeiten. Ersetzen Sie den Wert in der folgenden Richtlinie *service-principal* durch einen der folgenden Dienstprinzipale für OpenSearch Service oder OpenSearch Serverless:  
**Für Service OpenSearch **  
`opensearchservice.amazonaws.com`  
**Für OpenSearch Serverless**  
`ml.opensearchservice.amazonaws.com`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "sts:AssumeRole"
               ],
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "service-principle"
                   ]
               }
           }
       ]
   }
   ```

------

   Wir empfehlen, dass Sie die Schlüssel `aws:SourceAccount` und die `aws:SourceArn` Bedingungsschlüssel verwenden, um den Zugriff auf eine bestimmte Domain zu beschränken. Das `SourceAccount` ist die AWS-Konto ID, die dem Besitzer der Domain gehört, und das `SourceArn` ist der ARN der Domain. Sie können der Vertrauensrichtlinie beispielsweise den folgenden Bedingungsblock hinzufügen: 

   ```
   "Condition": {
       "StringEquals": {
           "aws:SourceAccount": "account-id"
       },
       "ArnLike": {
           "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
       }
   }
   ```

### Konfigurieren von -Berechtigungen
<a name="connector-external-permissions"></a>

Um den Connector zu erstellen, benötigen Sie die Erlaubnis, die IAM-Rolle an OpenSearch Service zu übergeben. Sie benötigen außerdem Zugriff auf die Aktion `es:ESHttpPost`. Um diese beiden Berechtigungen zu erteilen, fügen Sie die folgende Richtlinie an die IAM-Rolle an, deren Anmeldeinformationen zum Signieren der Anforderung verwendet werden:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/opensearch-secretmanager-role"
    },
    {
      "Effect": "Allow",
      "Action": "es:ESHttpPost",
      "Resource": "arn:aws:es:us-east-1:111122223333:domain/domain-name/*"
    }
  ]
}
```

------

Wenn Ihr Benutzer oder Ihre Rolle nicht `iam:PassRole` berechtigt ist, Ihre Rolle weiterzugeben, kann es sein, dass beim Versuch, ein Repository im nächsten Schritt zu registrieren, ein Autorisierungsfehler auftritt.

### Richten Sie ein AWS Secrets Manager
<a name="connector-external-sm"></a>

Informationen zum Speichern Ihrer Autorisierungsdaten in Secrets Manager finden [Sie unter Create an AWS Secrets Manager Secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) im *AWS Secrets Manager Benutzerhandbuch*. 

Nachdem Secrets Manager Ihr Schlüssel-Wert-Paar als Geheimnis akzeptiert hat, erhalten Sie einen ARN mit dem Format:. `arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3` Notieren Sie sich diesen ARN, wie Sie ihn verwenden, und Ihren Schlüssel, wenn Sie im nächsten Schritt einen Connector erstellen.

### Ordnen Sie die ML-Rolle in OpenSearch Dashboards zu (wenn Sie eine differenzierte Zugriffskontrolle verwenden)
<a name="connector-external-fgac"></a>

Durch eine differenzierte Zugriffskontrolle wird beim Einrichten eines Konnektors ein zusätzlicher Schritt eingeführt. Auch wenn Sie die HTTP-Basisauthentifizierung für alle anderen Zwecke verwenden, müssen Sie die `ml_full_access`-Rolle Ihrer IAM-Rolle mit `iam:PassRole`-Berechtigungen zuordnen, um `opensearch-sagemaker-role` zu übergeben.

1. Navigieren Sie zum OpenSearch Dashboards-Plugin für Ihre OpenSearch Service-Domain. Sie finden den Dashboards-Endpunkt in Ihrem Domain-Dashboard in der OpenSearch Service-Konsole. 

1. Wählen Sie im Hauptmenü **Sicherheit**, **Rollen** und dann die Rolle **ml\$1full\$1access** aus.

1. Wählen Sie **Zugeordnete Benutzer**, **Mapping verwalten**. 

1. Fügen Sie unter **Backend-Rollen** den ARN der Rolle hinzu, die über Berechtigungen zur Weitergabe `opensearch-sagemaker-role` verfügt.

   ```
   arn:aws:iam::account-id:role/role-name
   ```

1. Wählen Sie **Zuordnen** und bestätigen Sie, dass der Benutzer oder die Rolle unter **Zugeordnete Benutzer** angezeigt wird.

## Erstellen Sie einen OpenSearch Service-Connector
<a name="connector-external-create"></a>

Um einen Connector zu erstellen, senden Sie eine `POST` Anfrage an den Endpunkt der OpenSearch Service-Domäne. Sie können curl, den Python-Beispielclient, Postman oder eine andere Methode verwenden, um eine signierte Anfrage zu senden. Beachten Sie, dass Sie eine `POST` Anfrage in der Kibana-Konsole nicht verwenden können. Die Anfrage hat das folgende Format:

```
POST domain-endpoint/_plugins/_ml/connectors/_create
{
    "name": "Cohere Connector: embedding",
    "description": "The connector to cohere embedding model",
    "version": 1,
    "protocol": "http",
    "credential": {
        "secretArn": "arn:aws:secretsmanager:region:account-id:secret:cohere-key-id",
        "roleArn": "arn:aws:iam::account-id:role/opensearch-secretmanager-role"
    },
    "actions": [
        {
            "action_type": "predict",
            "method": "POST",
            "url": "https://api.cohere.ai/v1/embed",
            "headers": {
                "Authorization": "Bearer ${credential.secretArn.cohere-key-used-in-secrets-manager}"
            },
            "request_body": "{ \"texts\": ${parameters.texts}, \"truncate\": \"END\" }"
        }
    ]
}
```

Der Anfragetext für diese Anfrage unterscheidet sich in zweierlei Hinsicht von dem einer Open-Source-Connector-Anfrage. Innerhalb des `credential` Felds übergeben Sie den ARN für die IAM-Rolle, die es OpenSearch Service ermöglicht, aus Secrets Manager zu lesen, zusammen mit dem ARN für welches Geheimnis. In `headers` diesem Feld verweisen Sie auf das Geheimnis, indem Sie den geheimen Schlüssel und die Tatsache verwenden, dass es aus einem ARN stammt. 

Wenn sich Ihre Domain in einer Virtual Private Cloud (VPC) befindet, muss Ihr Computer mit der VPC verbunden sein, damit die Anfrage den AI-Connector erfolgreich erstellen kann. Der Zugriff auf eine VPC hängt von der Netzwerkkonfiguration ab, beinhaltet jedoch in der Regel eine Verbindung zu einem VPN- oder Unternehmensnetzwerk. Um zu überprüfen, ob Sie Ihre OpenSearch Service-Domain erreichen können, navigieren Sie `https://your-vpc-domain.region.es.amazonaws.com` in einem Webbrowser zu und überprüfen Sie, ob Sie die Standard-JSON-Antwort erhalten.

### Beispiel für einen Python-Client
<a name="connector-external-python"></a>

Der Python-Client ist einfacher zu automatisieren als eine HTTP-Anfrage und hat eine bessere Wiederverwendbarkeit. Um den AI-Konnektor mit dem Python-Client zu erstellen, speichern Sie den folgenden Beispielcode in einer Python-Datei. Der Client benötigt die [https://pypi.org/project/requests-aws4auth/](https://pypi.org/project/requests-aws4auth/)Pakete [AWS SDK für Python (Boto3)[https://requests.readthedocs.io/en/latest/](https://requests.readthedocs.io/en/latest/)](https://aws.amazon.com/sdk-for-python/), und. 

```
import boto3
import requests 
from requests_aws4auth import AWS4Auth

host = 'domain-endpoint/'
region = 'region'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

path = '_plugins/_ml/connectors/_create'
url = host + path

payload = {
    "name": "Cohere Connector: embedding",
    "description": "The connector to cohere embedding model",
    "version": 1,
    "protocol": "http",
    "credential": {
        "secretArn": "arn:aws:secretsmanager:region:account-id:secret:cohere-key-id",
        "roleArn": "arn:aws:iam::account-id:role/opensearch-secretmanager-role"
    },
    "actions": [
        {
            "action_type": "predict",
            "method": "POST",
            "url": "https://api.cohere.ai/v1/embed",
            "headers": {
                "Authorization": "Bearer ${credential.secretArn.cohere-key-used-in-secrets-manager}"
            },
            "request_body": "{ \"texts\": ${parameters.texts}, \"truncate\": \"END\" }"
        }
    ]
}

headers = {"Content-Type": "application/json"}

r = requests.post(url, auth=awsauth, json=payload, headers=headers)
print(r.status_code)
print(r.text)
```

# Wird verwendet CloudFormation , um Remote-Inferenz für die semantische Suche einzurichten
<a name="cfn-template"></a>

Ab OpenSearch Version 2.9 können Sie Remote-Inferenz mit [semantischer Suche](https://opensearch.org/docs/latest/search-plugins/semantic-search/) verwenden, um Ihre eigenen Modelle für maschinelles Lernen (ML) zu hosten. Remote Inference verwendet das [ML](https://opensearch.org/docs/latest/ml-commons-plugin/index/) Commons-Plugin.

Mit Remote Inference können Sie Ihre Modellinferenzen remote auf ML-Services wie Amazon SageMaker AI und Amazon Bedrock hosten und sie über ML-Konnektoren mit Amazon OpenSearch Service verbinden. 

Um die Einrichtung von Remote-Inferenzen zu vereinfachen, stellt Amazon OpenSearch Service eine [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)Vorlage in der Konsole bereit. CloudFormation ist ein Programm, AWS-Service in dem Sie Ressourcen von Drittanbietern bereitstellen AWS und verwalten können, indem Sie Infrastruktur als Code behandeln. 

Die OpenSearch CloudFormation Vorlage automatisiert den Prozess der Modellbereitstellung für Sie, sodass Sie auf einfache Weise ein Modell in Ihrer OpenSearch Service-Domain erstellen und dann die Modell-ID verwenden können, um Daten aufzunehmen und neuronale Suchabfragen auszuführen.

Wenn Sie neuronale Sparse-Encoder mit OpenSearch Service Version 2.12 und höher verwenden, empfehlen wir, das Tokenizer-Modell lokal zu verwenden, anstatt es remote bereitzustellen. Weitere Informationen finden Sie in der Dokumentation unter [Sparse-Kodierungsmodelle](https://opensearch.org/docs/latest/ml-commons-plugin/pretrained-models/#sparse-encoding-models). OpenSearch 

**Topics**
+ [Verfügbare Vorlagen CloudFormation](#cfn-template-list)
+ [Voraussetzungen](#cfn-template-prereq)
+ [Amazon Bedrock-Vorlagen](cfn-template-bedrock.md)
+ [Konfiguration von Agentic Search mit Bedrock Claude](cfn-template-agentic-search.md)
+ [Vorlagen für die MCP-Serverintegration](cfn-template-mcp-server.md)
+ [SageMaker Amazon-Vorlagen](cfn-template-sm.md)
+ [Fernableitung für Vorlagen zur semantischen Hervorhebung](#cfn-template-semantic-highlighting)

## Verfügbare Vorlagen CloudFormation
<a name="cfn-template-list"></a>

Die folgenden Vorlagen für AWS CloudFormation maschinelles Lernen (ML) stehen zur Verwendung zur Verfügung:[Amazon Bedrock-Vorlagen](cfn-template-bedrock.md)

**Integration von Amazon Titan-Texteinbettungen**  
Stellt eine Verbindung zu den gehosteten ML-Modellen von Amazon Bedrock her, macht eine separate Modellbereitstellung überflüssig und verwendet vordefinierte Amazon Bedrock-Endpunkte. Weitere Informationen finden Sie unter [Amazon Titan Text Embeddings](https://docs.aws.amazon.com/bedrock/latest/userguide/titan-embedding-models.html) im *Amazon Bedrock-Benutzerhandbuch*.

**Cohere Integration einbetten**  
Bietet Zugriff auf Cohere Embed-Modelle und ist für bestimmte Textverarbeitungs-Workflows optimiert. Weitere Informationen finden Sie unter [Embed](https://docs.cohere.com/docs/cohere-embed) auf der *Cohere Docs-Website.*

**Multimodale Einbettungen von Amazon Titan**  
Unterstützt sowohl Text- als auch Bildeinbettungen und ermöglicht multimodale Suchfunktionen. Weitere Informationen finden Sie unter [Amazon Titan Multimodal Embeddings](https://docs.aws.amazon.com/bedrock/latest/userguide/titan-multiemb-models.html) im *Amazon Bedrock-Benutzerhandbuch*.[Vorlagen für die MCP-Serverintegration](cfn-template-mcp-server.md)

**MCP-Serverintegration**  
Stellt eine [Amazon Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html) bereit, stellt einen Agenten-Endpunkt bereit, verarbeitet eingehende und ausgehende Authentifizierung und unterstützt OAuth die Unternehmensauthentifizierung.[SageMaker Amazon-Vorlagen](cfn-template-sm.md)

**Integration mit Texteinbettungsmodellen über Amazon SageMaker**  
Stellt Modelle zur Texteinbettung in Amazon SageMaker Runtime bereit, erstellt IAM-Rollen für den Zugriff auf Modellartefakte und richtet ML-Konnektoren für die semantische Suche ein.

**Integration mit Sparse Encoders durch SageMaker**  
Richtet Sparse-Codierungsmodelle für die neuronale Suche ein, erstellt AWS Lambda Funktionen für die Konnektorverwaltung und gibt das Modell IDs zur sofortigen Verwendung zurück.

## Voraussetzungen
<a name="cfn-template-prereq"></a>

Um eine CloudFormation Vorlage mit OpenSearch Service zu verwenden, müssen Sie die folgenden Voraussetzungen erfüllen.

### Richten Sie eine OpenSearch Dienstdomäne ein
<a name="cfn-template-domain"></a>

Bevor Sie eine CloudFormation Vorlage verwenden können, müssen Sie eine [Amazon OpenSearch Service-Domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-get-started.html) mit Version 2.9 oder höher und aktivierter detaillierter Zugriffskontrolle einrichten. [Erstellen Sie eine OpenSearch Service-Backend-Rolle](fgac.md#fgac-roles), um dem ML Commons-Plugin die Erlaubnis zu erteilen, Ihren Connector für Sie zu erstellen. 

Die CloudFormation Vorlage erstellt für Sie eine Lambda-IAM-Rolle mit dem Standardnamen`LambdaInvokeOpenSearchMLCommonsRole`, den Sie überschreiben können, wenn Sie einen anderen Namen wählen möchten. Nachdem die Vorlage diese IAM-Rolle erstellt hat, müssen Sie der Lambda-Funktion die Erlaubnis erteilen, Ihre OpenSearch Service-Domain aufzurufen. Ordnen Sie dazu [die benannte Rolle](fgac.md#fgac-mapping) mit `ml_full_access` den folgenden Schritten Ihrer OpenSearch Service-Backend-Rolle zu:

1. Navigieren Sie zum OpenSearch Dashboards-Plugin für Ihre OpenSearch Service-Domain. Sie finden den Dashboards-Endpunkt in Ihrem Domain-Dashboard in der OpenSearch Service-Konsole. 

1. Wählen Sie im Hauptmenü **Sicherheit**, **Rollen** und dann die Rolle **ml\$1full\$1access** aus.

1. Wählen Sie **Zugeordnete Benutzer**, **Mapping verwalten**. 

1. Fügen Sie unter **Backend-Rollen** den ARN der Lambda-Rolle hinzu, für die eine Berechtigung zum Aufrufen Ihrer Domain erforderlich ist.

   ```
   arn:aws:iam::account-id:role/role-name
   ```

1. Wählen Sie **Zuordnen** und bestätigen Sie, dass der Benutzer oder die Rolle unter **Zugeordnete Benutzer** angezeigt wird.

Nachdem Sie die Rolle zugeordnet haben, navigieren Sie zur Sicherheitskonfiguration Ihrer Domain und fügen Sie die Lambda IAM-Rolle zu Ihrer OpenSearch Servicezugriffsrichtlinie hinzu.

### Aktivieren Sie die Berechtigungen auf Ihrem AWS-Konto
<a name="connector-sagemaker-iam"></a>

Sie AWS-Konto müssen über die Zugriffsberechtigung CloudFormation und Lambda verfügen, zusammen mit dem, was AWS-Service Sie für Ihre Vorlage wählen — entweder SageMaker Runtime oder Amazon Bedrock. 

Wenn Sie Amazon Bedrock verwenden, müssen Sie auch Ihr Modell registrieren. Informationen zur Registrierung Ihres [Modells finden Sie unter Modellzugriff](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) im *Amazon Bedrock-Benutzerhandbuch*. 

Wenn Sie Ihren eigenen Amazon S3 S3-Bucket verwenden, um Modellartefakte bereitzustellen, müssen Sie die CloudFormation IAM-Rolle zu Ihrer S3-Zugriffsrichtlinie hinzufügen. Informationen finden Sie im Abschnitt [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *-IAM-Benutzerhandbuch*.

# Amazon Bedrock-Vorlagen
<a name="cfn-template-bedrock"></a>

Die Amazon CloudFormation Bedrock-Vorlagen stellen die AWS Ressourcen bereit, die zum Erstellen von Verbindungen zwischen OpenSearch Service und Amazon Bedrock erforderlich sind. 

Zunächst erstellt die Vorlage eine IAM-Rolle, die es der future Lambda-Funktion ermöglicht, auf Ihre OpenSearch Service-Domain zuzugreifen. Die Vorlage erstellt dann die Lambda-Funktion, bei der die Domain mithilfe des ML Commons-Plugins einen Konnektor erstellt. Nachdem OpenSearch Service den Connector erstellt hat, ist die Einrichtung der Remote-Inferenz abgeschlossen und Sie können semantische Suchen mithilfe der Amazon Bedrock API-Operationen ausführen.

**Anmerkung**  
Da Amazon Bedrock seine eigenen ML-Modelle hostet, müssen Sie kein Modell für SageMaker Runtime bereitstellen. Stattdessen verwendet die Vorlage einen vordefinierten Endpunkt für Amazon Bedrock und überspringt die Schritte zur Endpunktbereitstellung.

**Um die Amazon CloudFormation Bedrock-Vorlage zu verwenden**

1. Öffnen Sie die [Amazon OpenSearch Service-Konsole](https://console.aws.amazon.com/aos/home ).

1. Wählen Sie im linken Navigationsbereich **Integrationen** aus.

1. Wählen **Sie unter Integrate with Amazon Titan Text Embeddings model through Amazon Bedrock** die Optionen **Domain konfigurieren, Public domain** **konfigurieren** aus.

1. Folgen Sie der Aufforderung, um Ihr Modell einzurichten.

**Anmerkung**  
OpenSearch Der Service bietet auch eine separate Vorlage für die Konfiguration einer Amazon VPC-Domain. Wenn Sie diese Vorlage verwenden, müssen Sie die Amazon VPC-ID für die Lambda-Funktion angeben.

Darüber hinaus bietet OpenSearch Service die folgenden Amazon Bedrock-Vorlagen für die Verbindung mit dem Cohere-Modell und dem Amazon Titan Multimodal Embeddings-Modell:
+ `Integration with Cohere Embed through Amazon Bedrock`
+ `Integrate with Amazon Bedrock Titan Multi-modal`

# Konfiguration von Agentic Search mit Bedrock Claude
<a name="cfn-template-agentic-search"></a>

Agentic Search nutzt autonome Agenten, um komplexe Suchanfragen in Ihrem Namen durchzuführen, indem sie die Benutzerabsichten verstehen, die richtigen Tools orchestrieren, optimierte Abfragen generieren und transparente Zusammenfassungen ihrer Entscheidungen über eine natürliche Sprachschnittstelle bereitstellen. Diese Agenten basieren auf Argumentationsmodellen wie Bedrock Claude.

Gehen Sie wie folgt vor, um eine CloudFormation Vorlage zu öffnen und auszuführen, die Bedrock Claude-Modelle automatisch für die Agentensuche konfiguriert. Außerdem erfahren Sie, wie Sie Ihre Agenten im AI Search Flows-Plugin auf Dashboards konfigurieren und erstellen. OpenSearch 

## Bedrock Claude Access aktivieren
<a name="agentic-search-bedrock-access"></a>

1. **Voraussetzung:** Wenn Ihre Domain eine differenzierte Zugriffskontrolle verwendet, ordnen `arn:aws:iam::your-account-id:role/LambdaInvokeOpenSearchMLCommonsRole` Sie der Rolle eine Backend-Rolle zu, bevor Sie die Vorlage `ml_full_access` ausführen. Diese IAM-Rolle wird automatisch von erstellt, CloudFormation falls sie noch nicht vorhanden ist. Weitere Informationen zur Konfiguration des Mappings finden Sie unter[Ordnen Sie die ML-Rolle in OpenSearch Dashboards zu (wenn Sie eine differenzierte Zugriffskontrolle verwenden)](ml-external-connector.md#connector-external-fgac).

1. Öffnen Sie die Amazon OpenSearch Service-Konsole zu [https://console.aws.amazon.com/aos/Hause](https://console.aws.amazon.com/aos/home).

1. Wählen Sie in der linken Navigationsleiste **Integrationen** aus.

1. **Wählen Sie unter **Integration mit Bedrock Claude for Agentic Search** die Option Domain konfigurieren aus.** Stellen Sie sicher, dass auf Ihrer Domain Version 3.3 oder höher installiert ist.

1. Geben Sie in der CloudFormation Vorlage Ihren OpenSearch Service-Domain-Endpunkt ein und wählen Sie ein Modell aus. Die übrigen Felder sind optional oder bereits ausgefüllt. Klicken Sie auf **Stack erstellen** und warten Sie, bis die Bereitstellung abgeschlossen ist.

1. Wählen Sie in der Amazon OpenSearch Service-Konsole **Domains** und anschließend Ihre Domain aus. Klicken Sie auf die **OpenSearch Dashboard-URL**, um auf OpenSearch Dashboards zuzugreifen.

## Agenten erstellen und Agentic Search ausführen
<a name="agentic-search-building-agents"></a>

1. Öffnen Sie in den OpenSearch Dashboards das Menü auf der linken Seite. Wählen Sie **OpenSearch Plugins** > **AI Search Flows**, um auf das Plugin zuzugreifen.

1. **Wählen Sie auf der Seite **Workflows** die Registerkarte **Neuer Workflow** aus und klicken Sie unter der Karte **Agentensuche** auf Erstellen.**

1. **Geben Sie einen eindeutigen Namen für Ihre Suchkonfiguration ein und klicken Sie auf Erstellen.**

1. Klicken **Sie unter Agent konfigurieren** auf **Neuen Agenten erstellen**. **Wählen Sie Ihr neu erstelltes Bedrock Claude-Modell aus und klicken Sie dann auf Create Agent.** Wenn die Schaltfläche deaktiviert ist, überprüfen Sie **Erweiterte Einstellungen** > **LLM-Schnittstelle** und stellen Sie sicher, dass eine gültige Schnittstelle ausgewählt ist. **Alle Modelle von CloudFormation werden Bedrock Claude-Modelle sein. Sie können also **Bedrock Claude** auswählen, falls dies noch nicht der Fall ist, und dann auf Create agent klicken.**

1. Versuchen Sie unter **Testablauf**, Agentensuchen auszuführen. **Geben Sie eine Suchabfrage in natürlicher Sprache ein und klicken Sie auf Suchen.**

Eine vollständige Dokumentation des AI Search Flows-Plug-ins finden Sie in der Dokumentation unter [Konfiguration von Agentic Search](https://docs.opensearch.org/latest/vector-search/ai-search/building-agentic-search-flows/). OpenSearch 

Weitere Informationen zur Funktionsweise von Agentic Search finden Sie in der Dokumentation unter [Agentic](https://opensearch.org/docs/latest/vector-search/ai-search/agentic-search/) Search. OpenSearch 

# Vorlagen für die MCP-Serverintegration
<a name="cfn-template-mcp-server"></a>

Mit den Model Context Protocol (MCP) -Servervorlagen können Sie einen OpenSearch gehosteten MCP-Server auf Amazon Bedrock AgentCore bereitstellen und so die Integrationskomplexität zwischen KI-Agenten und Tools reduzieren. OpenSearch Weitere Informationen finden Sie unter [Was ist Amazon Bedrock AgentCore](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html)? .

## Funktionen der Vorlage
<a name="template-mcp-server-features"></a>

Diese Vorlage enthält die folgenden Hauptfunktionen für die Bereitstellung und Verwaltung Ihres MCP-Servers.

**Verwaltete MCP-Serverbereitstellung**  
Wird **opensearch-mcp-server-py**mithilfe von Amazon Bedrock AgentCore Runtime bereitgestellt und bietet einen Agenten-Endpunkt, der Anfragen an den zugrunde liegenden MCP-Server weiterleitet. Weitere Informationen finden Sie unter. [opensearch-mcp-server-py*GitHub*](https://github.com/opensearch-project/opensearch-mcp-server-py)

**Authentifizierung und Sicherheit**  
Verarbeitet sowohl die eingehende Authentifizierung (vom Benutzer zum MCP-Server) als auch die ausgehende Authentifizierung (vom MCP-Server zum OpenSearch) und unterstützt OAuth die Unternehmensauthentifizierung.

**Anmerkung**  
Die MCP-Servervorlage ist nur in den folgenden Fällen verfügbar: AWS-Regionen  
USA Ost (Nord-Virginia)
USA West (Oregon)
Europa (Frankfurt)
Asien-Pazifik (Sydney)

## Um die MCP-Servervorlage zu verwenden
<a name="template-mcp-server-procedure"></a>

Gehen Sie wie folgt vor, um die MCP-Servervorlage bereitzustellen und sie mit Ihrer OpenSearch Domain zu verbinden.

1. Öffnen Sie die [Amazon OpenSearch Service-Konsole](https://console.aws.amazon.com//aos/home ). 

1. Wählen Sie im linken Navigationsbereich **Integrationen** aus.

1. Suchen Sie die Vorlage für die **MCP-Serverintegration**.

1. Wählen Sie **Domäne konfigurieren** aus. Geben Sie dann Ihren OpenSearch Domain-Endpunkt ein.

Die Vorlage erstellt eine AgentCore Runtime und die folgenden Komponenten, wenn die entsprechenden optionalen Parameter nicht angegeben sind:
+ Ein Amazon-ECR-Repository
+ Ein Amazon Cognito Cognito-Benutzerpool als Autorisierer OAuth 
+ Eine Ausführungsrolle, die von der Runtime verwendet wird AgentCore 

Nachdem Sie dieses Verfahren abgeschlossen haben, sollten Sie nach der Erstellung die folgenden Schritte ausführen:

1. **Für Amazon OpenSearch Service**: Ordnen Sie Ihren ARN für die Ausführungsrolle einer OpenSearch Backend-Rolle zu, um den Zugriff auf Ihre Domain zu kontrollieren.

   **Für Amazon OpenSearch Serverless**: Erstellen Sie eine Datenzugriffsrichtlinie, die es Ihrer Ausführungsrolle ermöglicht, auf Ihre Sammlung zuzugreifen.

1. Holen Sie sich ein OAuth Zugriffstoken von Ihrem Autorisierer. Verwenden Sie dann dieses Token, um über die in Ihrer CloudFormation Stack-Ausgabe angegebene URL auf den MCP-Server zuzugreifen.

Weitere Informationen finden Sie unter [Richtlinienaktionen für Serverless OpenSearch](security-iam-serverless.md#security-iam-serverless-id-based-policies-actions).

## Integration mit KI-Agenten
<a name="cfn-template-mcp-agent-integrations"></a>

Nach der Bereitstellung können Sie den MCP-Server in jeden MCP-kompatiblen Agenten integrieren. Weitere Informationen finden Sie unter [Aufrufen Ihres bereitgestellten MCP-Servers](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-mcp.html#runtime-mcp-invoke-server) im *Amazon Bedrock* Developer Guide. 

**Integration für Entwickler**  
Sie können den MCP-Serverendpunkt zu Ihrer Agentenkonfiguration hinzufügen. Sie können es auch mit der Amazon Q Developer CLI, benutzerdefinierten Agenten oder anderen MCP-kompatiblen Agenten verwenden.

**Einsatz auf Unternehmensebene**  
Zentral gehostete Agenten können mit OpenSearch einer einzigen Komponente eine Verbindung zu mehreren Diensten herstellen. Dieser Agent unterstützt OAuth Unternehmens-Authentifizierungssysteme und ist skalierbar, um mehrere Benutzer und Anwendungsfälle zu unterstützen.

### Beispiel für die Verwendung des Strands Agents Frameworks
<a name="strands-agent-integration-id"></a>

```
import os
import requests
from strands import Agent
from strands.tools.mcp import MCPClient
from mcp.client.streamable_http import streamablehttp_client

def get_bearer_token(discovery_url: str, client_id: str, client_secret: str):
    response = requests.get(discovery_url)
    discovery_data = response.json()
    token_endpoint = discovery_data['token_endpoint']

    data = {
        'grant_type': 'client_credentials',
        'client_id': client_id,
        'client_secret': client_secret
    }
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }

    response = requests.post(token_endpoint, data=data, headers=headers)
    token_data = response.json()
    return token_data['access_token']

if __name__ == "__main__":
    discovery_url = os.environ["DISCOVERY_URL"]
    client_id = os.environ["CLIENT_ID"]
    client_secret = os.environ["CLIENT_SECRET"]
    mcp_url = os.environ["MCP_URL"]

    bearer_token = get_bearer_token(discovery_url, client_id, client_secret)

    opensearch_mcp_client = MCPClient(lambda: streamablehttp_client(mcp_url, {
        "authorization": f"Bearer {bearer_token}",
        "Content-Type": "application/json"
    }))

    with opensearch_mcp_client:
        tools = opensearch_mcp_client.list_tools_sync()
        agent = Agent(tools=tools)
        agent("list indices")
```

*Weitere Informationen finden Sie unter [Hosting von OpenSearch MCP Server with Amazon Bedrock AgentCore](https://opensearch.org/blog/hosting-opensearch-mcp-server-with-amazon-bedrock-agentcore/) auf der OpenSearch Website.*

# SageMaker Amazon-Vorlagen
<a name="cfn-template-sm"></a>

Die SageMaker CloudFormation Amazon-Vorlagen definieren mehrere AWS Ressourcen, um das neuronale Plugin und die semantische Suche für Sie einzurichten. 

Verwenden Sie zunächst die SageMaker Vorlage **Integration mit Texteinbettungsmodellen über Amazon**, um ein Texteinbettungsmodell in SageMaker Runtime als Server bereitzustellen. Wenn Sie keinen Modellendpunkt angeben, CloudFormation erstellt eine IAM-Rolle, die es SageMaker Runtime ermöglicht, Modellartefakte von Amazon S3 herunterzuladen und auf dem Server bereitzustellen. Wenn Sie einen Endpunkt angeben, CloudFormation erstellt eine IAM-Rolle, die der Lambda-Funktion den Zugriff auf die OpenSearch Dienstdomäne ermöglicht oder, falls die Rolle bereits vorhanden ist, aktualisiert und wiederverwendet. Der Endpunkt dient dem Remote-Modell, das für den ML-Connector mit dem ML Commons-Plugin verwendet wird. 

Verwenden Sie dann die SageMaker Vorlage **Integration with Sparse Encoders through Amazon**, um eine Lambda-Funktion zu erstellen, mit der Ihre Domain Remote Inference Connectors einrichtet. Nachdem der Konnektor in OpenSearch Service erstellt wurde, kann die Remote-Inferenz mithilfe des Remote-Modells in Runtime eine semantische Suche ausführen. SageMaker Die Vorlage gibt Ihnen die Modell-ID in Ihrer Domain zurück, sodass Sie mit der Suche beginnen können.

**Um die Amazon SageMaker CloudFormation AI-Vorlagen zu verwenden**

1. Öffnen Sie die [Amazon OpenSearch Service-Konsole](https://console.aws.amazon.com//aos/home ).

1. Wählen Sie im linken Navigationsbereich **Integrationen** aus.

1. Wählen Sie unter jeder Amazon SageMaker AI-Vorlage die Optionen **Domain konfigurieren**, **Public Domain konfigurieren** aus.

1. Folgen Sie der Aufforderung in der CloudFormation Konsole, um Ihren Stack bereitzustellen und ein Modell einzurichten.

**Anmerkung**  
OpenSearch Der Service bietet auch eine separate Vorlage zur Konfiguration der VPC-Domäne. Wenn Sie diese Vorlage verwenden, müssen Sie die VPC-ID für die Lambda-Funktion angeben.

## Fernableitung für Vorlagen zur semantischen Hervorhebung
<a name="cfn-template-semantic-highlighting"></a>

Semantische Hervorhebung ist eine erweiterte Suchfunktion, die die Relevanz der Ergebnisse erhöht, indem sie die Bedeutung und den Kontext von Suchanfragen analysiert, anstatt sich ausschließlich auf exakte Stichwortübereinstimmungen zu verlassen. Bei dieser Funktion werden Modelle für maschinelles Lernen verwendet, um die semantische Ähnlichkeit zwischen Suchanfragen und Dokumentinhalten zu bewerten und die kontextrelevantesten Sätze oder Passagen in Dokumenten zu identifizieren und hervorzuheben. Im Gegensatz zu herkömmlichen Hervorhebungsmethoden, die sich auf exakte Übereinstimmungen mit Begriffen konzentrieren, nutzt die semantische Hervorhebung KI-Modelle, um jeden Satz anhand von Kontextinformationen sowohl aus der Anfrage als auch aus dem umgebenden Text zu bewerten, sodass relevante Informationen auch dann angezeigt werden können, wenn in den hervorgehobenen Passagen keine exakten Suchbegriffe enthalten sind. Dieser Ansatz ist besonders nützlich für KI-gesteuerte Suchimplementierungen, bei denen Benutzer der semantischen Bedeutung Vorrang vor der wörtlichen Wortübereinstimmung einräumen, sodass Suchadministratoren intelligentere und kontextsensivere Sucherlebnisse bereitstellen können, die aussagekräftige Inhaltsbereiche hervorheben und nicht nur das Vorkommen von Schlüsselwörtern. [Weitere Informationen finden Sie unter Semantische Hervorhebung verwenden.](https://docs.opensearch.org/latest/tutorials/vector-search/semantic-highlighting-tutorial/)

Gehen Sie wie folgt vor, um eine CloudFormation Vorlage zu öffnen und auszuführen, die SageMaker Amazon-Modelle automatisch für die semantische Hervorhebung konfiguriert.

**Um die Vorlage für semantische Hervorhebungen zu verwenden CloudFormation**

1. Öffnen Sie die Amazon OpenSearch Service-Konsole zu [https://console.aws.amazon.com/aos/Hause](https://console.aws.amazon.com/aos/home ).

1. Wählen Sie in der linken Navigationsleiste **Integrationen** aus.

1. Wählen Sie unter **Semantische Hervorhebung durch SageMaker Amazon-Integration aktivieren** die Optionen **Domain konfigurieren**, **Öffentliche Domain konfigurieren** aus.

1. Folgen Sie der Aufforderung, um Ihr Modell einzurichten.

**Anmerkung**  
OpenSearch Der Service bietet auch eine separate Vorlage zur Konfiguration der VPC-Domäne. Wenn Sie diese Vorlage verwenden, müssen Sie die VPC-ID für die Lambda-Funktion angeben.

## ML Commons-Einstellungen werden nicht unterstützt
<a name="sm"></a>

Amazon OpenSearch Service unterstützt die Verwendung der folgenden ML Commons-Einstellungen nicht: 
+ `plugins.ml_commons.allow_registering_model_via_url`
+ `plugins.ml_commons.allow_registering_model_via_local_file`

**Wichtig**  
Deaktivieren Sie auf *Produktionsclustern* die Cluster-Einstellung nicht `plugins.ml_commons.only_run_on_ml_node` (setzen Sie sie nicht auf`false`). Die Option zur Deaktivierung dieses Schutzes dient der Erleichterung der Entwicklung, aber Produktionscluster sollten die Konnektoren verwenden. Weitere Informationen finden Sie unter [Amazon OpenSearch Service ML-Konnektoren für AWS-Services](ml-amazon-connector.md).

Weitere Informationen zu den ML Commons-Einstellungen finden Sie unter [ML Commons-Cluster-Einstellungen](https://opensearch.org/docs/latest/ml-commons-plugin/cluster-settings/).

# OpenSearch Vorlagen für das Service Flow-Framework
<a name="ml-workflow-framework"></a>

Mit den Amazon OpenSearch Service Flow Framework-Vorlagen können Sie komplexe Aufgaben zur Einrichtung und Vorverarbeitung von OpenSearch Services automatisieren, indem sie Vorlagen für gängige Anwendungsfälle bereitstellen. Sie können beispielsweise Flow-Framework-Vorlagen verwenden, um Einrichtungsaufgaben für maschinelles Lernen zu automatisieren. Die Amazon OpenSearch Service Flow Framework-Vorlagen bieten eine kompakte Beschreibung des Einrichtungsprozesses in einem JSON- oder YAML-Dokument. Diese Vorlagen beschreiben automatisierte Workflow-Konfigurationen für Konversationschats oder die Generierung von Abfragen, KI-Konnektoren, Tools, Agenten und andere Komponenten, die den OpenSearch Service für die Backend-Nutzung für generative Modelle vorbereiten.

Die Vorlagen für das Amazon OpenSearch Service Flow Framework können an Ihre spezifischen Bedürfnisse angepasst werden. Ein Beispiel für eine benutzerdefinierte Flow-Framework-Vorlage finden Sie unter [Flow-Framework](https://github.com/opensearch-project/flow-framework/blob/main/sample-templates/deploy-bedrock-claude-model.json). Vom OpenSearch Service bereitgestellte Vorlagen finden Sie unter [Workflow-Vorlagen](https://opensearch.org/docs/2.13/automating-configurations/workflow-templates/). Eine umfassende Dokumentation, einschließlich detaillierter Schritte, einer API-Referenz und einer Referenz aller verfügbaren Einstellungen, finden Sie in der Open-Source-Dokumentation unter [Automatisieren der Konfiguration](https://github.com/opensearch-project/flow-framework/blob/main/sample-templates/deploy-bedrock-claude-model.json). OpenSearch 

**Anmerkung**  
Flow-Framework unterstützt keine Backend-Rollenfilterung für OpenSearch Service 2.17.

# ML-Konnektoren im Service erstellen OpenSearch
<a name="ml-create"></a>

Mit Amazon OpenSearch Service Flow Framework-Vorlagen können Sie ML-Konnektoren konfigurieren und installieren, indem Sie die in ml-commons angebotene Create Connector-API verwenden. Sie können ML-Konnektoren verwenden, um OpenSearch Service mit anderen AWS Diensten oder Plattformen von Drittanbietern zu verbinden. Weitere Informationen dazu finden Sie unter [Connectors für ML-Plattformen von Drittanbietern erstellen](https://opensearch.org/docs/2.13/ml-commons-plugin/remote-models/connectors/). Die Amazon OpenSearch Service Flow Framework-API ermöglicht Ihnen die Automatisierung von Aufgaben zur Einrichtung und Vorverarbeitung von OpenSearch Services und kann zur Erstellung von ML-Konnektoren verwendet werden. 

Bevor Sie einen Connector in OpenSearch Service erstellen können, müssen Sie Folgendes tun:
+ Erstellen Sie eine Amazon SageMaker AI-Domain.
+ Erstellen Sie eine IAM-Rolle.
+ Konfigurieren Sie die Berechtigung zum Übergeben von Rollen.
+ Ordnen Sie die Flow-Framework- und ML-Commons-Rollen in OpenSearch Dashboards zu.

Weitere Informationen zur Einrichtung von ML-Konnektoren für AWS Services finden Sie unter [Amazon OpenSearch Service ML-Konnektoren für AWS Services](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq). Weitere Informationen zur Verwendung von OpenSearch Service ML-Konnektoren mit Plattformen von Drittanbietern finden Sie unter [Amazon OpenSearch Service ML-Konnektoren für Drittanbieterplattformen](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).

## Einen Connector über einen Flow-Framework-Service erstellen
<a name="ml-workflow"></a>

Um eine Flow-Framework-Vorlage mit Connector zu erstellen, müssen Sie eine `POST` Anfrage an Ihren OpenSearch Service-Domain-Endpunkt senden. Sie können cURL, einen Python-Beispielclient, Postman oder eine andere Methode verwenden, um eine signierte Anfrage zu senden. Die `POST` Anfrage hat das folgende Format:

```
POST /_plugins/_flow_framework/workflow 
{
  "name": "Deploy Claude Model",
  "description": "Deploy a model using a connector to Claude",
  "use_case": "PROVISION",
  "version": {
    "template": "1.0.0",
    "compatibility": [
      "2.12.0",
      "3.0.0"
    ]
  },
  "workflows": {
    "provision": {
      "nodes": [
        {
          "id": "create_claude_connector",
          "type": "create_connector",
          "user_inputs": {
            "name": "Claude Instant Runtime Connector",
            "version": "1",
            "protocol": "aws_sigv4",
            "description": "The connector to Bedrock service for Claude model",
            "actions": [
              {
                "headers": {
                  "x-amz-content-sha256": "required",
                  "content-type": "application/json"
                },
                "method": "POST",
                "request_body": "{ \"prompt\":\"${parameters.prompt}\", \"max_tokens_to_sample\":${parameters.max_tokens_to_sample}, \"temperature\":${parameters.temperature},  \"anthropic_version\":\"${parameters.anthropic_version}\" }",
                "action_type": "predict",
                "url": "https://bedrock-runtime.us-west-2.amazonaws.com/model/anthropic.claude-instant-v1/invoke"
              }
            ],
            "credential": {
                "roleArn": "arn:aws:iam::account-id:role/opensearch-secretmanager-role" 
             },
            "parameters": {
              "endpoint": "bedrock-runtime.us-west-2.amazonaws.com",
              "content_type": "application/json",
              "auth": "Sig_V4",
              "max_tokens_to_sample": "8000",
              "service_name": "bedrock",
              "temperature": "0.0001",
              "response_filter": "$.completion",
              "region": "us-west-2",
              "anthropic_version": "bedrock-2023-05-31"
            }
          }
        }
      ]
    }
  }
}
```

Wenn sich Ihre Domain in einer Virtual Private Cloud (Amazon VPC) befindet, müssen Sie mit der Amazon VPC verbunden sein, damit die Anfrage den AI-Connector erfolgreich erstellen kann. Der Zugriff auf eine Amazon VPC hängt von der Netzwerkkonfiguration ab, beinhaltet jedoch in der Regel eine Verbindung zu einem VPN- oder Unternehmensnetzwerk. Um zu überprüfen, ob Sie Ihre OpenSearch Service-Domain erreichen können, navigieren Sie `https://your-vpc-domain.region.es.amazonaws.com` in einem Webbrowser zu und stellen Sie sicher, dass Sie die Standard-JSON-Antwort erhalten. (Ersetzen Sie die *placeholder text* durch Ihre eigenen Werte.

### Beispiel für einen Python-Client
<a name="ml-python-sample"></a>

Der Python-Client ist einfacher zu automatisieren als eine `HTTP` Anfrage und hat eine bessere Wiederverwendbarkeit. Um den AI-Konnektor mit dem Python-Client zu erstellen, speichern Sie den folgenden Beispielcode in einer Python-Datei. [Der Client benötigt das [AWS SDK for Python (Boto3)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq), die Pakete [requests:Http for Humans und requests-aws4auth](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq) 1.2.3.](https://pypi.org/project/requests-aws4auth/)

```
import boto3
import requests 
from requests_aws4auth import AWS4Auth

host = 'domain-endpoint/'
region = 'region'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

path = '_plugins/_flow_framework/workflow'
url = host + path

payload = {
  "name": "Deploy Claude Model",
  "description": "Deploy a model using a connector to Claude",
  "use_case": "PROVISION",
  "version": {
    "template": "1.0.0",
    "compatibility": [
      "2.12.0",
      "3.0.0"
    ]
  },
  "workflows": {
    "provision": {
      "nodes": [
        {
          "id": "create_claude_connector",
          "type": "create_connector",
          "user_inputs": {
            "name": "Claude Instant Runtime Connector",
            "version": "1",
            "protocol": "aws_sigv4",
            "description": "The connector to Bedrock service for Claude model",
            "actions": [
              {
                "headers": {
                  "x-amz-content-sha256": "required",
                  "content-type": "application/json"
                },
                "method": "POST",
                "request_body": "{ \"prompt\":\"${parameters.prompt}\", \"max_tokens_to_sample\":${parameters.max_tokens_to_sample}, \"temperature\":${parameters.temperature},  \"anthropic_version\":\"${parameters.anthropic_version}\" }",
                "action_type": "predict",
                "url": "https://bedrock-runtime.us-west-2.amazonaws.com/model/anthropic.claude-instant-v1/invoke"
              }
            ],
            "credential": {
                "roleArn": "arn:aws:iam::account-id:role/opensearch-secretmanager-role" 
             },
            "parameters": {
              "endpoint": "bedrock-runtime.us-west-2.amazonaws.com",
              "content_type": "application/json",
              "auth": "Sig_V4",
              "max_tokens_to_sample": "8000",
              "service_name": "bedrock",
              "temperature": "0.0001",
              "response_filter": "$.completion",
              "region": "us-west-2",
              "anthropic_version": "bedrock-2023-05-31"
            }
          }
        }
      ]
    }
  }
}

headers = {"Content-Type": "application/json"}

r = requests.post(url, auth=awsauth, json=payload, headers=headers)
print(r.status_code)
print(r.text)
```

#### Vordefinierte Workflow-Vorlagen
<a name="ml-predefined"></a>

Amazon OpenSearch Service bietet mehrere Workflow-Vorlagen für einige gängige Anwendungsfälle des maschinellen Lernens (ML). Die Verwendung einer Vorlage vereinfacht komplexe Konfigurationen und bietet viele Standardwerte für Anwendungsfälle wie semantische Suche oder Konversationssuche. Sie können eine Workflow-Vorlage angeben, wenn Sie die Create Workflow API aufrufen.
+ Um eine vom OpenSearch Service bereitgestellte Workflow-Vorlage zu verwenden, geben Sie den Anwendungsfall der Vorlage als `use_case` Abfrageparameter an. 
+ Um eine benutzerdefinierte Workflow-Vorlage zu verwenden, geben Sie die vollständige Vorlage im Anfragetext an. Ein Beispiel für eine benutzerdefinierte Vorlage finden Sie in einer JSON-Beispielvorlage oder einer YAML-Beispielvorlage.

#### Anwendungsfälle für Vorlagen
<a name="templates"></a>

Diese Tabelle bietet einen Überblick über die verschiedenen verfügbaren Vorlagen, eine Beschreibung der Vorlagen und die erforderlichen Parameter.


| Anwendungsfall für Vorlagen | Description | Erforderliche Parameter | 
| --- | --- | --- | 
| `bedrock_titan_embedding_model_deploy` | Erstellt und implementiert ein Amazon Bedrock-Einbettungsmodell (standardmäßig `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `bedrock_titan_embedding_model_deploy` | Erstellt und implementiert ein multimodales Einbettungsmodell von Amazon Bedrock (standardmäßig `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `cohere_embedding_model_deploy` | Erstellt ein Cohere-Einbettungsmodell und stellt es bereit (standardmäßig 3.0). embed-english-v | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `cohere_chat_model_deploy` | Erstellt ein Cohere-Chat-Modell und stellt es bereit (standardmäßig Cohere Command). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `open_ai_embedding_model_deploy` | Erzeugt und implementiert ein OpenAI-Einbettungsmodell (standardmäßig -002). text-embedding-ada | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `openai_chat_model_deploy` | Erzeugt und implementiert ein OpenAI-Chat-Modell (standardmäßig gpt-3.5-Turbo). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding` | Konfiguriert die semantische Suche und stellt ein Cohere-Einbettungsmodell bereit. Sie müssen den API-Schlüssel für das Cohere-Modell angeben. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding_query_enricher` | Konfiguriert die semantische Suche und stellt ein Cohere-Einbettungsmodell bereit. Fügt einen query\$1enricher-Suchprozessor hinzu, der eine Standardmodell-ID für neuronale Abfragen festlegt. Sie müssen den API-Schlüssel für das Cohere-Modell angeben. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `multimodal_search_with_bedrock_titan` | Stellt ein multimodales Amazon Bedrock-Modell bereit und konfiguriert eine Aufnahme-Pipeline mit einem text\$1image\$1embedding-Prozessor und einem k-NN-Index für die multimodale Suche. Sie müssen Ihre Anmeldeinformationen angeben. AWS  | `create_connector.credential.roleArn` | 

**Anmerkung**  
Für alle Vorlagen, die einen geheimen ARN benötigen, wird das Geheimnis standardmäßig mit dem Schlüsselnamen „key“ in AWS Secrets Manager gespeichert.

## Standardvorlagen mit vortrainierten Modellen
<a name="ml-pretrained-default"></a>

Amazon OpenSearch Service bietet zwei zusätzliche Standard-Workflow-Vorlagen, die im OpenSearch Open-Source-Service nicht verfügbar sind.


| Anwendungsfall für Vorlagen | Description | 
| --- | --- | 
| `semantic_search_with_local_model` | Konfiguriert die [semantische Suche](https://opensearch.org/docs/2.14/search-plugins/semantic-search/) und stellt ein vortrainiertes Modell bereit (). `msmarco-distilbert-base-tas-b` Fügt einen [https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/](https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/)Suchprozessor hinzu, der eine Standardmodell-ID für neuronale Abfragen festlegt und einen verknüpften k-NN-Index namens '' erstellt. my-nlp-index | 
| `hybrid_search_with_local_model` | Konfiguriert die [Hybridsuche](https://opensearch.org/docs/2.14/search-plugins/hybrid-search/) und stellt ein vortrainiertes Modell bereit (). `msmarco-distilbert-base-tas-b` Fügt einen [https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/](https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/)Suchprozessor hinzu, der eine Standardmodell-ID für neuronale Abfragen festlegt und einen verknüpften k-NN-Index namens '' erstellt. my-nlp-index | 

# Konfigurieren von -Berechtigungen
<a name="flow-framework-permissions"></a>

Wenn Sie eine neue Domain mit Version 2.13 oder höher erstellen, sind die Berechtigungen bereits vorhanden. Wenn Sie Flow Framework auf einer bereits vorhandenen OpenSearch Service-Domain mit Version 2.11 oder früher aktivieren, die Sie dann auf Version 2.13 oder höher aktualisieren, müssen Sie die Rolle definieren. `flow_framework_manager` Benutzer ohne Administratorrechte müssen dieser Rolle zugeordnet werden, um Warm-Indizes in Domains mithilfe einer fein abgestuften Zugriffskontrolle zu verwalten. Führen Sie die folgenden Schritte aus, um die `flow_framework_manager`-Rolle manuell zu erstellen:

1. **Gehen Sie in OpenSearch Dashboards zu **Sicherheit** und wählen Sie Berechtigungen aus.**

1. Wählen Sie **Aktionsgruppe erstellen** und konfigurieren Sie die folgenden Gruppen:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/opensearch-service/latest/developerguide/flow-framework-permissions.html)

1. Wählen Sie **Rollen** und **Rolle erstellen**.

1. Nennen Sie die Rolle **flow\$1framework\$1manager**.

1. Wählen Sie für **Clusterberechtigungen** `flow_framework_full_access` und `flow_framework_read_access` aus.

1. Geben Sie für **Index** `*` ein.

1. Wählen Sie für **Indexberechtigungen** `indices:admin/aliases/get`, `indices:admin/mappings/get` und `indices_monitor` aus.

1. Wählen Sie **Erstellen** aus.

1. Nachdem Sie die Rolle erstellt haben, [ordnen Sie sie](fgac.md#fgac-mapping) einer beliebigen Benutzer- oder Backend-Rolle zu, die die Flow-Framework-Indizes verwaltet.