Partager via


Source de données – Azure Cosmos DB for MongoDB vCore

Options configurables du cœur virtuel Azure Cosmos DB for MongoDB lors de l’utilisation d'Azure OpenAI sur vos données. Cette source de données est prise en charge dans la version de l’API 2024-02-01.

Nom Type Requise Description
parameters Paramètres True Les paramètres à utiliser lors de la configuration vCore Azure Cosmos DB for MongoDB.
type string True Doit être azure_cosmos_db.

Paramètres

Nom Type Requise Description
database_name string True Le nom de la base de données du cœur virtuel MongoDB à utiliser avec Azure Cosmos DB.
container_name string True Le nom du conteneur de ressource SQL Azure Cosmos DB.
index_name string True Le nom de l’index du cœur virtuel MongoDB à utiliser avec Azure Cosmos DB.
fields_mapping FieldsMappingOptions True Comportement de mappage de champs personnalisé à utiliser lors de l’interaction avec l’index de recherche.
authentication ConnectionStringAuthenticationOptions True Méthode d’authentification à utiliser lors de l’accès à la source de données définie.
embedding_dependency Un des DeploymentNameVectorizationSource, EndpointVectorizationSource True Dépendance d’incorporation pour la recherche vectorielle.
in_scope booléen False Indique si les requêtes doivent être limitées à l’utilisation de données indexées. La valeur par défaut est True.
role_information string False Fournissez au modèle des instructions sur son comportement et sur tout contexte qu’il doit référencer en générant une réponse. Vous pouvez décrire la personnalité de l’assistant et lui indiquer comment mettre en forme les réponses.
strictness entier False La rigueur configurée du filtrage de pertinence de la recherche. Plus la rigueur est élevée, plus la précision est élevée mais la plus faible rappel de la réponse. La valeur par défaut est 3.
top_n_documents entier False Nombre maximal configuré de documents à fonctionnalités pour la requête configurée. La valeur par défaut est 5.

Options d’authentification par chaîne de connexion

Options d’authentification pour Azure OpenAI sur vos données lors de l’utilisation d’une chaîne de connexion.

Nom Type Requise Description
connection_string string True La chaîne de connexion à utiliser pour l’authentification.
type string True Doit être connection_string.

Source de vectorisation du nom de déploiement

Détails de la source de vectorisation, utilisée par Azure OpenAI sur vos données lors de l’application de la recherche vectorielle. Cette source de vectorisation est basée sur un nom de modèle de déploiement d’incorporation interne dans la même ressource Azure OpenAI. Cette source de vectorisation vous permet d’utiliser la recherche vectorielle sans clé API Azure OpenAI et sans accès au réseau public Azure OpenAI.

Nom Type Requise Description
deployment_name string True Nom de modèle de déploiement d’incorporation dans la même ressource Azure OpenAI.
type string True Doit être deployment_name.

Source de vectorisation du point de terminaison

Détails de la source de vectorisation, utilisée par Azure OpenAI sur vos données lors de l’application de la recherche vectorielle. Cette source de vectorisation est basée sur le point de terminaison de l'API d'intégration Azure OpenAI.

Nom Type Requise Description
endpoint string True Spécifie l'URL du point de terminaison de la ressource à partir duquel les éléments intégrés doivent être récupérés. Il doit être au format https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Le paramètre de requête api-version n’est pas autorisée.
authentication ApiKeyAuthenticationOptions True Spécifie les options d'authentification à utiliser lors de la récupération d'incorporations à partir du point de terminaison spécifié.
type string True Doit être endpoint.

Options d’authentification par clé API

Options d’authentification pour Azure OpenAI sur vos données lors de l’utilisation d’une clé API.

Nom Type Requise Description
key string True Clé API à utiliser pour l’authentification.
type string True Doit être api_key.

Options de mappage de champs

Paramètres permettant de contrôler le traitement des champs.

Nom Type Requise Description
content_fields string[] True Les noms des champs d’index qui doivent être traités comme du contenu.
vector_fields string[] True Noms de champs qui représentent des données vectorielles.
content_fields_separator string False Le modèle de séparation que les champs de contenu doivent utiliser. La valeur par défaut est \n.
filepath_field string False Le nom du champ d’index à utiliser comme chemin d’accès au fichier.
title_field string False Nom du champ d’index à utiliser comme titre.
url_field string False Nom du champ d’index à utiliser comme URL.

Exemples

Configuration requise :

  • Configurez les attributions de rôles de l’utilisateur vers la ressource Azure OpenAI. Rôle nécessaire : Cognitive Services OpenAI User.
  • Installez Az CLI et exécutez az login.
  • Définissez les variables d’environnement suivantes : AzureOpenAIEndpoint, ChatCompletionsDeploymentName, ConnectionString, Database, Container, Index, EmbeddingDeploymentName.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export ConnectionString='mongodb+srv://username:***@example.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000'
export Database=testdb
export Container=testcontainer
export Index=testindex
export EmbeddingDeploymentName=ada

Installez le dernier package pip 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))