Data Science-Connector konfigurieren
Verwenden Sie die Schritte in diesem Schritt, um einen OCI Data Science-Connector einzurichten, der für eine Retrieval-Augmented Generation-(RAG-)Pipeline in OCI Search mit OpenSearch verwendet werden soll.
Wenn Sie einen Data Science-Connector anstelle eines generativen AI-Connectors verwenden, müssen Sie den Wert
"llm_model"
in den Payload-Codebeispielen der RAG-Abfrage in RAG mit BM25 ausführen und RAG mit Hybridsuche ausführen in "oci_datascience/<your_llm_model_name>"
aktualisieren.Voraussetzungen
-
Um einen Data Science-Connector mit OCI Search mit OpenSearch zu verwenden, benötigen Sie ein Cluster, das für die Verwendung von OpenSearch Version 2.11 oder höher konfiguriert ist. Standardmäßig sind neue Cluster für die Verwendung von Version 2.11 konfiguriert. Informationen zum Erstellen eines Clusters finden Sie unter OpenSearch-Cluster erstellen.
Für vorhandene Cluster, die für Version 2.3 konfiguriert sind, können Sie ein Inlineupgrade auf Version 2.11 ausführen. Weitere Informationen finden Sie unter OpenSearch Cluster-Softwareupgrades.
Um ein Upgrade vorhandener Cluster auszuführen, die für Version 1.2.3 auf 2.11 konfiguriert sind, müssen Sie den unter OpenSearch Clustersoftwareupgrades beschriebenen Upgradeprozess verwenden.
-
Wenn sich das OpenSearch-Cluster in einem anderen Mandanten als der Data Science-Endpunktmandant befindet, müssen Sie Policys in beiden Mandanten erstellen, um Zugriff auf Data Science-Ressourcen zu erteilen.
Die folgenden Policy-Beispiele enthalten die erforderlichen Berechtigungen. Um diese Beispiele zu verwenden, ersetzen Sie
<caller_tenancy_name>
durch den Namen des Mandanten für das Cluster OpenSearch, und ersetzen Sie<resource_host_tenancy_name>
durch den Namen des Mandanten für den Data Science-Endpunkt.- Policy für Data Science-Mandanten:
define tenancy <caller_tenancy_name> as <caller_tenancy_ocid> admit any-user of tenancy <caller_tenancy_name> to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} in tenancy
- Policy für OpenSearch-Clustermandanten:
define tenancy <resource_host_tenancy_name> as <resource_host_tenancy_ocid> endorse any-user to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} in tenancy <resource_host_tenancy_name>
Wenn Sie mit Policys nicht vertraut sind, finden Sie weitere Informationen unter Erste Schritte mit Policys und Allgemeine Policys.
- Policy für Data Science-Mandanten:
1: Clustereinstellungen konfigurieren
Verwenden Sie den Vorgang Einstellungen der Cluster-APIs, um die empfohlenen Clustereinstellungen wie folgt zu konfigurieren:
PUT _cluster/settings
{
"persistent": {
"plugins": {
"ml_commons": {
"only_run_on_ml_node": "false",
"model_access_control_enabled": "true",
"native_memory_threshold": "99",
"rag_pipeline_feature_enabled": "true",
"memory_feature_enabled": "true",
"allow_registering_model_via_local_file": "true",
"allow_registering_model_via_url": "true",
"model_auto_redeploy.enable":"true",
"model_auto_redeploy.lifetime_retry_times": 10
}
}
}
}
2: Konnektor erstellen
Erstellen Sie den Data Science-Connector mit der folgenden Payload:
POST _plugins/_ml/connectors/_create
{
"name": "DS Chat Connector",
"description": "Check errors in logs",
"version": 2,
"protocol": "oci_sigv1",
"parameters": {
"endpoint": "<model_deployment_endpoint>",
"modelId": "<model_deployment_OCID>",
"auth_type": "resource_principal"
},
"credential": {
},
"actions": [
{
"action_type": "predict",
"method": "POST",
"url": "https://${parameters.endpoint}/${parameters.modelId}/predict",
"request_body": "{\"model\": \"/opt/ds/model/deployed_model\", \"prompt\" : \"${parameters.prompt}\", \"max_tokens\":250, \"temperature\": 0.7, \"top_p\":0.8, \"stream\" : false}",
"post_process_function": "def text = params['choices'][0]['text'].replace('\n', '\\\\n');\n return '{\"name\":\"response\",\"dataAsMap\":{\"inferenceResponse\":{\"generatedTexts\":[{\"text\":\"' + text + '\"}]}}}'"
}
]
}
Ersetzen Sie <model_deployment_endpoint>
und <model_deployment_OCID>
durch die tatsächlichen Werte für das Data Science-Modell-Deployment. Beispiel:
...
"endpoint": "modeldeployment.us-ashburn-1.oci.customer-oci.com"
"modelId": "ocid1.datasciencemodeldeployment.oc1.IAD.examplesmtpsuqmoy4m5cvblu..."
...
Notieren Sie sich die in der Antwort zurückgegebene <connector_ID>:
{
"connector_id": "<connector_ID>",
}
3: Modellgruppe registrieren
Registrieren Sie eine Modellgruppe für den Connector mit dem Vorgang registrieren in den Modellgruppen-APIs, wie im folgenden Beispiel dargestellt:
POST /_plugins/_ml/model_groups/_register
{
"name": "<model_group_name>",
"description": "<model_group_description>"
}
Notieren Sie sich die in der Antwort zurückgegebene <model_group_ID:
{
"model_group_id": "<model_group_ID>",
"status": "CREATED"
}
4: Modell registrieren
Registrieren Sie das Modell mit <model_group_ID> und <connector_ID> aus dem Vorschauschritt, wie im folgenden Beispiel dargestellt:
POST /_plugins/_ml/models/_register
{
"name": "oci-genai-test",
"function_name": "remote",
"model_group_id": "<model_group_ID>",
"description": "test model",
"connector_id": "<connector_ID>"
}
5: Modell bereitstellen
Stellen Sie das Modell bereit, wie im folgenden Beispiel gezeigt:
POST /_plugins/_ml/models/<model_ID>/_deploy
6: RAG-Pipeline erstellen
Erstellen Sie eine RAG-Pipeline mit der <model_ID>
aus dem vorherigen Schritt, wie im folgenden Beispiel dargestellt:
PUT /_search/pipeline/<pipeline_name>
{
"response_processors": [
{
"retrieval_augmented_generation": {
"tag": "genai_pipeline_demo",
"description": "Demo pipeline Using Genai Connector",
"model_id": "<model_ID>",
"context_field_list": ["<text_field_name>"],
"system_prompt": "You are a helpful assistant",
"user_instructions": "Generate a concise and informative answer for the given question"
}
}
]
}
Sie können einen oder mehrere Textfeldnamen für "context_field_list"
angeben. Trennen Sie die Werte durch ein Komma. Beispiel:
"context_field_list" : ["value1", "value2",…,"valueN"],
Die für "context_field_list"
angegebenen Werte müssen mit einem oder mehreren relevanten Feldern im Zieldokumentindex übereinstimmen.
Nächste Schritte
Wenn Sie einen Data Science-Connector anstelle eines generativen AI-Connectors verwenden, müssen Sie den Wert
"llm_model"
in den Payload-Codebeispielen der RAG-Abfrage in RAG mit BM25 ausführen und RAG mit Hybridsuche ausführen in "oci_datascience/<your_llm_model_name>"
aktualisieren.