Configurer un connecteur Data Science
Suivez les étapes de cette procédure pour configurer un connecteur OCI Data Science à utiliser pour un pipeline de génération augmentée par extraction (RAG) dans OCI Search avec OpenSearch.
Lorsque vous utilisez un connecteur Data Science au lieu d'un connecteur Generative AI, vous devez mettre à jour la valeur
"llm_model"
sur "oci_datascience/<your_llm_model_name>"
dans les exemples de code de charge utile de requête RAG dans Effectuer une RAG avec BM25 et Effectuer une RAG avec la recherche hybride.Prérequis
-
Pour utiliser un connecteur Data Science avec OCI Search avec OpenSearch, vous devez disposer d'un cluster configuré pour utiliser OpenSearch version 2.11 ou ultérieure. Par défaut, les nouveaux clusters sont configurés pour utiliser la version 2.11. Pour créer un cluster, reportez-vous à Création d'un cluster OpenSearch.
Pour les clusters existants configurés pour la version 2.3, vous pouvez effectuer une mise à niveau en ligne vers la version 2.11. Pour plus d'informations, reportez-vous à OpenSearch Cluster Software Upgrades.
Pour mettre à niveau des clusters existants configurés pour la version 1.2.3 vers la version 2.11, vous devez utiliser le processus de mise à niveau décrit dans OpenSearch Cluster Software Upgrades.
-
Si le cluster OpenSearch se trouve dans une location différente de celle de la location d'adresse Data Science, vous devez créer des stratégies dans les deux locations pour accorder l'accès aux ressources Data Science.
Les exemples de stratégie suivants incluent les droits d'accès requis. Pour utiliser ces exemples, remplacez
<caller_tenancy_name>
par le nom de la location du cluster OpenSearch et<resource_host_tenancy_name>
par le nom de la location de l'adresse Data Science.- Stratégie pour la location 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
- Stratégie pour la location de 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>
Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes.
- Stratégie pour la location Data Science :
1 : Configurer des paramètres de cluster
Utilisez l'opération paramètres des API de cluster pour configurer les paramètres de cluster 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 Data Science à l'aide de la charge utile suivante :
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 du déploiement de modèle Data Science, par exemple :
...
"endpoint": "modeldeployment.us-ashburn-1.oci.customer-oci.com"
"modelId": "ocid1.datasciencemodeldeployment.oc1.IAD.examplesmtpsuqmoy4m5cvblu..."
...
Notez le message <connector_ID> renvoyé 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 d'enregistrement dans les API de groupe de modèles, comme indiqué dans l'exemple suivant :
POST /_plugins/_ml/model_groups/_register
{
"name": "<model_group_name>",
"description": "<model_group_description>"
}
Notez le message <model_group_ID renvoyé 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 d'aperçu, comme indiqué 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 type
Déployez le modèle, comme indiqué dans l'exemple suivant :
POST /_plugins/_ml/models/<model_ID>/_deploy
6 : Créer un pipeline RAG
Créez un pipeline RAG à l'aide de la commande <model_ID>
de l'étape précédente, comme indiqué 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éparer les valeurs par une virgule, par exemple :
"context_field_list" : ["value1", "value2",…,"valueN"],
Les valeurs indiquées pour "context_field_list"
doivent correspondre à un ou plusieurs champs intéressants dans l'index du document cible.
Etapes suivantes
Lorsque vous utilisez un connecteur Data Science au lieu d'un connecteur Generative AI, vous devez mettre à jour la valeur
"llm_model"
sur "oci_datascience/<your_llm_model_name>"
dans les exemples de code de charge utile de requête RAG dans Effectuer une RAG avec BM25 et Effectuer une RAG avec la recherche hybride.