Freigeben über


.NET Aspire Azure Integration von KI-Suchlösungen in Dokumente

In diesem Artikel erfahren Sie, wie Sie die .NET AspireAzure Dokumentensuche mit KI clientverwenden. Die Aspire.Azure.Search.Documents-Bibliothek wird verwendet, um eine SearchIndexClient im Container zum Einfügen von Abhängigkeiten (DI) zu registrieren, um eine Verbindung mit Azure Search herzustellen. Es ermöglicht entsprechende Gesundheitsprüfungen und Protokollierung.

Weitere Informationen zur Verwendung des SearchIndexClientfinden Sie unter Anleitung zur Verwendung von Azure. Suchen Sie in Dokumenten in einer C# .NET-Anwendung.

Loslegen

Um mit der Integration von .NET AspireAzure AI Search Documents zu beginnen, installieren Sie das NuGet-Paket 📦Aspire.Azure.Search.Documents im Projekt client, das die Anwendung enthält, die die Azure AI Search Documents clientverwendet.

dotnet add package Aspire.Azure.Search.Documents

Weitere Informationen finden Sie unter dotnet add package oder Verwalten von Paketabhängigkeiten in .NET-Anwendungen.

Beispielverwendung

Rufen Sie in der Program.cs-Datei Ihres client-verbrauchenden Projekts die Erweiterungsmethode auf, um eine SearchIndexClient für die Verwendung über den Container zum Einfügen von Abhängigkeiten zu registrieren. Die AddAzureSearchClient-Methode verwendet einen Verbindungsnamenparameter.

builder.AddAzureSearchClient("searchConnectionName");

Anschließend können Sie die SearchIndexClient Instanz mithilfe der Abhängigkeitseinfügung abrufen. Um beispielsweise die client aus einem Beispiel-Dienst abzurufen:

public class ExampleService(SearchIndexClient indexClient)
{
    // Use indexClient
}

Sie können auch eine SearchClient abrufen, die für die Abfrage verwendet werden kann, indem Sie die SearchIndexClient.GetSearchClient-Methode wie folgt aufrufen:

public class ExampleService(SearchIndexClient indexClient)
{
    public async Task<long> GetDocumentCountAsync(
        string indexName,
        CancellationToken cancellationToken)
    {
        var searchClient = indexClient.GetSearchClient(indexName);

        var documentCountResponse = await searchClient.GetDocumentCountAsync(
            cancellationToken);

        return documentCountResponse.Value;
    }
}

Weitere Informationen finden Sie in der Azure AI Search client-Bibliothek für .NET, einschließlich Beispielen zur Verwendung von SearchIndexClient.

App-Host-Nutzung

Um Azure AI-Hostingunterstützung zu Ihrem IDistributedApplicationBuilderhinzuzufügen, installieren Sie die 📦Aspire. Hosting.Azure. Suchen Sie NuGet-Paket im App-Host Projekt.

dotnet add package Aspire.Hosting.Azure.Search

Fügen Sie in der Program.cs Datei von AppHosteinen Azure Suchdienst hinzu und nutzen Sie die Verbindung mit den folgenden Methoden:

var builder = DistributedApplication.CreateBuilder(args);

var search = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureSearch("search")
    : builder.AddConnectionString("search");

var myService = builder.AddProject<Projects.MyService>()
                       .WithReference(search);

Die AddAzureSearch-Methode liest Verbindungsinformationen aus der Konfiguration von AppHost (z. B. aus "Benutzergeheimnissen") unter dem Konfigurationsschlüssel ConnectionStrings:search. Die WithReference Methode übergibt diese Verbindungsinformationen an eine Verbindungszeichenfolge mit dem Namen search im Projekt MyService. In der Program.cs-Datei von MyServicekann die Verbindung mit genutzt werden:

builder.AddAzureSearch("search");

Konfiguration

