Udostępnij za pośrednictwem


Źródło danych — azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB

Konfigurowalne opcje rdzeni wirtualnych usługi Azure Cosmos DB dla bazy danych MongoDB podczas korzystania z usługi Azure OpenAI na danych. To źródło danych jest obsługiwane w wersji 2024-02-01interfejsu API .

Nazwisko Type Wymagania opis
parameters Parametry Prawda Parametry do użycia podczas konfigurowania usługi Azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB.
type string Prawda Musi mieć wartość azure_cosmos_db.

Parametry

Nazwisko Type Wymagania opis
database_name string Prawda Nazwa bazy danych mongoDB z rdzeniami wirtualnymi do użycia z usługą Azure Cosmos DB.
container_name string Prawda Nazwa kontenera zasobów usługi Azure Cosmos DB.
index_name string Prawda Nazwa indeksu rdzeni wirtualnych bazy danych MongoDB do użycia z usługą Azure Cosmos DB.
fields_mapping FieldsMappingOptions Prawda Dostosowane zachowanie mapowania pól do użycia podczas interakcji z indeksem wyszukiwania.
authentication ConnectionStringAuthenticationOptions Prawda Metoda uwierzytelniania używana podczas uzyskiwania dostępu do zdefiniowanego źródła danych.
embedding_dependency Jeden z elementów DeploymentNameVectorizationSource, EndpointVectorizationSource Prawda Zależność osadzania dla wyszukiwania wektorowego.
in_scope boolean Fałsz Czy zapytania powinny być ograniczone do używania indeksowanych danych. Wartość domyślna to True.
role_information string Fałsz Przekaż instrukcje dotyczące sposobu działania modelu i dowolnego kontekstu, do którego powinien się odwoływać podczas generowania odpowiedzi. Możesz opisać osobowość asystenta i poinformować go, jak formatować odpowiedzi.
strictness integer Fałsz Skonfigurowana ścisłość filtrowania istotności wyszukiwania. Im większa surowość, większa precyzja, ale niższa kompletność odpowiedzi. Wartość domyślna to 3.
top_n_documents integer Fałsz Skonfigurowano maksymalną liczbę dokumentów do funkcji dla skonfigurowanego zapytania. Wartość domyślna to 5.

Opcje uwierzytelniania parametrów połączenia

Opcje uwierzytelniania dla usługi Azure OpenAI Na danych podczas korzystania z parametry połączenia.

Nazwisko Type Wymagania opis
connection_string string Prawda Parametry połączenia do użycia do uwierzytelniania.
type string Prawda Musi mieć wartość connection_string.

Źródło wektoryzacji nazw wdrożenia

Szczegóły źródła wektoryzacji używanego przez usługę Azure OpenAI On Your Data podczas stosowania wyszukiwania wektorowego. To źródło wektoryzacji jest oparte na wewnętrznej nazwie wdrożenia modelu osadzania w tym samym zasobie usługi Azure OpenAI. To źródło wektoryzacji umożliwia korzystanie z wyszukiwania wektorów bez klucza api-key usługi Azure OpenAI i bez dostępu do sieci publicznej usługi Azure OpenAI.

Nazwisko Type Wymagania opis
deployment_name string Prawda Nazwa wdrożenia modelu osadzania w ramach tego samego zasobu usługi Azure OpenAI.
type string Prawda Musi mieć wartość deployment_name.

Źródło wektoryzacji punktu końcowego

Szczegóły źródła wektoryzacji używanego przez usługę Azure OpenAI On Your Data podczas stosowania wyszukiwania wektorowego. To źródło wektoryzacji jest oparte na punkcie końcowym interfejsu API osadzania usługi Azure OpenAI.

Nazwisko Type Wymagania opis
endpoint string Prawda Określa adres URL punktu końcowego zasobu, z którego mają zostać pobrane osadzanie. Powinien mieć format https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Parametr zapytania w wersji interfejsu API nie jest dozwolony.
authentication ApiKeyAuthenticationOptions Prawda Określa opcje uwierzytelniania do użycia podczas pobierania osadzania z określonego punktu końcowego.
type string Prawda Musi mieć wartość endpoint.

Opcje uwierzytelniania klucza interfejsu API

Opcje uwierzytelniania usługi Azure OpenAI na danych podczas korzystania z klucza interfejsu API.

Nazwisko Type Wymagania opis
key string Prawda Klucz interfejsu API do użycia do uwierzytelniania.
type string Prawda Musi mieć wartość api_key.

Opcje mapowania pól

Ustawienia umożliwiające kontrolowanie sposobu przetwarzania pól.

Nazwisko Type Wymagania opis
content_fields string[] Prawda Nazwy pól indeksu, które powinny być traktowane jako zawartość.
vector_fields string[] Prawda Nazwy pól reprezentujących dane wektorowe.
content_fields_separator string Fałsz Wzorzec separatora, którego powinny używać pola zawartości. Wartość domyślna to \n.
filepath_field string Fałsz Nazwa pola indeksu do użycia jako ścieżka pliku.
title_field string Fałsz Nazwa pola indeksu, które ma być używane jako tytuł.
url_field string Fałsz Nazwa pola indeksu, które ma być używane jako adres URL.

Przykłady

Wymagania wstępne:

  • Skonfiguruj przypisania ról od użytkownika do zasobu usługi Azure OpenAI. Wymagana rola: Cognitive Services OpenAI User.
  • Zainstaluj interfejs wiersza polecenia Az i uruchom polecenie az login.
  • Zdefiniuj następujące zmienne środowiskowe: AzureOpenAIEndpoint, DatabaseChatCompletionsDeploymentNameContainerConnectionString, , . EmbeddingDeploymentNameIndex

Uwaga

Poniżej przedstawiono tylko przykład. Jeśli używasz parametry połączenia, zapisz ją bezpiecznie w innym miejscu, na przykład w usłudze Azure Key Vault. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie.

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

Zainstaluj najnowsze pakiety 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))