Dela via


Datakälla – Azure Cosmos DB för MongoDB vCore

De konfigurerbara alternativen för Virtuella Kärnor i Azure Cosmos DB för MongoDB när du använder Azure OpenAI på dina data. Den här datakällan stöds i API-versionen 2024-02-01.

Namn Typ Obligatoriskt Beskrivning
parameters Parameters Sant Parametrarna som ska användas när du konfigurerar Azure Cosmos DB för MongoDB vCore.
type sträng Sant Måste vara azure_cosmos_db.

Parameters

Namn Typ Obligatoriskt Beskrivning
database_name sträng Sant MongoDB vCore-databasnamnet som ska användas med Azure Cosmos DB.
container_name sträng Sant Namnet på Azure Cosmos DB-resurscontainern.
index_name sträng Sant MongoDB vCore-indexnamnet som ska användas med Azure Cosmos DB.
fields_mapping FieldsMappingOptions Sant Anpassat fältmappningsbeteende som ska användas när du interagerar med sökindexet.
authentication ConnectionStringAuthenticationOptions Sant Den autentiseringsmetod som ska användas vid åtkomst till den definierade datakällan.
embedding_dependency En av DeploymentNameVectorizationSource, EndpointVectorizationSource Sant Inbäddningsberoendet för vektorsökning.
in_scope boolean Falsk Om frågor ska begränsas till användning av indexerade data. Standard är True.
role_information sträng Falsk Ge modellinstruktionerna om hur den ska bete sig och vilken kontext den ska referera till när du genererar ett svar. Du kan beskriva assistentens personlighet och berätta hur du formaterar svar.
strictness integer Falsk Den konfigurerade strängheten för sökrelevansfiltreringen. Ju högre strikthet, desto högre precision men lägre återkallande av svaret. Standard är 3.
top_n_documents integer Falsk Det konfigurerade högsta antalet dokument som ska användas för den konfigurerade frågan. Standard är 5.

Alternativ för autentisering av anslutningssträngar

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en anslutningssträng.

Namn Typ Obligatoriskt Beskrivning
connection_string sträng Sant Den anslutningssträng som ska användas för autentisering.
type sträng Sant Måste vara connection_string.

Distributionsnamnvektoriseringskälla

Information om vektoriseringskällan som används av Azure OpenAI På dina data när du tillämpar vektorsökning. Den här vektoriseringskällan baseras på ett internt distributionsnamn för inbäddningsmodellen i samma Azure OpenAI-resurs. Med den här vektoriseringskällan kan du använda vektorsökning utan Api-nyckel för Azure OpenAI och utan offentlig nätverksåtkomst i Azure OpenAI.

Namn Typ Obligatoriskt Beskrivning
deployment_name sträng Sant Distributionsnamnet för inbäddningsmodellen i samma Azure OpenAI-resurs.
type sträng Sant Måste vara deployment_name.

Slutpunktsvektoriseringskälla

Information om vektoriseringskällan som används av Azure OpenAI På dina data när du tillämpar vektorsökning. Den här vektoriseringskällan baseras på Azure OpenAI-inbäddnings-API-slutpunkten.

Namn Typ Obligatoriskt Beskrivning
endpoint sträng Sant Anger resursslutpunkts-URL:en som inbäddningar ska hämtas från. Den ska vara i formatet https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Frågeparametern api-version är inte tillåten.
authentication ApiKeyAuthenticationOptions Sant Anger de autentiseringsalternativ som ska användas vid hämtning av inbäddningar från den angivna slutpunkten.
type sträng Sant Måste vara endpoint.

Alternativ för API-nyckelautentisering

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en API-nyckel.

Namn Typ Obligatoriskt Beskrivning
key sträng Sant API-nyckeln som ska användas för autentisering.
type sträng Sant Måste vara api_key.

Mappningsalternativ för fält

Inställningarna för att styra hur fält bearbetas.

Namn Typ Obligatoriskt Beskrivning
content_fields string[] Sant Namnen på indexfält som ska behandlas som innehåll.
vector_fields string[] Sant Namnen på fält som representerar vektordata.
content_fields_separator sträng Falsk Det avgränsarmönster som innehållsfält ska använda. Standard är \n.
filepath_field sträng Falsk Namnet på det indexfält som ska användas som en filsökväg.
title_field sträng Falsk Namnet på det indexfält som ska användas som rubrik.
url_field sträng Falsk Namnet på det indexfält som ska användas som en URL.

Exempel

Förutsättningar:

  • Konfigurera rolltilldelningarna från användaren till Azure OpenAI-resursen. Obligatorisk roll: Cognitive Services OpenAI User.
  • Installera Az CLI och kör az login.
  • Definiera följande miljövariabler: AzureOpenAIEndpoint, ChatCompletionsDeploymentName,ConnectionString, Database, Container, , Index, EmbeddingDeploymentName.

Kommentar

Följande är till exempel endast. Om du använder en anslutningssträng lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

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

Installera de senaste pip-paketen 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))