ai-agents-for-beginners

Przewodnik po konfiguracji Azure AI Search

Ten przewodnik pomoże Ci skonfigurować Azure AI Search za pomocą portalu Azure. Postępuj zgodnie z poniższymi krokami, aby utworzyć i skonfigurować usługę Azure AI Search.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że masz:

Krok 1: Utwórz konto magazynu Azure

  1. Postępuj zgodnie z instrukcją Create an Azure storage account, aby utworzyć nowe konto magazynu Azure. UWAGA: Upewnij się, że typ konta magazynu to Standard General Purpose V2.
  1. Zaloguj się do Azure portal.
  2. W lewym panelu nawigacyjnym kliknij Create a resource.
  3. W polu wyszukiwania wpisz “Azure AI Search” i wybierz Azure AI Search z listy wyników.
  4. Kliknij przycisk Create.
  5. Na karcie Basics podaj następujące informacje:
    • Subscription: Wybierz swoją subskrypcję Azure.
    • Resource group: Utwórz nową grupę zasobów lub wybierz istniejącą.
    • Resource name: Wprowadź unikalną nazwę dla usługi wyszukiwania.
    • Region: Wybierz region najbliższy Twoim użytkownikom.
    • Pricing tier: Wybierz poziom cenowy odpowiadający Twoim wymaganiom. Możesz zacząć od poziomu Free do testów.
  6. Kliknij Review + create.
  7. Sprawdź ustawienia i kliknij Create, aby utworzyć usługę wyszukiwania.
  1. Po zakończeniu wdrażania przejdź do swojej usługi wyszukiwania w portalu Azure.
  2. W panelu przeglądu usługi wyszukiwania skopiuj adres URL. Powinien wyglądać jak https://<service-name>.search.windows.net.
  3. (Zalecane) Włącz dostęp bezkluczowy z Microsoft Entra ID (RBAC), jak pokazano w Kroku 4 poniżej — nie jest potrzebny klucz. Przykłady w tym przewodniku tworzą/aktualizują indeksy i przesyłają dokumenty, które wymagają ról Search Service Contributor i Search Index Data Contributor (lub w przypadku uwierzytelniania opartego na kluczu — primary admin key, a nie query key). Tylko jeśli nie możesz użyć RBAC, otwórz panel Settings > Keys i skopiuj primary admin key.
  4. Postępuj zgodnie z krokami na stronie Quickstart guide, aby utworzyć indeks, przesłać dane i wykonać wyszukiwanie.

Azure AI Search integruje się z różnymi narzędziami, aby rozszerzyć możliwości wyszukiwania. Możesz używać Azure CLI, Python SDK, .NET SDK oraz innych narzędzi do zaawansowanej konfiguracji i operacji.

Korzystanie z Azure CLI

  1. Zainstaluj Azure CLI, postępując zgodnie z instrukcjami na stronie Install Azure CLI.
  2. Zaloguj się do Azure CLI za pomocą polecenia:

    az login
    
  3. (Zalecane) Włącz dostęp bezkluczowy z Microsoft Entra ID (RBAC):

     az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
     az role assignment create --assignee <your-user-or-principal-id> --role "Search Service Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
     az role assignment create --assignee <your-user-or-principal-id> --role "Search Index Data Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
     # az search service show has no "endpoint" field; build the URL from the service name.
     export AZURE_SEARCH_SERVICE_ENDPOINT="https://<service-name>.search.windows.net"
    

    Po włączeniu RBAC przykłady w Pythonie i .NET poniżej uwierzytelniają się przy użyciu DefaultAzureCredential, która używa Twojej sesji az login podczas lokalnego rozwoju — nie jest potrzebny klucz administratora. Zobacz Connect to Azure AI Search using roles.

  4. (Alternatywnie) Uwierzytelnianie oparte na kluczu — tylko jeśli nie możesz użyć RBAC, zapisz również klucz administratora:

Zapisz zarówno punkt końcowy, jak i klucz API instancji Azure AI Search w zmiennych środowiskowych.

