Freigeben über


Datenquelle – Azure Cosmos DB für MongoDB vCore

Die konfigurierbaren Optionen von Azure Cosmos DB for MongoDB vCore bei Verwendung von Azure OpenAI On Your Data Diese Datenquelle wird in der API-Version 2024-02-01 unterstützt.

Name Type Erforderlich Beschreibung
parameters Parameter True Die Parameter, die beim Konfigurieren von Azure Cosmos DB for MongoDB vCore verwendet werden sollen
type Zeichenfolge True Muss azure_cosmos_dblauten.

Parameter

Name Type Erforderlich Beschreibung
database_name Zeichenfolge True Der Name der MongoDB vCore-Datenbank, die mit Azure Cosmos DB verwendet werden soll
container_name Zeichenfolge True Der Name des Azure Cosmos DB-Ressourcencontainers
index_name Zeichenfolge True Der Name des MongoDB vCore-Index, der mit Azure Cosmos DB verwendet werden soll
fields_mapping FieldsMappingOptions True Angepasstes Feldzuordnungsverhalten, das beim Interagieren mit dem Suchindex verwendet werden soll
authentication ConnectionStringAuthenticationOptions True Die Authentifizierungsmethode, die beim Zugriff auf die definierte Datenquelle verwendet werden soll.
embedding_dependency Entweder DeploymentNameVectorizationSource oder EndpointVectorizationSource True Die Einbettungsabhängigkeit für die Vektorsuche
in_scope boolean False Gibt an, ob Abfragen auf die Verwendung von indizierten Daten beschränkt werden sollen. Der Standardwert ist True.
role_information Zeichenfolge False Gibt dem Modell Anweisungen dazu, wie es sich verhalten soll und auf welchen Kontext es beim Generieren einer Antwort verweisen soll. Sie können die Persönlichkeit des Assistenten beschreiben und ihm mitteilen, wie Antworten formatiert werden sollen.
strictness integer False Die konfigurierte Strenge der Suchrelevanzfilterung. Je höher die Strenge, desto höher der Genauigkeit, aber desto der niedrigerer Antwortabruf. Der Standardwert ist 3.
top_n_documents integer False Die konfigurierte maximale Anzahl von Dokumenten, die für die konfigurierte Abfrage bereitgestellt werden sollen. Der Standardwert ist 5.

Authentifizierungsoptionen mit Verbindungszeichenfolgen

Die Authentifizierungsoptionen für Azure OpenAI On Your Data bei Verwendung einer Verbindungszeichenfolge

Name Type Erforderlich Beschreibung
connection_string Zeichenfolge True Die Verbindungszeichenfolge für die Authentifizierung
type Zeichenfolge True Muss connection_stringlauten.

Quelle für die Bereitstellungsnamenvektorisierung

Die Details der Vektorisierungsquelle, die von Azure OpenAI On Your Data beim Anwenden der Vektorsuche verwendet wird. Diese Vektorisierungsquelle basiert auf einem internen Namen der Einbettung der Modellimplementierung in derselben Azure OpenAI-Ressource. Mit dieser Vektorisierungsquelle können Sie die Vektorsuche ohne Azure OpenAI-API-Schlüssel und ohne öffentlichen Azure OpenAI-Netzwerkzugriff verwenden.

Name Type Erforderlich Beschreibung
deployment_name Zeichenfolge True Der Name der Einbettung der Modellimplementierung innerhalb derselben Azure OpenAI-Ressource.
type Zeichenfolge True Muss deployment_namelauten.

Endpunktvektorisierungsquelle

Die Details der Vektorisierungsquelle, die von Azure OpenAI On Your Data beim Anwenden der Vektorsuche verwendet wird. Diese Vektorisierungsquelle basiert auf dem Azure OpenAI-API-Endpunkt zur Einbettung.

Name Type Erforderlich Beschreibung
endpoint Zeichenfolge True Gibt die Ressourcenendpunkt-URL an, aus der Einbettungen abgerufen werden sollen. Sie sollte im Format https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings sein. Der Abfrageparameter der API-Version ist nicht zulässig.
authentication ApiKeyAuthenticationOptions True Gibt die Authentifizierungsoptionen an, die beim Abrufen von Einbettungen vom angegebenen Endpunkt verwendet werden sollen.
type Zeichenfolge True Muss endpointlauten.

API-Schlüsselauthentifizierungsoptionen

Die Authentifizierungsoptionen für Azure OpenAI On Your Data bei Verwendung eines API-Schlüssels.

Name Type Erforderlich Beschreibung
key Zeichenfolge True Der für die Authentifizierung zu verwendende API-Schlüssel.
type Zeichenfolge True Muss api_keylauten.

Feldzuordnungsoptionen

Die Einstellungen zum Steuern der Verarbeitung von Feldern.

Name Type Erforderlich Beschreibung
content_fields string[] True Die Namen von Indexfeldern, die als Inhalt behandelt werden sollen.
vector_fields string[] True Die Namen von Feldern, die Vektordaten darstellen.
content_fields_separator Zeichenfolge False Das Trennmuster, das Inhaltsfelder verwenden sollen. Der Standardwert ist \n.
filepath_field Zeichenfolge False Der Name des Indexfelds, das als Dateipfad verwendet werden soll.
title_field Zeichenfolge False Der Name des Indexfelds, das als Titel verwendet werden soll
url_field Zeichenfolge False Der Name des Indexfelds, das als URL verwendet werden soll

Beispiele

Voraussetzungen:

  • Konfigurieren Sie die Rollenzuweisungen vom Benutzer zur Azure OpenAI-Ressource. Erforderliche Rolle: Cognitive Services OpenAI User.
  • Installieren Sie Az CLI und führen Sie az login aus.
  • Definieren Sie die folgenden Umgebungsvariablen: 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

Installieren Sie die neuesten pip-Pakete 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))