Partager via


intégration de la recherche de documents IA .NET AspireAzure

Dans cet article, vous apprendrez à utiliser les documents de recherche IA .NET AspireAzureclient. La bibliothèque Aspire.Azure.Search.Documents est utilisée pour inscrire un SearchIndexClient dans le conteneur d’injection de dépendances (DI) pour la connexion à Azure Recherche. Il active les vérifications de santé et la journalisation correspondantes.

Pour plus d’informations sur l’utilisation de l'SearchIndexClient, consultez : Comment utiliser Azure. Recherchez des documents dans une application C# .NET.

Démarrer

Pour bien démarrer avec l’intégration .NET AspireAzure ai Search Documents, installez le 📦Aspire.Azure. Search.Documents package NuGet dans le projet client-consommant, c’est-à-dire le projet pour l’application qui utilise les documents de recherche IA Azureclient.

dotnet add package Aspire.Azure.Search.Documents

Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de packages dans les applications .NET.

Exemple d’utilisation

Dans le fichier Program.cs de votre projet consommant client, appelez la méthode d’extension pour inscrire un SearchIndexClient à utiliser via le conteneur d'injection des dépendances. La méthode AddAzureSearchClient prend un paramètre de nom de connexion.

builder.AddAzureSearchClient("searchConnectionName");

Vous pouvez ensuite récupérer l’instance SearchIndexClient à l’aide de l’injection de dépendances. Par exemple, pour récupérer le client à partir d’un exemple de service :

public class ExampleService(SearchIndexClient indexClient)
{
    // Use indexClient
}

Vous pouvez également récupérer un SearchClient pour effectuer des requêtes en appelant la méthode SearchIndexClient.GetSearchClient comme suit :

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;
    }
}

Pour plus d'informations, consultez la bibliothèque Azure recherche d'IA client pour .NET afin d'obtenir des exemples sur l'utilisation du SearchIndexClient.

Utilisation de l’hôte d’application

Pour ajouter prise en charge de l’hébergement IA à votre , installez le . Hébergement.. Recherchez package NuGet dans le projet hôte de l’application .

dotnet add package Aspire.Hosting.Azure.Search

Dans le fichier Program.cs de AppHost, ajoutez un service de recherche Azure et utilisez la connexion à l’aide des méthodes suivantes :

var builder = DistributedApplication.CreateBuilder(args);

var search = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureSearch("search")
    : builder.AddConnectionString("search");

var myService = builder.AddProject<Projects.MyService>()
                       .WithReference(search);

La méthode AddAzureSearch lira les informations de connexion depuis la configuration de l'AppHost (par exemple, à partir de « secrets utilisateur ») sous la clé de configuration ConnectionStrings:search. La méthode WithReference transmet ces informations de connexion dans une chaîne de connexion nommée search dans le projet MyService. Dans le fichier Program.cs de MyService, la connexion peut être consommée à l’aide de :

builder.AddAzureSearch("search");

Configuration

La bibliothèque de recherche .NET AspireAzureAzure fournit plusieurs options pour configurer le service de recherche Azure en fonction des exigences et des conventions de votre projet. Notez qu’un Endpoint ou un ConnectionString doit être fourni.

Utiliser une chaîne de connexion

Une connexion peut être construite à partir de l’onglet Clés et Point de terminaison avec le format Endpoint={endpoint};Key={key};. Vous pouvez fournir le nom de la chaîne de connexion lors de l’appel de builder.AddAzureSearch():

builder.AddAzureSearch("searchConnectionName");

Ensuite, la chaîne de connexion est récupérée à partir de la section de configuration ConnectionStrings. Deux formats de connexion sont pris en charge :

Point de terminaison de compte

L’approche recommandée consiste à utiliser un Endpoint, qui fonctionne avec la propriété AzureSearchSettings.Credential pour établir une connexion. Si aucune information d’identification n’est configurée, la DefaultAzureCredential est utilisée.

{
  "ConnectionStrings": {
    "searchConnectionName": "https://{search_service}.search.windows.net/"
  }
}

Chaîne de connexion

Vous pouvez également utiliser une chaîne de connexion personnalisée.

{
  "ConnectionStrings": {
    "searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
  }
}

Utiliser des fournisseurs de configuration

La bibliothèque .NET AspireAzure AI Search prend en charge Microsoft.Extensions.Configuration. Il charge les AzureSearchSettings et les SearchClientOptions à partir de la configuration en utilisant la clé Aspire:Azure:Search:Documents. Exemple appsettings.json qui configure certaines des options suivantes :

{
  "Aspire": {
    "Azure": {
      "Search": {
        "Documents": {
          "DisableTracing": false,
        }
      }
    }
  }
}

Utiliser des délégués inline

Vous pouvez également transmettre le délégué Action<AzureSearchSettings> configureSettings pour configurer certaines ou toutes les options inline, par exemple pour désactiver le suivi à partir du code :

builder.AddAzureSearch(
    "searchConnectionName",
    static settings => settings.DisableTracing = true);

Vous pouvez également configurer le SearchClientOptions à l’aide du paramètre de Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder facultatif de la méthode AddAzureSearch. Par exemple, pour définir l’ID de client pour cette client:

builder.AddAzureSearch(
    "searchConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

Vérifications d’intégrité

Par défaut, .NET.NET Aspire intégrations permettent vérifications de santé pour tous les services. Pour plus d’informations, consultez .NET.NET Aspire vue d’ensemble des intégrations.

L’intégration .NET AspireAzure ai Search Documents implémente un contrôle d’intégrité unique, qui appelle la méthode GetServiceStatisticsAsync sur le SearchIndexClient pour vérifier que le service est disponible.

Observabilité et télémétrie

.NET .NET Aspire intégrations configurent automatiquement les configurations de journalisation, de suivi et de métriques, parfois appelées les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.

Exploitation forestière

L'intégration des documents de recherche par IA .NET AspireAzure utilise les catégories de journaux suivantes :

  • Azure
  • Azure.Core
  • Azure.Identity

Voir aussi