Origine dati - Azure Cosmos DB per MongoDB vCore (versione classica)

Si applica solo a:Portale di Foundry (versione classica). Questo articolo non è disponibile per il nuovo portale foundry. Altre informazioni sul nuovo portale.

Note

I collegamenti in questo articolo potrebbero aprire contenuto nella nuova documentazione di Microsoft Foundry anziché nella documentazione di Foundry (versione classica) visualizzata.

Importante

Azure OpenAI On Your Data è obsoleto e si avvicina al pensionamento. Il servizio verrà ritirato il 14 ottobre 2026

Microsoft ha smesso di integrare nuovi modelli su Azure OpenAI On Your Data. Questa funzione supporta solo i seguenti modelli:

  • GPT-4o (versioni 2024-05-13, 2024-08-06 e 20-11-2024)
  • GPT-4o-mini (versione 2024-07-18)

Consigliamo di migrare Azure carichi di lavoro OpenAI On Your Data verso Foundry Agent Service con Foundry IQ per recuperare contenuti e generare risposte concrete dai tuoi dati. Per iniziare, consulta la base di conoscenza di Collega un QI di Foundry.

Le opzioni configurabili di Azure Cosmos DB per MongoDB vCore quando si utilizza Azure OpenAI On Your Data. Questa fonte di dati è supportata nella versione 2024-02-01API .

Name Tipo Obbligatorio Descrizione
parameters Parametri True I parametri da usare quando si configura Azure Cosmos DB per MongoDB vCore.
type string True Deve essere azure_cosmos_db.

Parameters

Name Tipo Obbligatorio Descrizione
database_name string True Il nome del database MongoDB vCore da usare con Azure Cosmos DB.
container_name string True Il nome del container di risorse Azure Cosmos DB.
index_name string True Il nome dell'indice MongoDB vCore da usare con Azure Cosmos DB.
fields_mapping FieldsMappingOptions True Comportamento personalizzato della mappatura dei campi da utilizzare durante l'interazione con l'indice di ricerca.
authentication ConnectionStringAuthenticationOptions True Il metodo di autenticazione da utilizzare quando si accede alla sorgente dati definita.
embedding_dependency Uno di DeploymentNameVectorizationSource, EndpointVectorizationSource True La dipendenza di embedding per la ricerca vettoriale.
in_scope boolean Falso Se le query dovrebbero essere limitate all'uso di dati indicizzati. Il valore predefinito è True.
role_information string Falso Fornisci al modello istruzioni su come dovrebbe comportarsi e qualsiasi contesto che dovrebbe consultare quando genera una risposta. Puoi descrivere la personalità dell'assistente e spiegargli come formattare le risposte.
strictness integer Falso La rigorosità configurata del filtraggio della rilevanza di ricerca. Più alta è la severità, maggiore è la precisione ma minore è la memoria della risposta. Il valore predefinito è 3.
top_n_documents integer Falso Il numero superiore configurato di documenti da presentare per la query configurata. Il valore predefinito è 5.

Opzioni di autenticazione delle stringhe di connessione

Le opzioni di autenticazione per Azure OpenAI sui tuoi dati quando si utilizza una stringa di connessione.

Name Tipo Obbligatorio Descrizione
connection_string string True La stringa di connessione da usare per l'autenticazione.
type string True Deve essere connection_string.

Sorgente di vettorizzazione dei nomi del deployment

I dettagli della sorgente di vettorizzazione, utilizzata da Azure OpenAI On Your Data quando applica la ricerca vettoriale. Questa sorgente di vettorizzazione si basa su un nome interno di implementazione di un modello di embedding nella stessa risorsa Azure OpenAI. Questa sorgente di vettorizzazione ti permette di utilizzare la ricerca vettoriale senza l'api-key OpenAI di Azure e senza l'accesso alla rete pubblica di Azure OpenAI.

Name Tipo Obbligatorio Descrizione
deployment_name string True Il nome di distribuzione del modello di embedding all'interno della stessa risorsa Azure OpenAI.
type string True Deve essere deployment_name.

Sorgente di vettorizzazione dell'endpoint

I dettagli della sorgente di vettorizzazione, utilizzata da Azure OpenAI On Your Data quando applica la ricerca vettoriale. Questa sorgente di vettorizzazione si basa sull'endpoint API di embedding Azure OpenAI.

Name Tipo Obbligatorio Descrizione
endpoint string True Specifica l'URL dell'endpoint della risorsa da cui devono essere recuperati gli embedding. Dovrebbe essere nel formato di https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Il parametro di query della versione API non è permesso.
authentication ApiKeyAuthenticationOptions True Specifica le opzioni di autenticazione da utilizzare durante il recupero degli embedding dall'endpoint specificato.
type string True Deve essere endpoint.

Opzioni di autenticazione con chiave API

Le opzioni di autenticazione per Azure OpenAI sui tuoi dati quando si utilizza una chiave API.

Name Tipo Obbligatorio Descrizione
key string True La chiave API da usare per l'autenticazione.
type string True Deve essere api_key.

Opzioni di mappatura dei campi

Le impostazioni per controllare come vengono elaborati i campi.

Name Tipo Obbligatorio Descrizione
content_fields string[] True I nomi dei campi indice che dovrebbero essere trattati come contenuti.
vector_fields string[] True I nomi dei campi che rappresentano dati vettoriali.
content_fields_separator string Falso Il pattern separatore che i campi di contenuto dovrebbero usare. Il valore predefinito è \n.
filepath_field string Falso Il nome del campo indice da usare come percorso file.
title_field string Falso Il nome del campo indice da usare come titolo.
url_field string Falso Il nome del campo indice da usare come URL.

Examples

Prerequisiti:

  • Configura le assegnazioni dei ruoli dall'utente alla risorsa Azure OpenAI. Ruolo richiesto: Cognitive Services OpenAI User.
  • Installa la CLI di Arizona e esegui az login.
  • Definisci le seguenti variabili ambientali: AzureOpenAIEndpoint, ChatCompletionsDeploymentName,ConnectionString, Database, Container, Index, , . EmbeddingDeploymentName

Note

Quanto segue è solo un esempio. Se usi un stringa di connessione, conservalo in modo sicuro altrove, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non pubblicarla mai pubblicamente.

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

Installa gli ultimi pacchetti openaipip , 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://ai.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))