.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 SearchIndexClient
finden Sie unter Anleitung zur Verwendung von Azure. Suchen Sie in Dokumenten in einer C# .NET-Anwendung.
Loslegen
- Azure Abonnement: eins kostenloserstellen.
- Azure Suchdienst: eine Azure KI-Suchdienstressourceerstellen.
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 AppHost
einen 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 MyService
kann 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 Endpoint
zu 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