Partager via


Activer la mise en cache sémantique pour les API Azure OpenAI dans la Gestion des API Azure

S’APPLIQUE À : Tous les niveaux de Gestion des API

Activez la mise en cache sémantique des réponses sur les demandes d’API Azure OpenAI pour réduire la bande passante et le traitement imposés par les API back-end et limiter la latence perçue par les consommateurs d’API. Avec la mise en cache sémantique, vous pouvez retourner des réponses mises en cache pour des prompts identiques et des prompts qui ont un sens similaire, même si le texte n’est pas le même. Pour connaître le contexte, consultez Tutoriel : Utiliser Azure Cache pour Redis comme cache sémantique.

Remarque

Les étapes de configuration décrites dans cet article activent la mise en cache sémantique pour les API Azure OpenAI. Ces étapes peuvent être généralisées pour activer la mise en cache sémantique pour les API LLM (Large Language Model) correspondantes disponibles via l’API d’inférence du modèle AZURE AI.

Prérequis

Tester le déploiement des API de conversation

Tout d’abord, testez le déploiement Azure OpenAI pour vous assurer que l’API de complétion de conversation ou l’API de conversation fonctionne comme prévu. Pour connaître les étapes, consultez Importer une API Azure OpenAI dans la Gestion des API Azure.

Par exemple, testez l’API de conversation Azure OpenAI en envoyant une requête POST au point de terminaison de l’API avec un prompt dans le corps de la requête. La réponse devrait inclure la complétion du prompt. Exemple de requête :

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

avec le corps de requête :

{"messages":[{"role":"user","content":"Hello"}]}

Une fois que la requête a réussi, la réponse inclut une complétion pour le message de conversation.

Créer un back-end pour l’API d’incorporations

Configurez une ressource back-end pour le déploiement de l’API d’incorporations avec les paramètres suivants :

  • Nom – Nom de votre choix, comme embeddings-backend. Vous utilisez ce nom pour référencer le back-end dans les stratégies.
  • Type – Sélectionnez URL personnalisée.
  • URL du runtime – URL du déploiement de l’API d’incorporations dans Azure OpenAI Service, similaire à : https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings
  • Informations d’identification d’autorisation : accédez à l’onglet Identité managée.
    • Identité du client : sélectionnez Identité affectée par le système ou entrez un ID client d’identité managée attribué par l'utilisateur.
    • ID de ressource : entrez https://cognitiveservices.azure.com/ pour le service Azure OpenAI.

Test backend

Pour tester le back-end, créez une opération d’API pour votre API Azure OpenAI Service :

  1. Sous l’onglet Conception de votre API, sélectionnez + Ajouter une opération.
  2. Entrez un Nom d’affichage et éventuellement un Nom pour l’opération.
  3. Dans la section Front-end, dans URL, sélectionnez POST et entrez le chemin /.
  4. Sous l’onglet En-têtes, ajoutez un en-tête obligatoire avec le nom Content-Type et la valeur application/json.
  5. Cliquez sur Enregistrer

Configurez les stratégies suivantes dans la section Traitement entrant de l’opération d’API. Dans la stratégie set-backend-service, remplacez le nom du back-end que vous avez créé.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

Sous l’onglet Tester, testez l’opération en ajoutant un paramètre de requête api-version avec une valeur telle que 2024-02-01. Fournissez un corps de requête valide. Par exemple :

{"input":"Hello"}

Si la requête a réussi, la réponse inclut une représentation vectorielle du texte d’entrée :

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Configurer des stratégies de mise en cache sémantique

Configurez les stratégies suivantes afin d’activer la mise en cache sémantique pour les API Azure OpenAI dans la Gestion des API Azure :

  • Dans la section Traitement entrant de l’API, ajoutez la stratégie azure-openai-semantic-cache-lookup. Dans l’attribut embeddings-backend-id, spécifiez le back-end de l’API d’incorporations que vous avez créé.

    Remarque

    Lors de l’activation de la mise en cache sémantique pour d’autres API de modèle de langage volumineux, utilisez plutôt la llm-semantic-cache-lookup.

    Exemple :

    <azure-openai-semantic-cache-lookup
        score-threshold="0.8"
        embeddings-backend-id="embeddings-deployment"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    
    
  • Dans la section Traitement sortant de l’API, ajoutez la stratégie azure-openai-semantic-cache-store.

    Remarque

    Lors de l’activation de la mise en cache sémantique pour d’autres API de modèle de langage volumineux, utilisez plutôt la llm-semantic-cache-store.

    Exemple :

    <azure-openai-semantic-cache-store duration="60" />
    

Confirmer la mise en cache

Pour confirmer que la mise en cache sémantique fonctionne comme prévu, tracez une opération de complétion ou de complétion de conversation test à l’aide de la console de test dans le portail. Vérifiez que le cache a été utilisé lors des tentatives successives en inspectant la trace. En savoir plus sur le traçage des appels d’API dans la Gestion des API Azure.

Par exemple, si le cache a été utilisé, la section Sortie inclut des entrées similaires à celles de la capture d’écran suivante :

Capture d’écran de la trace de la requête dans le portail Azure.