Die .NET AspireAzureAzure Suchbibliothek bietet mehrere Optionen zum Konfigurieren des Azure Suchdiensts basierend auf den Anforderungen und Konventionen Ihres Projekts. Beachten Sie, dass entweder ein Endpoint oder ein ConnectionString angegeben werden muss.

Verwenden Sie eine Verbindungszeichenfolge

Eine Verbindung kann über die Registerkarte Schlüssel und Endpunkt mit dem Format Endpoint={endpoint};Key={key};erstellt werden. Sie können beim Aufrufen von builder.AddAzureSearch()den Namen der Verbindungszeichenfolge angeben:

builder.AddAzureSearch("searchConnectionName");

Anschließend wird die Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings abgerufen. Zwei Verbindungsformate werden unterstützt:

Kontoendpunkt

Der empfohlene Ansatz besteht darin, eine Endpointzu verwenden, die mit der Eigenschaft AzureSearchSettings.Credential zusammenarbeitet, um eine Verbindung herzustellen. Wenn keine Anmeldeinformationen konfiguriert sind, wird das DefaultAzureCredential verwendet.

{
  "ConnectionStrings": {
    "searchConnectionName": "https://{search_service}.search.windows.net/"
  }
}

Verbindungszeichenfolge

Alternativ kann eine benutzerdefinierte Verbindungszeichenfolge verwendet werden.

{
  "ConnectionStrings": {
    "searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
  }
}

Verwenden von Konfigurationsanbietern

Die .NET AspireAzure AI Search-Bibliothek unterstützt Microsoft.Extensions.Configuration. Sie lädt die AzureSearchSettings und SearchClientOptions mithilfe des Aspire:Azure:Search:Documents Schlüssels aus der Konfiguration. Beispiel appsettings.json, das einige der Optionen konfiguriert:

{
  "Aspire": {
    "Azure": {
      "Search": {
        "Documents": {
          "DisableTracing": false,
        }
      }
    }
  }
}

Inlinedelegaten verwenden

Sie können auch den Action<AzureSearchSettings> configureSettings Delegat übergeben, um einige oder alle Optionen inline einzurichten, z. B. zum Deaktivieren der Ablaufverfolgung aus Code:

builder.AddAzureSearch(
    "searchConnectionName",
    static settings => settings.DisableTracing = true);

Sie können die SearchClientOptions auch mithilfe des optionalen Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder-Parameters der AddAzureSearch-Methode einrichten. Um beispielsweise die client-ID für diese clientfestzulegen:

builder.AddAzureSearch(
    "searchConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

Gesundheitschecks

Standardmäßig aktivieren die Integrationen .NET.NET AspireIntegritätsprüfungen für alle Dienste. Weitere Informationen finden Sie unter .NET.NET Aspire Integrationsübersicht.

Die Integration von .NET AspireAzure AI Search Documents implementiert eine einzelne Integritätsprüfung, die die GetServiceStatisticsAsync Methode auf die SearchIndexClient aufruft, um zu überprüfen, ob der Dienst verfügbar ist.

Observability und Telemetrie

.NET .NET Aspire Integrationen richten automatisch Protokollierungs-, Ablaufverfolgungs- und Metrikkonfigurationen ein, die manchmal als die Säulen der Observabilitybezeichnet werden. Weitere Informationen zur Integrationsüberwachung und Telemetrie finden Sie unter .NET.NET Aspire Integrationsübersicht. Abhängig vom unterstützenden Dienst unterstützen einige Integrationen möglicherweise nur einige dieser Funktionen. Beispielsweise unterstützen einige Integrationen Protokollierung und Ablaufverfolgung, aber keine Metriken. Telemetrie-Features können auch mithilfe der Techniken deaktiviert werden, die im Abschnitt Konfiguration dargestellt werden.

Protokollierung

Die .NET AspireAzure KI-Suchdokumente-Integration verwendet die folgenden Protokollkategorien:

  • Azure
  • Azure.Core
  • Azure.Identity

Siehe auch