Configurando um Conector do Serviço Data Science
Use as etapas deste passo a passo para configurar um conector do OCI Data Science a ser usado para um pipeline de Geração Aumentada de Recuperação (RAG) no OCI Search com OpenSearch.
Ao usar um conector do serviço Data Science em vez de um conector do serviço Generative AI, você precisa atualizar o valor
"llm_model"
para "oci_datascience/<your_llm_model_name>"
nos exemplos de código de payload de consulta RAG em Executar RAG com BM25 e Executar RAG com Pesquisa Híbrida.Pré-requisitos
-
Para usar um conector do serviço Data Science com o OCI Search com o OpenSearch, você precisa de um cluster configurado para usar o OpenSearch versão 2.11 ou mais recente. Por padrão, novos clusters são configurados para usar a versão 2.11. Para criar um cluster, consulte Criando um Cluster OpenSearch.
Para clusters existentes configurados para a versão 2.3, você pode executar um upgrade em linha para a versão 2.11. Para obter mais informações, consulte OpenSearch Upgrade de Software do Cluster.
Para fazer upgrade de clusters existentes configurados para a versão 1.2.3 para 2.11, use o processo de upgrade descrito em OpenSearch Upgrades de Software do Cluster.
-
Se o cluster OpenSearch estiver em uma tenancy diferente da tenancy do ponto final do serviço Data Science, você precisará criar políticas em ambas as tenancies para conceder acesso aos recursos do serviço Data Science.
Os exemplos de política a seguir incluem as permissões necessárias. Para usar esses exemplos, substitua
<caller_tenancy_name>
pelo nome da tenancy do cluster OpenSearch e substitua<resource_host_tenancy_name>
pelo nome da tenancy do ponto final do serviço Data Science.- Política para tenancy do 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
- Política para a tenancy do 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 você não conhece as políticas, consulte Conceitos Básicos de Políticas e Políticas Comuns.
- Política para tenancy do Data Science:
1: Configurar Definições do Cluster
Use a operação settings das APIs do Cluster para configurar as definições de cluster recomendadas, da seguinte forma:
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: Criar o Conector
Crie o conector do Data Science usando o seguinte 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 + '\"}]}}}'"
}
]
}
Substitua <model_deployment_endpoint>
e <model_deployment_OCID>
pelos valores reais para sua implantação de modelo do serviço Data Science, por exemplo:
...
"endpoint": "modeldeployment.us-ashburn-1.oci.customer-oci.com"
"modelId": "ocid1.datasciencemodeldeployment.oc1.IAD.examplesmtpsuqmoy4m5cvblu..."
...
Anote o <connector_ID> retornado na resposta:
{
"connector_id": "<connector_ID>",
}
3: Registrar o Grupo de Modelos
Registre um grupo de modelos para o conector usando a operação registrar nas APIs do Grupo de Modelos, conforme mostrado no seguinte exemplo:
POST /_plugins/_ml/model_groups/_register
{
"name": "<model_group_name>",
"description": "<model_group_description>"
}
Anote o <model_group_ID retornado na resposta:
{
"model_group_id": "<model_group_ID>",
"status": "CREATED"
}
4: Registrar o Modelo
Registre o modelo usando <model_group_ID> e <connector_ID> na etapa de visualização, conforme mostrado no seguinte exemplo:
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: Implantar o Modelo
Implante o modelo, conforme mostrado no seguinte exemplo:
POST /_plugins/_ml/models/<model_ID>/_deploy
6: Criar um Pipeline de RAG
Crie um pipeline de RAG usando o <model_ID>
da etapa anterior, conforme mostrado no seguinte exemplo:
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"
}
}
]
}
Você pode especificar um ou mais nomes de campo de texto para "context_field_list"
, separar os valores com uma vírgula, por exemplo:
"context_field_list" : ["value1", "value2",…,"valueN"],
Os valores especificados para "context_field_list"
devem corresponder a um ou mais campos de interesse no índice do documento de destino.
Próximas Etapas
Ao usar um conector do serviço Data Science em vez de um conector do serviço Generative AI, você precisa atualizar o valor
"llm_model"
para "oci_datascience/<your_llm_model_name>"
nos exemplos de código de payload de consulta RAG em Executar RAG com BM25 e Executar RAG com Pesquisa Híbrida.