Configuration d'un connecteur du service de science des données
Utilisez les étapes de cette procédure pas à pas pour configurer un connecteur du service de science des données pour OCI à utiliser pour un pipeline de génération augmentée par extraction (RAG) dans la recherche OCI avec OpenSearch.
Lorsque vous utilisez un connecteur du service de science des données au lieu d'un connecteur d'IA générative, vous devez mettre à jour la valeur
"llm_model" à "oci_datascience/<your_llm_model_name>" dans les exemples de code de données utiles de l'interrogation RAG sous Exécuter la RAG avec BM25 et Exécuter la RAG avec une recherche hybride.Préalables
-
Pour utiliser un connecteur du service de science des données avec la recherche OCI avec OpenSearch, vous avez besoin d'une grappe configurée pour utiliser OpenSearch version 2.11 ou plus récente. Par défaut, les nouvelles grappes sont configurées pour utiliser la version 2.11. Pour créer une grappe, voir Création d'une grappe OpenSearch.
Pour les grappes existantes configurées pour la version 2.3, vous pouvez effectuer une mise à niveau en ligne vers la version 2.11. Pour plus d'informations, voir Mises à niveau logicielles de grappe OpenSearch.
Pour mettre à niveau les grappes existantes configurées pour la version 1.2.3 vers la version 2.11, vous devez utiliser le processus de mise à niveau décrit dans Mises à niveau du logiciel de grappe OpenSearch.
-
Si la grappe OpenSearch se trouve dans une location différente de celle du point d'extrémité du service de science des données, vous devez créer des politiques dans les deux locations pour accorder l'accès aux ressources du service de science des données.
Les exemples de politique suivants incluent les autorisations requises. Pour utiliser ces exemples, remplacez
<caller_tenancy_name>par le nom de la location pour la grappe OpenSearch et remplacez<resource_host_tenancy_name>par le nom de la location pour le point d'extrémité du service de science des données.- Politique pour la location du service de science des données :
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 - Politique pour la location de grappe 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>
Pour en connaître davantage sur les politiques, voir Introduction aux politiques et Politiques communes.
- Politique pour la location du service de science des données :
1 : Configurer les paramètres du cluster
Utilisez l'opération paramètres des API de grappe pour configurer les paramètres de grappe recommandés, comme suit :
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 : Créer le connecteur
Créez le connecteur du service de science des données à l'aide des données utiles suivantes :
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 + '\"}]}}}'"
}
]
}Remplacez <model_deployment_endpoint> et <model_deployment_OCID> par les valeurs réelles de votre déploiement de modèle du service de science des données, par exemple :
...
"endpoint": "modeldeployment.us-ashburn-1.oci.customer-oci.com"
"modelId": "ocid1.datasciencemodeldeployment.oc1.IAD.examplesmtpsuqmoy4m5cvblu..."
...
Notez la valeur <connector_ID> retournée dans la réponse :
{
"connector_id": "<connector_ID>",
}3 : Enregistrer le groupe de modèles
Enregistrez un groupe de modèles pour le connecteur à l'aide de l'opération Enregistrer dans les API de groupe de modèles, comme illustré dans l'exemple suivant :
POST /_plugins/_ml/model_groups/_register
{
"name": "<model_group_name>",
"description": "<model_group_description>"
}Notez la valeur <model_group_ID retournée dans la réponse :
{
"model_group_id": "<model_group_ID>",
"status": "CREATED"
}4 : Enregistrer le modèle
Enregistrez le modèle à l'aide de <model_group_ID> et <connector_ID> à partir de l'étape de prévisualisation, comme illustré dans l'exemple suivant :
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 : Déployer le modèle
Déployez le modèle, comme illustré dans l'exemple suivant :
POST /_plugins/_ml/models/<model_ID>/_deploy6 : Créer un pipeline RAG
Créez un pipeline RAG à l'aide de <model_ID> à l'étape précédente, comme illustré dans l'exemple suivant :
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"
}
}
]
}Vous pouvez spécifier un ou plusieurs noms de champ de texte pour "context_field_list", séparez les valeurs par une virgule, par exemple :
"context_field_list" : ["value1", "value2",…,"valueN"],
Les valeurs spécifiées pour "context_field_list" doivent correspondre à un ou plusieurs champs d'intérêt dans l'index du document cible.
Étapes suivantes
Lorsque vous utilisez un connecteur du service de science des données au lieu d'un connecteur d'IA générative, vous devez mettre à jour la valeur
"llm_model" à "oci_datascience/<your_llm_model_name>" dans les exemples de code de données utiles de l'interrogation RAG sous Exécuter la RAG avec BM25 et Exécuter la RAG avec une recherche hybride.