Condividi tramite


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

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 SearchIndexClientin .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 .

dotnet add package Aspire.Hosting.Azure.Search

Nel file Program.cs di AppHostaggiungere 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