Sdílet prostřednictvím


Zdroj dat – Azure Cosmos DB pro virtuální jádro MongoDB

Konfigurovatelné možnosti virtuálních jader Azure Cosmos DB pro MongoDB při použití Azure OpenAI ve vašich datech Tento zdroj dat je podporován ve verzi 2024-02-01rozhraní API .

Name Type Požadováno Popis
parameters Parametry True Parametry, které se mají použít při konfiguraci služby Azure Cosmos DB pro virtuální jádro MongoDB.
type string True Musí být azure_cosmos_db.

Parametry

Název Type Požadováno Popis
database_name string True Název databáze MongoDB vCore, který se má použít se službou Azure Cosmos DB.
container_name string True Název kontejneru prostředků služby Azure Cosmos DB.
index_name string True Název indexu virtuálních jader MongoDB, který se má použít se službou Azure Cosmos DB.
fields_mapping FieldsMappingOptions True Přizpůsobené chování mapování polí, které se má použít při interakci s indexem vyhledávání.
authentication Připojení ionStringAuthenticationOptions True Metoda ověřování, která se má použít při přístupu k definovanému zdroji dat.
embedding_dependency Jeden z DeploymentNameVectorizationSource, EndpointVectorizationSource True Závislost vkládání pro vektorové vyhledávání.
in_scope boolean False Určuje, jestli se dotazy mají omezit na použití indexovaných dat. Výchozí hodnota je True.
role_information string False Poskytněte modelu pokyny, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta a říct jí, jak formátovat odpovědi.
strictness integer False Nakonfigurovaná striktnost filtrování relevance vyhledávání. Čím vyšší je striktnost, tím vyšší přesnost, ale nižší úplnost odpovědi. Výchozí hodnota je 3.
top_n_documents integer False Nakonfigurovaný nejvyšší počet dokumentů, které se mají použít pro nakonfigurovaný dotaz. Výchozí hodnota je 5.

Možnosti ověřování řetězců Připojení

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití připojovací řetězec

Name Type Požadováno Popis
connection_string string True Připojovací řetězec použít k ověřování.
type string True Musí být connection_string.

Zdroj vektorizace názvu nasazení

Podrobnosti o vektorizačním zdroji, který používá Azure OpenAI ve vašich datech při použití vektorového vyhledávání. Tento zdroj vektorizace je založený na interním názvu nasazení modelu vkládání ve stejném prostředku Azure OpenAI. Tento zdroj vektorizace umožňuje používat vektorové vyhledávání bez klíče api-key Azure OpenAI a bez přístupu k veřejné síti Azure OpenAI.

Name Type Požadováno Popis
deployment_name string True Název nasazení modelu vložení v rámci stejného prostředku Azure OpenAI.
type string True Musí být deployment_name.

Zdroj vektorizace koncového bodu

Podrobnosti o vektorizačním zdroji, který používá Azure OpenAI ve vašich datech při použití vektorového vyhledávání. Tento zdroj vektorizace je založený na koncovém bodu rozhraní API pro vkládání Azure OpenAI.

Name Type Požadováno Popis
endpoint string True Určuje adresu URL koncového bodu prostředku, ze které se mají načíst vkládání. Měl by být ve formátu https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Parametr dotazu api-version není povolený.
authentication ApiKeyAuthenticationOptions True Určuje možnosti ověřování, které se mají použít při načítání vkládání ze zadaného koncového bodu.
type string True Musí být endpoint.

Možnosti ověřování klíčů rozhraní API

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití klíče rozhraní API

Name Type Požadováno Popis
key string True Klíč rozhraní API, který se má použít k ověřování.
type string True Musí být api_key.

Možnosti mapování polí

Nastavení pro řízení způsobu zpracování polí.

Name Type Požadováno Popis
content_fields string[] True Názvy polí indexu, která by se měla považovat za obsah.
vector_fields string[] True Názvy polí, která představují vektorová data.
content_fields_separator string False Vzor oddělovače, který mají pole obsahu používat. Výchozí hodnota je \n.
filepath_field string False Název pole indexu, které se má použít jako cesta k souboru.
title_field string False Název pole indexu, které se má použít jako název.
url_field string False Název pole indexu, které se má použít jako adresa URL.

Příklady

Požadavky:

  • Nakonfigurujte přiřazení rolí od uživatele k prostředku Azure OpenAI. Požadovaná role: Cognitive Services OpenAI User.
  • Nainstalujte Az CLI a spusťte az login.
  • Definujte následující proměnné prostředí: AzureOpenAIEndpoint, ,ConnectionStringChatCompletionsDeploymentName , DatabaseContainer, 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

Nainstalujte nejnovější balíčky 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://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))