Korzystanie z Python SDK

  1. Zainstaluj bibliotekę klienta Azure Cognitive Search oraz Azure Identity dla Pythona:

    pip install azure-search-documents azure-identity
    
  2. Użyj następującego kodu Python, aby utworzyć indeks i przesłać dokumenty:

     import os
     from azure.identity import DefaultAzureCredential
     from azure.search.documents import SearchClient
     from azure.search.documents.indexes import SearchIndexClient
     from azure.search.documents.indexes.models import SearchIndex, SimpleField, edm
    
     service_endpoint = os.getenv("AZURE_SEARCH_SERVICE_ENDPOINT")
     index_name = "sample-index"
    
     # Keyless (recommended): uses your `az login` identity via Entra ID RBAC.
     # Requires the "Search Service Contributor" and "Search Index Data Contributor" roles.
     credential = DefaultAzureCredential()
     # Fallback (key-based auth):
     # from azure.core.credentials import AzureKeyCredential
     # credential = AzureKeyCredential(os.getenv("AZURE_SEARCH_API_KEY"))
     index_client = SearchIndexClient(service_endpoint, credential)
    
     fields = [
         SimpleField(name="id", type=edm.String, key=True),
         SimpleField(name="content", type=edm.String, searchable=True),
     ]
    
     index = SearchIndex(name=index_name, fields=fields)
    
     index_client.create_index(index)
    
     search_client = SearchClient(service_endpoint, index_name, credential)
    
     documents = [
         {"id": "1", "content": "Hello world"},
         {"id": "2", "content": "Azure Cognitive Search"}
     ]
    
     search_client.upload_documents(documents)
    

Korzystanie z .NET SDK

  1. Uruchom następujące polecenie, aby utworzyć indeks i przesłać dokumenty:

     dotnet run ./AzureSearch.cs
    

    Przykład .NET poniżej używa DefaultAzureCredential, które może korzystać z Twojego logowania Azure CLI z az login podczas lokalnego rozwoju.

  2. Oto kod .NET dla AzureSearch.cs:

     #:package Azure.Search.Documents@11.*
     #:package Azure.Identity@1.21.0
     #:property PublishAot=false
    
     using Azure;
     using Azure.Identity;
     using Azure.Search.Documents;
     using Azure.Search.Documents.Indexes;
     using Azure.Search.Documents.Indexes.Models;
    
     var serviceEndpoint = new Uri(Environment.GetEnvironmentVariable("AZURE_SEARCH_SERVICE_ENDPOINT")!);
     var indexName = "sample-index";
    
     // Keyless (recommended): uses your `az login` identity via Entra ID RBAC.
     // Requires the "Search Service Contributor" and "Search Index Data Contributor" roles.
     var credential = new DefaultAzureCredential();
     // Fallback (key-based auth): the `using Azure;` directive above already imports
     // AzureKeyCredential; replace the credential line above with:
     // var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_SEARCH_API_KEY")!);
     var indexClient = new SearchIndexClient(serviceEndpoint, credential);
    
     var fields = new List<SearchField>()
     {
         new SimpleField("id", SearchFieldDataType.String) { IsKey = true },
         new SearchableField("content")
     };
    
     var index = new SearchIndex(name: indexName, fields: fields);
    
     var response = await indexClient.CreateOrUpdateIndexAsync(index);
     Console.WriteLine($"Index '{response.Value.Name}' ready.");
    
     var searchClient = new SearchClient(serviceEndpoint, indexName, credential);
    
     var documents = new[]
     {
         new { id = "1", content = "Hello world" },
         new { id = "2", content = "Azure Cognitive Search" }
     };
    
     var result = await searchClient.UploadDocumentsAsync(documents);
     Console.WriteLine($"Uploaded {result.Value.Results.Count} documents to index '{response.Value.Name}'.");
    

Aby uzyskać bardziej szczegółowe informacje, zapoznaj się z następującą dokumentacją:

Podsumowanie

Pomyślnie skonfigurowałeś Azure AI Search za pomocą portalu Azure oraz zintegrowanych narzędzi. Teraz możesz eksplorować bardziej zaawansowane funkcje i możliwości Azure AI Search, aby ulepszyć swoje rozwiązania wyszukiwania.

W razie potrzeby odwiedź dokumentację Azure Cognitive Search.


Zastrzeżenie: Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.