Configurazione di un connettore Data Science
Utilizza i passi di questa procedura guidata per impostare un connettore OCI Data Science da utilizzare per una pipeline di Retrieval-Augmented Generation (RAG) in OCI Search con OpenSearch.
Quando si utilizza un connettore Data Science anziché un connettore AI generativa, è necessario aggiornare il valore
"llm_model"
in "oci_datascience/<your_llm_model_name>"
negli esempi di codice del payload di query RAG in Esegui RAG con BM25 e Esegui RAG con ricerca ibrida.Requisiti indispensabili
-
Per utilizzare un connettore Data Science con OCI Search con OpenSearch, è necessario un cluster configurato per utilizzare OpenSearch versione 2.11 o successiva. Per impostazione predefinita, i nuovi cluster sono configurati per l'uso della versione 2.11. Per creare un cluster, vedere Creazione di un cluster OpenSearch.
Per i cluster esistenti configurati per la versione 2.3, è possibile eseguire un aggiornamento in linea alla versione 2.11. Per ulteriori informazioni, vedere OpenSearch Aggiornamenti software del cluster.
Per aggiornare i cluster esistenti configurati per la versione 1.2.3 alla 2.11, è necessario utilizzare il processo di aggiornamento descritto in OpenSearch Aggiornamenti software del cluster.
-
Se il cluster OpenSearch si trova in una tenancy diversa dalla tenancy dell'endpoint di Data Science, è necessario creare criteri in entrambe le tenancy per concedere l'accesso alle risorse di Data Science.
Gli esempi di criteri riportati di seguito includono le autorizzazioni necessarie. Per utilizzare questi esempi, sostituire
<caller_tenancy_name>
con il nome della tenancy per il cluster OpenSearch e sostituire<resource_host_tenancy_name>
con il nome della tenancy per l'endpoint Data Science.- Criterio per la tenancy Data Science:
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
- Criterio per la tenancy cluster OpenSearch:
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>
Se non si conoscono i criteri, vedere Guida introduttiva ai criteri e Criteri comuni.
- Criterio per la tenancy Data Science:
1: Configurare le impostazioni del cluster
Utilizzare l'operazione settings delle API cluster per configurare le impostazioni cluster consigliate, come indicato di seguito.
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: Creazione del connettore
Creare il connettore Data Science utilizzando il payload seguente:
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 + '\"}]}}}'"
}
]
}
Sostituire <model_deployment_endpoint>
e <model_deployment_OCID>
con i valori effettivi per la distribuzione del modello di Data Science, ad esempio:
...
"endpoint": "modeldeployment.us-ashburn-1.oci.customer-oci.com"
"modelId": "ocid1.datasciencemodeldeployment.oc1.IAD.examplesmtpsuqmoy4m5cvblu..."
...
Prendere nota del <connector_ID> restituito nella risposta:
{
"connector_id": "<connector_ID>",
}
3: Registrazione del gruppo di modelli
Registrare un gruppo di modelli per il connettore utilizzando l'operazione di registrazione nelle API del gruppo di modelli, come mostrato nell'esempio riportato di seguito.
POST /_plugins/_ml/model_groups/_register
{
"name": "<model_group_name>",
"description": "<model_group_description>"
}
Prendere nota del <model_group_ID restituito nella risposta:
{
"model_group_id": "<model_group_ID>",
"status": "CREATED"
}
4: Registra il modello
Registrare il modello utilizzando <model_group_ID> e <connector_ID> dal passo di anteprima, come mostrato nell'esempio seguente:
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: Distribuisci modello
Distribuire il modello, come mostrato nell'esempio seguente:
POST /_plugins/_ml/models/<model_ID>/_deploy
6: Creazione di una pipeline RAG
Creare una pipeline RAG utilizzando <model_ID>
dal passo precedente, come mostrato nell'esempio riportato di seguito.
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"
}
}
]
}
È possibile specificare uno o più nomi di campo di testo per "context_field_list"
, separare i valori con una virgola, ad esempio:
"context_field_list" : ["value1", "value2",…,"valueN"],
I valori specificati per "context_field_list"
devono corrispondere a uno o più campi di interesse nell'indice del documento target.
Passi successivi
Quando si utilizza un connettore Data Science anziché un connettore AI generativa, è necessario aggiornare il valore
"llm_model"
in "oci_datascience/<your_llm_model_name>"
negli esempi di codice del payload di query RAG in Esegui RAG con BM25 e Esegui RAG con ricerca ibrida.