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.

Führen Sie nach der Bestätigung und Konfiguration der Voraussetzungen die folgenden Aufgaben aus, um den Connector zu konfigurieren und zu erstellen:
  1. Clustereinstellungen konfigurieren.
  2. Erstellen Sie den Data Science-Connector.
  3. Registrieren Sie die Modellgruppe.
  4. Registrieren Sie das Modell.
  5. Modell bereitstellen.
  6. Erstellen Sie die RAG-Pipeline.
Die Schritte zur Konversationssuche sind für einen Data Science-Connector wie für einen Connector für generative KI identisch. Nachdem Sie Schritt 6 dieses Schrittes zum Erstellen der RAG-Pipeline abgeschlossen haben, fahren Sie mit Suchindex erstellen des Schrittes Konversationssuche mit OCI Generative AI fort, um einen Suchindex einzurichten und eine RAG-Suche auszuführen.
Hinweis

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.

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

Die Schritte zur Konversationssuche sind für einen Data Science-Connector wie für einen Connector für generative KI identisch. Nachdem Sie Schritt 6 dieses Schrittes zum Erstellen der RAG-Pipeline abgeschlossen haben, fahren Sie mit Suchindex erstellen des Schrittes Konversationssuche mit OCI Generative AI fort, um einen Suchindex einzurichten und eine RAG-Suche auszuführen.
Hinweis

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.