Compartir vía


Origen de datos: Núcleo virtual de Azure Cosmos DB for MongoDB

Las opciones configurables de núcleo virtual de Azure Cosmos DB for MongoDB al usar Azure OpenAI en los datos. Este origen de datos se admite en la versión 2024-02-01 de la API.

Nombre Type Obligatorio Descripción
parameters Parámetros True Los parámetros que se usarán al configurar el núcleo virtual de Azure Cosmos DB for MongoDB.
type string True Debe ser azure_cosmos_db.

Parámetros

Nombre Type Obligatorio Description
database_name string True El nombre de base de datos de núcleo virtual de MongoDB que se va a usar con Azure Cosmos DB.
container_name string True El nombre del contenedor de recursos de Azure Cosmos DB.
index_name string True El nombre de índice de núcleo virtual de MongoDB que se va a usar con Azure Cosmos DB.
fields_mapping FieldsMappingOptions True Comportamiento personalizado de asignación de campos que se usará al interactuar con el índice de búsqueda.
authentication ConnectionStringAuthenticationOptions True Método de autenticación que se va a usar al acceder al origen de datos definido.
embedding_dependency Uno de DeploymentNameVectorizationSource, EndpointVectorizationSource True Dependencia de inserción para el vector de búsqueda.
in_scope boolean False Si las consultas deben restringirse al uso de datos indexados. El valor predeterminado es True.
role_information string False Proporcione instrucciones al modelo sobre cómo debe comportarse y cualquier contexto al que debe hacer referencia al generar una respuesta. Puede describir la personalidad del asistente y indicarle cómo dar formato a las respuestas.
strictness integer False La configuración estricta del filtrado de relevancia de búsqueda. Cuanto más estricta sea, mayor será la precisión, pero una menor coincidencia de la respuesta. El valor predeterminado es 3.
top_n_documents integer False El número superior configurado de documentos que se van a presentar para la consulta configurada. El valor predeterminado es 5.

Autenticación de cadena de conexión

Las opciones de autenticación de Azure OpenAI en los datos al usar una cadena de conexión.

Nombre Type Obligatorio Description
connection_string string True La cadena de conexión que se va a usar para la autenticación.
type string True Debe ser connection_string.

Origen de vectorización de nombre de implementación

Los detalles del origen de vectorización, que usa Azure OpenAI en los datos al aplicar el vector de búsqueda. Este origen de vectorización se basa en un nombre de implementación de modelos de inserción interno en el mismo recurso de Azure OpenAI. Este origen de vectorización le permite usar vector de búsqueda sin clave de API de Azure OpenAI y sin acceso a la red pública de Azure OpenAI.

Nombre Type Obligatorio Description
deployment_name string True El nombre de implementación de modelo de inserción dentro del mismo recurso de Azure OpenAI.
type string True Debe ser deployment_name.

Origen de vectorización de punto de conexión

Los detalles del origen de vectorización, que usa Azure OpenAI en los datos al aplicar el vector de búsqueda. Este origen de vectorización se basa en el punto de conexión de la API de inserción de Azure OpenAI.

Nombre Type Obligatorio Description
endpoint string True Especifica la dirección URL del punto de conexión de recurso desde la que se deben recuperar las incrustaciones. Debe tener el formato https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. No se permite el parámetro de consulta api-version.
authentication ApiKeyAuthenticationOptions True Especifica las opciones de autenticación que se usarán al recuperar incrustaciones desde el punto de conexión especificado.
type string True Debe ser endpoint.

Opciones de autenticación de clave de API

Las opciones de autenticación de Azure OpenAI en los datos al usar una clave de API.

Nombre Type Obligatorio Description
key string True Clave de API que se va a usar para la autenticación.
type string True Debe ser api_key.

Opciones de asignación de campos

La configuración para controlar cómo se procesan los campos.

Nombre Type Obligatorio Descripción
content_fields string[] True Los nombres de los campos de índice que se deben tratar como contenido.
vector_fields string[] True Los nombres de los campos que representan datos vectoriales.
content_fields_separator string False Patrón separador que deben usar los campos de contenido. El valor predeterminado es \n.
filepath_field string False Nombre del campo de índice que se va a usar como ruta de acceso de archivo.
title_field string False Nombre del campo de índice que se va a usar como título.
url_field string False Nombre del campo de índice que se va a usar como dirección URL.

Ejemplos

Requisitos previos:

  • Configure las asignaciones de roles del usuario al recurso de Azure OpenAI. Rol necesario: Cognitive Services OpenAI User.
  • Instale la CLI de Az y ejecute az login.
  • Defina las siguientes variables de entorno: AzureOpenAIEndpoint, ChatCompletionsDeploymentName,ConnectionString, Database, Container, Index, EmbeddingDeploymentName.

Nota:

Por ejemplo, solo se muestra lo siguiente. Si usa una cadena de conexión, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.

export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export ConnectionString='<db-connection-string>'
export Database=testdb
export Container=testcontainer
export Index=testindex
export EmbeddingDeploymentName=ada

Instale los paquetes de pip más recientes openai, azure-identity.


import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
connection_string = os.environ.get("ConnectionString")
database = os.environ.get("Database")
container = os.environ.get("Container")
index = os.environ.get("Index")
embedding_deployment_name = os.environ.get("EmbeddingDeploymentName")

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-01",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_cosmos_db",
                "parameters": {
                    "authentication": {
                        "type": "connection_string",
                        "connection_string": connection_string
                    },
                    "database_name": database,
                    "container_name": container,
                    "index_name": index,
                    "fields_mapping": {
                        "content_fields": [
                            "content"
                        ],
                        "vector_fields": [
                            "contentvector"
                        ]
                    },
                    "embedding_dependency": {
                        "type": "deployment_name",
                        "deployment_name": embedding_deployment_name
                    }
                }
            }
        ],
    }
)

print(completion.model_dump_json(indent=2))