Źródło danych — Azure AI Search

Konfigurowalne opcje usługi Azure AI Search 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 Search.
type string Prawda Musi mieć wartość azure_search.

Parametry

Nazwisko Type Wymagania opis
endpoint string Prawda Bezwzględna ścieżka punktu końcowego zasobu usługi Azure Search do użycia.
index_name string Prawda Nazwa indeksu, który ma być używany w przywołyowanym zasobie usługi Azure Search.
authentication Jeden z elementów ApiKeyAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions, UserAssignedManagedIdentityAuthenticationOptions, onYourDataAccessTokenAuthenticationOptions Prawda Metoda uwierzytelniania używana podczas uzyskiwania dostępu do zdefiniowanego źródła danych.
embedding_dependency Jeden z elementów DeploymentNameVectorizationSource, EndpointVectorizationSource Fałsz Zależność osadzania dla wyszukiwania wektorowego. Wymagane, jeśli query_type ma wartość vector, vector_simple_hybridlub vector_semantic_hybrid.
fields_mapping FieldsMappingOptions Fałsz Dostosowane zachowanie mapowania pól do użycia podczas interakcji z indeksem wyszukiwania.
filter string Fałsz Filtr wyszukiwania.
in_scope boolean Fałsz Czy zapytania powinny być ograniczone do używania indeksowanych danych. Wartość domyślna to True.
query_type Typ zapytania Fałsz Typ zapytania do użycia z usługą Azure Search. Wartość domyślna to simple
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.
semantic_configuration string Fałsz Semantyczna konfiguracja zapytania. Wymagane, jeśli query_type wartość to semantic lub vector_semantic_hybrid.
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.
max_search_queries integer Fałsz Maksymalna liczba przepisanych zapytań powinna być wysyłana do dostawcy wyszukiwania dla jednego komunikatu użytkownika. Jeśli nie zostanie określony, system zdecyduje o liczbie zapytań do wysłania.
allow_partial_result integer Fałsz Jeśli określono wartość true, system zezwoli na użycie częściowych wyników wyszukiwania, a żądanie zakończy się niepowodzeniem, jeśli wszystkie zapytania kończą się niepowodzeniem. Jeśli nie zostanie określony lub określony jako false, żądanie zakończy się niepowodzeniem, jeśli jakiekolwiek zapytanie wyszukiwania zakończy się niepowodzeniem.
include_contexts tablica Fałsz Uwzględnione właściwości kontekstu wyjściowego. Jeśli nie zostanie określony, wartość domyślna to citations i intent. Wartości mogą mieć citationswartość ,intent, all_retrieved_documents.

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 uwierzytelniania tożsamości zarządzanej przypisanej przez system

Opcje uwierzytelniania usługi Azure OpenAI na danych podczas korzystania z tożsamości zarządzanej przypisanej przez system.

Nazwisko Type Wymagania opis
type string Prawda Musi mieć wartość system_assigned_managed_identity.

Opcje uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika

Opcje uwierzytelniania usługi Azure OpenAI na danych podczas korzystania z tożsamości zarządzanej przypisanej przez użytkownika.

Nazwisko Type Wymagania opis
managed_identity_resource_id string Prawda Identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika do użycia do uwierzytelniania.
type string Prawda Musi mieć wartość user_assigned_managed_identity.

Opcje uwierzytelniania tokenu dostępu

Opcje uwierzytelniania dla usługi Azure OpenAI Na danych podczas korzystania z tokenu dostępu.

Nazwisko Type Wymagania opis
access_token string Prawda Token dostępu do użycia do uwierzytelniania.
type string Prawda Musi mieć wartość access_token.

Ź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.
dimensions integer Fałsz Liczba wymiarów osadzania powinna mieć wartość . Obsługiwane tylko w text-embedding-3 modelach i nowszych.

Ź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.
dimensions integer Fałsz Liczba wymiarów osadzania powinna mieć wartość . Obsługiwane tylko w text-embedding-3 modelach i nowszych.

Opcje mapowania pól

Opcjonalne ustawienia umożliwiające kontrolowanie sposobu przetwarzania pól podczas korzystania ze skonfigurowanego zasobu usługi Azure Search.

Nazwisko Type Wymagania opis
content_fields string[] Fałsz Nazwy pól indeksu, które powinny być traktowane jako zawartość.
vector_fields string[] Fałsz 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.

Typ zapytania

Typ zapytania pobierania usługi Azure Search, które należy wykonać podczas korzystania z niego jako azure OpenAI On Your Data.

Wartość wyliczenia opis
simple Reprezentuje domyślny, prosty analizator zapytań.
semantic Reprezentuje semantyczny analizator zapytań na potrzeby zaawansowanego modelowania semantycznego.
vector Reprezentuje wyszukiwanie wektorów na podstawie obliczonych danych.
vector_simple_hybrid Reprezentuje kombinację prostej strategii zapytania z danymi wektorowymi.
vector_semantic_hybrid Reprezentuje kombinację semantycznego wyszukiwania i wykonywania zapytań dotyczących danych wektorowych.

Przykłady

Wymagania wstępne:

  • Skonfiguruj przypisania ról z przypisanej przez system tożsamości zarządzanej systemu Azure OpenAI do usługi Azure Search. Wymagane role: Search Index Data Reader, Search Service Contributor.
  • 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, , ChatCompletionsDeploymentNameSearchEndpoint, SearchIndex.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

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")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")

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_search",
                "parameters": {
                    "endpoint": search_endpoint,
                    "index_name": search_index,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    }
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))