

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat konektor ML di OpenSearch Layanan
<a name="ml-create"></a>

Templat kerangka kerja alur OpenSearch Layanan Amazon memungkinkan Anda mengonfigurasi dan menginstal konektor ML dengan memanfaatkan API buat konektor yang ditawarkan di ml-commons. Anda dapat menggunakan konektor ML untuk menghubungkan OpenSearch Layanan ke AWS layanan lain atau platform pihak ketiga. Untuk informasi selengkapnya tentang hal ini, lihat [Membuat konektor untuk platform ML pihak ketiga](https://opensearch.org/docs/2.13/ml-commons-plugin/remote-models/connectors/). Framework Framework Amazon OpenSearch Service API memungkinkan Anda mengotomatiskan tugas penyiapan dan pra-pemrosesan OpenSearch Layanan dan dapat digunakan untuk membuat konektor ML. 

Sebelum Anda dapat membuat konektor di OpenSearch Layanan, Anda harus melakukan hal berikut:
+ Buat domain Amazon SageMaker AI.
+ Buat peran IAM.
+ Konfigurasikan izin peran lulus.
+ Petakan peran flow-framework dan ml-commons di Dasbor. OpenSearch 

Untuk informasi selengkapnya tentang cara mengatur konektor ML untuk AWS layanan, lihat [konektor Amazon OpenSearch Service MLuntuk AWS layanan](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq). Untuk mempelajari selengkapnya tentang penggunaan konektor OpenSearch Service ML dengan platform pihak ketiga, lihat [konektor Amazon OpenSearch Service ML untuk platform pihak ketiga](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).

## Membuat konektor melalui layanan flow-framework
<a name="ml-workflow"></a>

Untuk membuat template flow-framework dengan konektor, Anda harus mengirim `POST` permintaan ke endpoint domain OpenSearch Service Anda. Anda dapat menggunakan cURL, contoh klien Python, Postman, atau metode lain untuk mengirim permintaan yang ditandatangani. `POST`Permintaan mengambil format berikut:

```
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"
            }
          }
        }
      ]
    }
  }
}
```

Jika domain Anda berada dalam cloud pribadi virtual (Amazon VPC), Anda harus terhubung ke VPC Amazon agar permintaan berhasil membuat konektor AI. Mengakses VPC Amazon bervariasi menurut konfigurasi jaringan, tetapi biasanya melibatkan koneksi ke VPN atau jaringan perusahaan. Untuk memastikan bahwa Anda dapat mencapai domain OpenSearch Layanan, `https://{{your-vpc-domain}}.{{region}}.es.amazonaws.com` navigasikan ke browser web dan verifikasi bahwa Anda menerima respons JSON default. (Ganti {{placeholder text}} dengan nilai Anda sendiri.

### Contoh klien Python
<a name="ml-python-sample"></a>

Klien Python lebih mudah diotomatisasi daripada `HTTP` permintaan dan memiliki kegunaan ulang yang lebih baik. Untuk membuat konektor AI dengan klien Python, simpan kode contoh berikut ke file Python. [Klien memerlukan paket [AWS SDK untuk Python ([Requests:HTTP Boto3), untuk Manusia, dan requests-aws4auth](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq)](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)
```

#### Pre-defined templat alur kerja
<a name="ml-predefined"></a>

Amazon OpenSearch Service menyediakan beberapa templat alur kerja untuk beberapa kasus penggunaan machine learning (ML) umum. Menggunakan template menyederhanakan pengaturan yang kompleks dan memberikan banyak nilai default untuk kasus penggunaan seperti pencarian semantik atau percakapan. Anda dapat menentukan template alur kerja saat memanggil Create Workflow API.
+ Untuk menggunakan templat alur kerja yang disediakan OpenSearch Layanan, tentukan kasus penggunaan templat sebagai parameter `use_case` kueri. 
+ Untuk menggunakan template alur kerja kustom, berikan template lengkap di badan permintaan. Untuk contoh template kustom, lihat contoh template JSON atau contoh template YAMAL.

#### Kasus Penggunaan Template
<a name="templates"></a>

Tabel ini memberikan gambaran umum tentang berbagai templat yang tersedia, deskripsi templat, dan parameter yang diperlukan.


| Kasus penggunaan templat | Deskripsi | Parameter yang Diperlukan | 
| --- | --- | --- | 
| `bedrock_titan_embedding_model_deploy` | Membuat dan menerapkan model penyematan Amazon Bedrock (secara default, `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `bedrock_titan_embedding_model_deploy` | Membuat dan menerapkan model penyematan multimodal Amazon Bedrock (secara default, `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `cohere_embedding_model_deploy` | Membuat dan menerapkan model penyematan Cohere (secara default, embed-english-v3.0). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `cohere_chat_model_deploy` | Membuat dan menerapkan model obrolan Cohere (secara default, Perintah Cohere). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `open_ai_embedding_model_deploy` | Membuat dan menerapkan model penyematan OpenAI (secara default, text-embedding-ada-002). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `openai_chat_model_deploy` | Membuat dan menerapkan model obrolan OpenAI (secara default, gpt-3.5-turbo). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding` | Mengonfigurasi pencarian semantik dan menerapkan model penyematan Cohere. Anda harus menyediakan kunci API untuk model Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding_query_enricher` | Mengonfigurasi pencarian semantik dan menerapkan model penyematan Cohere. Menambahkan prosesor pencarian query\_enricher yang menetapkan ID model default untuk kueri saraf. Anda harus menyediakan kunci API untuk model Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `multimodal_search_with_bedrock_titan` | Menerapkan model multimodal Amazon Bedrock dan mengonfigurasi pipeline konsumsi dengan prosesor text\_image\_embedding dan indeks k-NN untuk pencarian multimodal. Anda harus menyediakan AWS kredensial. | `create_connector.credential.roleArn` | 

**catatan**  
Untuk semua template yang memerlukan ARN rahasia, defaultnya adalah menyimpan rahasia dengan nama kunci “kunci” di AWS Secrets Manager.

## Template default dengan model yang telah dilatih
<a name="ml-pretrained-default"></a>

Amazon OpenSearch Service menawarkan dua templat alur kerja default tambahan yang tidak tersedia di Layanan opensource. OpenSearch 


| Kasus penggunaan templat | Deskripsi | 
| --- | --- | 
| `semantic_search_with_local_model` | Mengonfigurasi [pencarian semantik](https://opensearch.org/docs/2.14/search-plugins/semantic-search/) dan menerapkan model () yang telah dilatih sebelumnya. `msmarco-distilbert-base-tas-b` Menambahkan prosesor [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/)pencarian yang menetapkan ID model default untuk kueri saraf dan membuat indeks K-nn tertaut yang disebut 'my-nlp-index'. | 
| `hybrid_search_with_local_model` | Mengonfigurasi [pencarian hybrid](https://opensearch.org/docs/2.14/search-plugins/hybrid-search/) dan menerapkan model () yang telah dilatih sebelumnya. `msmarco-distilbert-base-tas-b` Menambahkan prosesor [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/)pencarian yang menetapkan ID model default untuk kueri saraf dan membuat indeks K-nn tertaut yang disebut 'my-nlp-index'. | 