.NET Aspire Azure integrering av AI-sökdokument
I den här artikeln får du lära dig hur du använder .NET AspireAzure AI-sökdokument client.
Aspire.Azure.Search.Documents
-biblioteket används för att registrera en SearchIndexClient i di-containern (beroendeinmatning) för anslutning till Azure Search. Det möjliggör motsvarande hälsokontroller och loggning.
Mer information om hur du använder SearchIndexClient
finns i Så här använder du Azure. Search.Documents i en C# .NET Application.
Sätta igång
- Azure prenumeration: skapa en gratis prenumeration.
- Azure Söktjänst: skapa en Azure AI-söktjänstresurs.
Om du vill komma igång med integreringen av .NET AspireAzure AI Search Documents installerar du 📦Aspire.Azure. Search.Documents NuGet-paketet i projektet client-consuming, dvs. projektet för programmet som använder Azure AI Search Documents client.
dotnet add package Aspire.Azure.Search.Documents
För mer information, se dotnet add package eller Hantera paketberoenden i .NET-program.
Exempel på användning
I Program.cs-filen för ditt client-förbrukande projekt anropar du metoden för tillägg för att registrera en SearchIndexClient
för användning via dependency injection-containern. Metoden AddAzureSearchClient tar en parameter för anslutningsnamn.
builder.AddAzureSearchClient("searchConnectionName");
Du kan sedan hämta SearchIndexClient
-instansen med hjälp av dependency injection. Om du till exempel vill hämta client från en exempeltjänst:
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
Du kan också hämta en SearchClient
som kan användas för frågor genom att anropa metoden SearchIndexClient.GetSearchClient enligt följande:
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;
}
}
Mer information finns i Azure AI Search client-biblioteket för .NET för exempel på hur du använder SearchIndexClient
.
Appvärdanvändning
Om du vill lägga till Azure AI-värdstöd i din IDistributedApplicationBuilder, installerar du 📦Aspire.Hosting.Azure.Search NuGet-paketet i appvärdsprojektet.
dotnet add package Aspire.Hosting.Azure.Search
I filen Program.cs i AppHost
lägger du till en Azure Search-tjänst och använder anslutningen med hjälp av följande metoder:
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.ExecutionContext.IsPublishMode
? builder.AddAzureSearch("search")
: builder.AddConnectionString("search");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(search);
Metoden AddAzureSearch läser anslutningsinformation från AppHost-konfigurationen (till exempel från "användarhemligheter") under ConnectionStrings:search
konfigurationsnyckel. Metoden WithReference
skickar anslutningsinformationen till en anslutningssträng med namnet search
i MyService
-projektet. I filen Program.cs i MyService
kan anslutningen användas med hjälp av:
builder.AddAzureSearch("search");
Konfiguration
Biblioteket .NET AspireAzureAzure Search innehåller flera alternativ för att konfigurera Azure Söktjänst baserat på kraven och konventionerna i projektet. Observera att antingen en Endpoint
eller en ConnectionString
måste anges.
Använda en anslutningssträng
En anslutning kan konstrueras från fliken Nycklar och Slutpunkter med formatet Endpoint={endpoint};Key={key};
. Du kan ange namnet på anslutningssträngen när du anropar builder.AddAzureSearch()
:
builder.AddAzureSearch("searchConnectionName");
Och sedan hämtas anslutningssträngen från avsnittet ConnectionStrings
konfiguration. Två anslutningsformat stöds:
Kontoslutpunkt
Den rekommenderade metoden är att använda en Endpoint
, som fungerar med egenskapen AzureSearchSettings.Credential
för att upprätta en anslutning. Om inga autentiseringsuppgifter har konfigurerats används DefaultAzureCredential.
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
Anslutningssträng
Du kan också använda en anpassad anslutningssträng.
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
Använda konfigurationsprovidrar
.NET Aspire
Azure AI Search-biblioteket stöder Microsoft.Extensions.Configuration. Den läser in AzureSearchSettings
och SearchClientOptions
från konfigurationen med hjälp av Aspire:Azure:Search:Documents
-nyckeln. Exempel appsettings.json som konfigurerar några av alternativen:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
Använd inlinjedelegater
Du kan också överföra Action<AzureSearchSettings> configureSettings
-delegaten för att konfigurera vissa eller alla alternativ inline, till exempel för att inaktivera spårning från kod:
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
Du kan också konfigurera SearchClientOptions med hjälp av den valfria Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
parametern för metoden AddAzureSearch
. Om du till exempel vill ange client ID för den här client:
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Hälsokontroller
Som standard aktiverar .NET.NET Aspire integreringar hälsokontroller för alla tjänster. Mer information finns i översikten över .NET.NET Aspire integreringar.
Integreringen .NET AspireAzure AI Search Documents implementerar en enda hälsokontroll som anropar metoden GetServiceStatisticsAsync på SearchIndexClient
för att verifiera att tjänsten är tillgänglig.
Observerbarhet och telemetri
.NET .NET Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i översikten över .NET.NET Aspire integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.
Skogsavverkning
Integreringen .NET AspireAzure AI Search Documents använder följande loggkategorier:
Azure
Azure.Core
Azure.Identity
Se även
.NET Aspire