integrazione dei documenti di ricerca di intelligenza artificiale .NET AspireAzure
Questo articolo illustra come usare i documenti di ricerca di intelligenza artificiale .NET AspireAzureclient. La libreria Aspire.Azure.Search.Documents
viene utilizzata per registrare un SearchIndexClient nel contenitore di iniezione delle dipendenze per connettersi a Azure Search. Abilita i controlli di integrità e la registrazione corrispondenti.
Per altre informazioni sull'uso di SearchIndexClient
, vedere Come usare Azure. Search.Documents in un'applicazione C# .NET.
Inizia
- sottoscrizione Azure: crearne una gratuitamente.
- Azure servizio di ricerca: creare una risorsa per il servizio di ricerca IA Azure.
Per iniziare a usare l'integrazione AI per la ricerca dei documenti .NET AspireAzure, installare il pacchetto NuGet 📦Aspire.Azure. Search.Documents nel progetto che utilizza client, ad esempio il progetto per l'applicazione che usa l'integrazione AI per la ricerca dei documenti Azureclient.
dotnet add package Aspire.Azure.Search.Documents
Per ulteriori informazioni, vedere dotnet add package o Gestire le dipendenze dei pacchetti nelle applicazioni .NET.
Esempio di utilizzo
Nel file Program.cs del progetto che consuma client, chiamare il metodo di estensione per registrare un SearchIndexClient
da usare tramite il contenitore per l'inserimento delle dipendenze. Il metodo AddAzureSearchClient accetta un parametro del nome di connessione.
builder.AddAzureSearchClient("searchConnectionName");
È quindi possibile recuperare l'istanza di SearchIndexClient
usando l'inserimento delle dipendenze. Ad esempio, per recuperare il client da un servizio di esempio:
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
È anche possibile recuperare un SearchClient
che può essere usato per l'esecuzione di query chiamando il metodo SearchIndexClient.GetSearchClient come indicato di seguito:
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;
}
}
Per altre informazioni, vedere la libreria di ricerca di intelligenza artificiale clientAzure per esempi su come utilizzare il SearchIndexClient
in .NET.
Utilizzo dell'host dell'app
Per aggiungere Azure supporto per l'hosting di intelligenza artificiale al IDistributedApplicationBuilder, installare il 📦Aspire. Ospitare.Azure. Cercare pacchetto NuGet nel progetto host dell'app .
- .NET dell'interfaccia della riga di comando
- PackageReference
dotnet add package Aspire.Hosting.Azure.Search
Nel file Program.cs di AppHost
aggiungere un servizio di ricerca Azure e utilizzare la connessione usando i metodi seguenti:
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.ExecutionContext.IsPublishMode
? builder.AddAzureSearch("search")
: builder.AddConnectionString("search");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(search);
Il metodo AddAzureSearch leggerà le informazioni di connessione dalla configurazione di AppHost (ad esempio, dai "segreti dell'utente") sotto la chiave di configurazione ConnectionStrings:search
. Il metodo WithReference
passa tali informazioni di connessione in una stringa di connessione denominata search
nel progetto MyService
. Nel file Program.cs di MyService
, la connessione può essere utilizzata usando:
builder.AddAzureSearch("search");
Configurazione
La libreria di ricerca .NET AspireAzureAzure offre più opzioni per configurare il servizio di ricerca Azure in base ai requisiti e alle convenzioni del progetto. Si noti che è necessario specificare un Endpoint
o un ConnectionString
.
Usare una stringa di connessione
Una connessione può essere costruita dalla scheda Chiavi ed Endpoint con il formato Endpoint={endpoint};Key={key};
. È possibile specificare il nome della stringa di connessione quando si chiama builder.AddAzureSearch()
:
builder.AddAzureSearch("searchConnectionName");
La stringa di connessione verrà quindi recuperata dalla sezione di configurazione ConnectionStrings
. Sono supportati due formati di connessione:
Endpoint dell'account
L'approccio consigliato consiste nell'usare un Endpoint
, che funziona con la proprietà AzureSearchSettings.Credential
per stabilire una connessione. Se non è configurata alcuna credenziale, viene usato il DefaultAzureCredential.
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
Stringa di connessione
In alternativa, è possibile usare una stringa di connessione personalizzata.
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
Utilizzare i provider di configurazione
La libreria di ricerca di intelligenza artificiale .NET AspireAzure supporta Microsoft.Extensions.Configuration. Carica i AzureSearchSettings
e SearchClientOptions
dalla configurazione usando la chiave Aspire:Azure:Search:Documents
. Esempio appsettings.json che configura alcune delle opzioni:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
Usare delegati inline
È anche possibile passare il delegato Action<AzureSearchSettings> configureSettings
per configurare alcune o tutte le opzioni in linea, ad esempio per disabilitare la tracciatura direttamente dal codice.
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
È anche possibile configurare il SearchClientOptions usando il parametro facoltativo Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
del metodo AddAzureSearch
. Ad esempio, per impostare l'ID di client per questo client:
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Controlli sanitari
Per impostazione predefinita, le integrazioni di .NET.NET Aspire abilitano verifiche di integrità per tutti i servizi. Per altre informazioni, vedere panoramica delle integrazioni .NET.NET Aspire.
L'integrazione di documenti di ricerca di intelligenza artificiale .NET AspireAzure implementa un singolo controllo di integrità, che chiama il metodo GetServiceStatisticsAsync nel SearchIndexClient
per verificare che il servizio sia disponibile.
Osservabilità e telemetria
.NET
.NET Aspire le integrazioni configurano automaticamente la registrazione, la tracciatura e le metriche, talvolta note come i pilastri dell'osservabilità. Per altre informazioni sull'osservabilità e la telemetria dell'integrazione, vedere panoramica delle integrazioni .NET.NET Aspire. A seconda del servizio di backup, alcune integrazioni possono supportare solo alcune di queste funzionalità. Ad esempio, alcune integrazioni supportano la registrazione e la traccia, ma non le metriche. Le funzionalità di telemetria possono essere disabilitate anche usando le tecniche presentate nella sezione Configurazione
Registrazione
L'integrazione dei documenti di ricerca di intelligenza artificiale .NET AspireAzure usa le categorie di log seguenti:
Azure
Azure.Core
Azure.Identity
Vedere anche
- Azure Azure AI OpenAI documenti
- integrazioni di
- .NET Aspire GitHub repo