Integratie van AI Search-documenten .NET AspireAzure
In dit artikel leert u hoe u de .NET AspireAzure AI Search Documents clientgebruikt. De Aspire.Azure.Search.Documents
-bibliotheek wordt gebruikt om een SearchIndexClient te registreren in de container voor afhankelijkheidsinjectie (DI) om verbinding te maken met Azure Search. Hiermee worden bijbehorende statuscontroles en logboekregistratie ingeschakeld.
Voor meer informatie over het gebruik van de SearchIndexClient
, zie Hoe Azurete gebruiken. Zoek in documenten binnen een C# .NET-toepassing.
Aan de slag
- Azure-abonnement: maak er gratis een aan.
- Azure Search-service: een Azure AI Search-service-resource maken.
Installeer de 📦Aspireom aan de slag te gaan met de integratie van AI Search-documenten .NET AspireAzure.Azure. Search.Documents NuGet-pakket in het client-verbruikende project, d.w.v. het project voor de toepassing die gebruikmaakt van het Azure AI Search Documents client.
dotnet add package Aspire.Azure.Search.Documents
Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.
Voorbeeld van gebruik
Roep in het Program.cs-bestand van uw project dat clientverbruikt, de extensiemethode aan om een SearchIndexClient
te registreren voor gebruik via de afhankelijkheidsinjectiecontainer. De AddAzureSearchClient-methode gebruikt een verbindingsnaamparameter.
builder.AddAzureSearchClient("searchConnectionName");
Vervolgens kunt u het SearchIndexClient
exemplaar ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld de client wilt ophalen uit een voorbeeldservice:
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
U kunt ook een SearchClient
ophalen die kan worden gebruikt voor het uitvoeren van query's door de methode SearchIndexClient.GetSearchClient als volgt aan te roepen:
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;
}
}
Voor meer informatie, zie de Azure AI Search client bibliotheek voor .NET voor voorbeelden van het gebruik van de SearchIndexClient
.
App-hostgebruik
Als u ondersteuning voor Azure AI-hosting wilt toevoegen aan uw IDistributedApplicationBuilder, installeert u het 📦Aspire.Hosting.Azure-pakket in het NuGet-app-hostproject .
dotnet add package Aspire.Hosting.Azure.Search
Voeg in het Program.cs-bestand van AppHost
een Azure Search-service toe en gebruik de verbinding met behulp van de volgende 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);
De AddAzureSearch-methode leest verbindingsgegevens uit de configuratie van AppHost (bijvoorbeeld uit 'gebruikersgeheimen') onder de ConnectionStrings:search
configuratiesleutel. De methode WithReference
geeft die verbindingsgegevens door aan een verbindingsreeks met de naam search
in het MyService
project. In het Program.cs-bestand van MyService
kan de verbinding tot stand worden gebracht met:
builder.AddAzureSearch("search");
Configuratie
De .NET AspireAzureAzure Search-bibliotheek biedt meerdere opties voor het configureren van de Azure Search Service op basis van de vereisten en conventies van uw project. Houd er rekening mee dat er een Endpoint
of een ConnectionString
moet worden opgegeven.
Een verbindingsreeks gebruiken
Er kan een verbinding worden gemaakt vanaf het tabblad Sleutels en Eindpunt met het formaat Endpoint={endpoint};Key={key};
. U kunt de naam van de verbindingsreeks opgeven bij het aanroepen van builder.AddAzureSearch()
:
builder.AddAzureSearch("searchConnectionName");
Vervolgens wordt de verbindingsreeks opgehaald uit de sectie ConnectionStrings
configuratie. Er worden twee verbindingsindelingen ondersteund:
Accounteindpunt
De aanbevolen methode is om een Endpoint
te gebruiken, die werkt met de eigenschap AzureSearchSettings.Credential
om een verbinding tot stand te brengen. Als er geen inloggegevens zijn geconfigureerd, wordt de DefaultAzureCredential gebruikt.
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
Verbindingsreeks
U kunt ook een aangepaste verbindingsreeks gebruiken.
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
Configuratieproviders gebruiken
De .NET AspireAzure AI Search-bibliotheek ondersteunt Microsoft.Extensions.Configuration. Hiermee worden de AzureSearchSettings
en SearchClientOptions
vanuit de configuratie geladen met behulp van de Aspire:Azure:Search:Documents
-sleutel. Voorbeeld appsettings.json waarmee een aantal van de opties wordt geconfigureerd:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
Inline gedelegeerden gebruiken
U kunt ook de Action<AzureSearchSettings> configureSettings
delegate doorgeven om bepaalde of alle opties inline in te stellen, bijvoorbeeld om tracering vanuit de code uit te schakelen.
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
U kunt de SearchClientOptions ook instellen met behulp van de optionele Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
parameter van de methode AddAzureSearch
. Als u bijvoorbeeld de client-id voor deze clientwilt instellen:
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Gezondheidscontroles
Standaard kunnen .NET.NET Aspire integraties statuscontroles voor alle services inschakelen. Zie .NET.NET Aspire overzicht van integratiesvoor meer informatie.
De AI-zoekdocumentenintegratie .NET AspireAzure implementeert een enkele gezondheidscontrole, die de GetServiceStatisticsAsync-methode op de SearchIndexClient
aanroept om te controleren of de service beschikbaar is.
Waarneembaarheid en telemetrie
.NET .NET Aspire integraties stellen automatisch logging-, tracing- en metricsconfiguraties in, die ook wel bekendstaan als de pijlers van zichtbaarheid. Zie .NET.NET Aspire overzicht van integratieintegratiesvoor meer informatie over de waarneembaarheid en telemetrie van integraties. Afhankelijk van de back-upservice ondersteunen sommige integraties mogelijk slechts enkele van deze functies. Sommige integraties ondersteunen bijvoorbeeld logboekregistratie en tracering, maar geen metrische gegevens. Telemetriefuncties kunnen ook worden uitgeschakeld met behulp van de technieken die worden weergegeven in de sectie Configuratie.
Loggen
De integratie .NET AspireAzure AI Search Documents maakt gebruik van de volgende logboekcategorieën:
Azure
Azure.Core
Azure.Identity