Règle SemanticCacheLookup

Règle extensible

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d' Apigee Edge.

La règle SemanticCacheLookup est une règle de mise en cache avancée conçue pour optimiser les performances des charges de travail d'IA, en particulier celles impliquant des grands modèles de langage (LLM).

La règle utilise l' API Vertex AI Text Embeddings pour générer des embeddings pour le texte et Vector Search pour trouver des requêtes similaires sur le plan sémantique plutôt que des correspondances exactes.

La règle SemanticCacheLookup réduit les temps de réponse pour les requêtes répétées et optimise les coûts en réduisant le volume d'appels aux LLM.

Cette règle fonctionne conjointement avec la règle SemanticCachePopulate.

Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.

Avant de commencer

Avant d'utiliser la règle SemanticCacheLookup, effectuez les tâches suivantes :

  • Créez un projet Vertex AI.
  • Créez un index Vector Search.
  • Créez un point de terminaison Vertex AI pour l'index.
  • Créez une règle SemanticCachePopulate.

Pour savoir comment effectuer ces tâches, consultez Premiers pas avec les règles de mise en cache sémantique.

Rôles requis

Pour obtenir les autorisations nécessaires pour appliquer et utiliser la règle SemanticCacheLookup, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur AI Platform (roles/aiplatform.user) sur le compte de service que vous utilisez pour déployer des proxys Apigee. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer les API

Activez les API Compute Engine, Vertex AI et Cloud Storage si elles ne le sont pas déjà.

Rôles requis pour activer les API

Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

Activer les API

Élément <SemanticCacheLookup>

Définit une règle SemanticCacheLookup.

Valeur par défaut Consultez l'onglet Règles par défaut ci-dessous.
Obligatoire ? Obligatoire
Type Objet complexe
Élément parent ND
Éléments enfants <DisplayName>
<IgnoreUnresolvedVariables>
<UserPromptSource>
<Embeddings>
<SimilaritySearch>

L'élément <SemanticCacheLookup> utilise la syntaxe suivante :

Syntaxe

L'élément <SemanticCacheLookup> utilise la syntaxe suivante :

<SemanticCacheLookup async="false" continueOnError="false" enabled="true" name="SCL-lookup">
  <DisplayName>SCL-lookup</DisplayName>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
  <Embeddings>
    <VertexAI>
      <URL>https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}:predict</URL>
    </VertexAI>
  </Embeddings>
  <SimilaritySearch>
    <VertexAI>
      <URL>https://{PUBLIC_DOMAIN_NAME}/v1/projects/{PROJECT_ID}/locations/{LOCATION}/indexEndpoints/{INDEX_ENDPOINT_ID}:findNeighbors</URL>
      <DeployedIndexID>{DEPLOYED_INDEX_ID}</DeployedIndexID>
      <Threshold>0.95</Threshold>
      <DistanceMeasureType>DOT_PRODUCT_DISTANCE</DistanceMeasureType>
    </VertexAI>
  </SimilaritySearch>
</SemanticCacheLookup>

Règle par défaut

L'exemple suivant montre les paramètres par défaut lorsque vous ajoutez une règle SemanticCacheLookup à votre flux dans l'interface utilisateur d'Apigee :

<SemanticCacheLookup async="false" continueOnError="false"enabled="true" name="SCL-lookup">
  <DisplayName>SCL-lookup</DisplayName>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
  <Embeddings>
    <VertexAI>
      <URL>https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}:predict
      </URL>
    </VertexAI>
  </Embeddings>
  <SimilaritySearch>
    <VertexAI>
      <URL>https://{PUBLIC_DOMAIN_NAME}/v1/projects/{PROJECT_ID}/locations/{LOCATION}/indexEndpoints/{INDEX_ENDPOINT_ID}:findNeighbors</URL>
      <Threshold>0.9</Threshold>
      <DeployedIndexID>{DEPLOYED_INDEX_ID}</DeployedIndexID>
      <DistanceMeasureType>DOT_PRODUCT_DISTANCE</DistanceMeasureType>
    </VertexAI>
  </SimilaritySearch>
</SemanticCacheLookup>

Lorsque vous insérez une nouvelle règle SemanticCacheLookup dans l'interface utilisateur d'Apigee, le modèle contient des bouchons pour toutes les opérations possibles. Vous trouverez ci-dessous des informations sur les éléments requis.

Cet élément possède les attributs suivants qui sont communs à toutes les règles :

Attribut Par défaut Obligatoire ? Description
name ND Obligatoire

Nom interne de la règle. La valeur de l'attribut name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion avec un nom différent, en langage naturel.

continueOnError faux Facultatif Définissez sur false pour afficher une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles. Définissez sur true pour que l'exécution du flux se poursuive même après l'échec d'une règle. Voir aussi :
enabled true Facultatif Définissez sur true pour appliquer la règle. Définissez sur false pour désactiver la règle. La règle ne sera pas appliquée même si elle reste associée à un flux.
async   faux Obsolète Cet attribut est obsolète.

Le tableau suivant fournit une description détaillée des éléments enfants de <SemanticCacheLookup> :

Élément enfant Obligatoire ? Description
<DisplayName> Facultatif Nom de la règle.

<IgnoreUnresolvedVariables> Facultatif Détermine si le traitement s'arrête lorsqu'une variable n'est pas résolue. Définissez la valeur sur true pour ignorer les variables non résolues et poursuivre le traitement.
<UserPromptSource> Facultatif Emplacement de la charge utile pour le texte du prompt utilisateur à extraire. Seules les valeurs de texte de chaîne sont acceptées.

Ce champ est compatible avec la syntaxe des modèles de messages Apigee, y compris l'utilisation de variables ou de fonctions JSONPath.

Exemple :

{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}

<Embeddings> Obligatoire Élément contenant les informations requises pour générer des embeddings.
<SimilaritySearch> Obligatoire Élément contenant les informations requises pour effectuer des recherches de similarité.

Pour en savoir plus, consultez Interroger un index public pour obtenir les voisins les plus proches.

Référence d'élément enfant

Cette section décrit les éléments enfants de <SemanticCacheLookup>.

<DisplayName>

Utilisez-le, en plus de l'attribut name, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent et plus naturel.

L'élément <DisplayName> est commun à toutes les règles.

Valeur par défaut N/A
Obligatoire ? Facultatif. Si vous omettez <DisplayName>, la valeur de l'attribut name de la règle est utilisée.
Type Chaîne
Élément parent <PolicyElement>
Éléments enfants Aucun

L'élément <DisplayName> utilise la syntaxe suivante :

Syntaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemple

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

L'élément <DisplayName> ne comporte aucun attribut ni élément enfant.

<IgnoreUnresolvedVariables>

Détermine si le traitement s'arrête lorsqu'une variable n'est pas résolue. Définissez la valeur sur true pour ignorer les variables non résolues et poursuivre le traitement.

IgnoreUnresolvedVariables n'est pas applicable lorsque <DefaultValue> est fourni.

Valeur par défaut Faux
Obligatoire ? Facultatif
Type Booléen
Élément parent <SemanticCacheLookup>
Éléments enfants Aucun

<UserPromptSource>

Emplacement de la charge utile pour le texte du prompt utilisateur à extraire. Seules les valeurs de texte de chaîne sont acceptées.

Ce champ est compatible avec la syntaxe des modèles de messages Apigee, y compris l'utilisation de variables ou de fonctions JSONPath.

Exemple :

{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}
Valeur par défaut {jsonPath('$.contents[-1].parts[-1].text',request.content,true)}
Obligatoire ? Facultatif
Type Chaîne
Élément parent <SemanticCacheLookup>
Éléments enfants Aucun

<Embeddings>

Cet élément contient les informations requises pour générer des embeddings de texte.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <SemanticCacheLookup>
Éléments enfants <VertexAI>

L'élément <Embeddings> utilise la syntaxe suivante :

<Embeddings>
  <VertexAI>
    <URL>https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}:predict</URL>
  </VertexAI>
</Embeddings>

<VertexAI> (enfant de <Embeddings>)

Contient l'élément <URL> pour les attributs spécifiques à Vertex AI.

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <Embeddings>
Éléments enfants <URL>

L'élément VertexAI utilise la syntaxe suivante :

<VertexAI>
  <URL>https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}:predict</URL>
</VertexAI>

<URL> (enfant de <VertexAI>)

URL utilisée pour générer des embeddings textuels. Consultez Modèles compatibles pour obtenir la liste des modèles qui fournissent des embeddings de texte pour la règle SemanticCacheLookup.

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <VertexAI>
Éléments enfants Aucune

L'élément URL utilise la syntaxe suivante :

<URL>https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}:predict</URL>

L'élément URL accepte l'utilisation de modèles d'URL. Si vous le souhaitez, fournissez une variable dans cet élément pour contenir la valeur de l'URL, comme indiqué dans l'exemple suivant :

<URL>https://{URL_VARIABLE}</URL>

<SimilaritySearch>

Cet élément contient les informations requises pour effectuer des recherches par similarité.

La recherche par similarité peut s'exécuter sur un index Vector Search déployé sur un point de terminaison public ou privé (Private Service Connect). Vous devez fournir exactement un des transports suivants dans l'élément <VertexAI> :

  • <URL> : pour un point de terminaison public, via REST (:findNeighbors).
  • <PrivateServiceConnect> : pour un point de terminaison privé, via gRPC. Un point de terminaison d'index déployé privé (Private Service Connect) n'accepte que gRPC.

Pour en savoir plus, consultez Interroger l'index public pour obtenir les voisins les plus proches et Mise en cache sémantique avec un point de terminaison privé (Private Service Connect).

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <SemanticCacheLookup>
Éléments enfants <VertexAI>

L'élément <SimilaritySearch> utilise la syntaxe suivante.

Point de terminaison public (REST) :

<SimilaritySearch>
  <VertexAI>
    <URL>https://{PUBLIC_DOMAIN_NAME}/v1/projects/{PROJECT_ID}/locations/{LOCATION}/indexEndpoints/{INDEX_ENDPOINT_ID}:findNeighbors</URL>
    <Threshold>0.9</Threshold>
    <DeployedIndexID>{DEPLOYED_INDEX_ID}</DeployedIndexID>
    <DistanceMeasureType>DOT_PRODUCT_DISTANCE</DistanceMeasureType>
  </VertexAI>
</SimilaritySearch>

Point de terminaison privé (Private Service Connect, gRPC) :

<SimilaritySearch>
  <VertexAI>
    <PrivateServiceConnect>
      <GrpcEndpoint>grpc://{TARGET_HOST}:10000</GrpcEndpoint>
    </PrivateServiceConnect>
    <Threshold>0.9</Threshold>
    <DeployedIndexID>{DEPLOYED_INDEX_ID}</DeployedIndexID>
  </VertexAI>
</SimilaritySearch>

<VertexAI> (enfant de <SimilaritySearch>)

Contient les attributs spécifiques à Vertex AI utilisés pour effectuer la recherche de similarité. Fournissez exactement un des transports suivants : un élément <URL> (pour un point de terminaison public, via REST) ou un élément <PrivateServiceConnect> (pour un point de terminaison privé, via gRPC).

Valeur par défaut N/A
Obligatoire ? Obligatoire
Type Chaîne
Élément parent <SimilaritySearch>
Éléments enfants <URL>

Pour un point de terminaison public, l'élément VertexAI utilise la syntaxe suivante :

<VertexAI>
  <URL>https://{PUBLIC_DOMAIN_NAME}/v1/projects/{PROJECT_ID}/locations/{LOCATION}/indexEndpoints/{INDEX_ENDPOINT_ID}:findNeighbors</URL>
  <Threshold>0.9</Threshold>
  <DeployedIndexID>{DEPLOYED_INDEX_ID}</DeployedIndexID>
  <DistanceMeasureType>DOT_PRODUCT_DISTANCE</DistanceMeasureType>
</VertexAI>

Pour un point de terminaison privé (Private Service Connect), l'élément VertexAI utilise la syntaxe suivante :

<VertexAI>
  <PrivateServiceConnect>
    <GrpcEndpoint>grpc://{TARGET_HOST}:10000</GrpcEndpoint>
  </PrivateServiceConnect>
  <Threshold>0.9</Threshold>
  <DeployedIndexID>{DEPLOYED_INDEX_ID}</DeployedIndexID>
</VertexAI>

Le tableau suivant fournit une description détaillée des éléments enfants de <VertexAI>.

Élément enfant Obligatoire ? Description
<URL> Obligatoire (indiquez <URL> ou <PrivateServiceConnect>) Chaîne

URL utilisée pour effectuer des recherches de similarité par rapport à un point de terminaison d'index Vector Search public, via REST (:findNeighbors). Seul le point de données le plus proche, en fonction du seuil de similarité, est utilisé.

L'élément URL accepte l'utilisation de modèles d'URL. Si vous le souhaitez, fournissez une variable dans cet élément pour contenir la valeur de l'URL, comme indiqué dans l'exemple suivant :

<URL>https://{URL_VARIABLE}</URL>

<PrivateServiceConnect> Obligatoire (indiquez <URL> ou <PrivateServiceConnect>) Objet complexe

Contient les informations de connexion utilisées pour effectuer des recherches de similarité par rapport à un index de recherche Vector Search privé déployé sur un point de terminaison Private Service Connect. Un point de terminaison d'index déployé privé n'accepte que gRPC.

Cet élément contient un seul élément enfant, <GrpcEndpoint> :

<PrivateServiceConnect>
  <GrpcEndpoint>grpc://{TARGET_HOST}:10000</GrpcEndpoint>
</PrivateServiceConnect>

L'élément <GrpcEndpoint> spécifie l'adresse gRPC du point de terminaison privé. Les règles suivantes s'appliquent :

  • Il a le format suivant : grpc://TARGET_HOST:PORT. Le schéma doit être grpc://. grpcs:// (TLS) n'est pas pris en charge dans cette version. TARGET_HOST correspond à l'adresse IP du rattachement de point de terminaison ou à un enregistrement DNS privé dans une zone Cloud DNS appairée.
  • Le port est 10000 pour les points de terminaison du plan de données Vector Search Private Service Connect.
  • Le saut gRPC est en texte brut et non authentifié. Il est sécurisé par l'isolation du réseau.

Pour en savoir plus, consultez Mise en cache sémantique avec un point de terminaison privé (Private Service Connect).

<Threshold> Facultatif Chaîne

Valeur qu'un voisin le plus proche doit atteindre pour être considéré comme une correspondance. <DistanceMeasureType> définit le sens de la comparaison.

La valeur par défaut est 0,9, ce qui convient à DOT_PRODUCT_DISTANCE.

Consultez Choisir un seuil pour votre mesure de distance.

<DeployedIndexID> Obligatoire Chaîne

ID de l'index déployé sur le point de terminaison d'index utilisé pour la mise en cache sémantique.

<DistanceMeasureType> Facultatif Chaîne

Mesure de distance avec laquelle votre index de recherche Vertex AI Vector Search a été créé. Elle définit le sens de la comparaison <Threshold>.

Les valeurs valides sont DOT_PRODUCT_DISTANCE, COSINE_DISTANCE, SQUARED_L2_DISTANCE et L1_DISTANCE, et doivent correspondre exactement. Toute autre valeur entraînera l'échec du déploiement. Pour savoir ce que chaque mesure calcule, consultez Paramètres de configuration d'index.

La valeur par défaut est DOT_PRODUCT_DISTANCE.

Consultez Choisir un seuil pour votre mesure de distance.

Choisir un seuil pour votre mesure de distance

La mesure avec laquelle votre index a été créé détermine le sens de la comparaison <Threshold> : le produit scalaire est une mesure de similarité, donc une valeur plus élevée signifie une meilleure correspondance, tandis que les trois autres sont des distances, où une valeur plus petite signifie une meilleure correspondance. Définissez <DistanceMeasureType> pour qu'il corresponde à votre index, puis ajustez le seuil de cette métrique.

Mesure de distance Seuil de cache
DOT_PRODUCT_DISTANCE (par défaut) value >= threshold
COSINE_DISTANCE value <= threshold
SQUARED_L2_DISTANCE value <= threshold
L1_DISTANCE value <= threshold

Pour trouver la mesure avec laquelle votre index a été créé, exécutez gcloud ai indexes describe INDEX_ID --region=REGION et lisez le champ distanceMeasureType. Pour confirmer que la règle a été appliquée, envoyez la même requête deux fois et inspectez semanticcache.lookup.policy_name.measure_type et semanticcache.lookup.policy_name.nearest_neighbor_measure dans une session de débogage.

Variables de flux

Les variables de flux configurent un comportement d'exécution dynamique pour les règles et les flux, en fonction des en-têtes HTTP ou du contenu des messages, ou du contexte disponible dans le flux. Pour en savoir plus sur les variables de flux, consultez la documentation de référence sur les variables de flux.

Cette règle fournit l'ensemble suivant de variables de flux en lecture seule lors de l'exécution. Vous pouvez utiliser ces variables de flux avec la règle DataCapture pour créer des rapports d'analyse personnalisés. Pour en savoir plus, consultez Collecter des données client avec la règle DataCapture.

Nom de la variable Description
request.content Contient le contenu complet de la requête API entrante.
request.url Contient l'URL de la requête API entrante.
SemanticCacheLookup.policy_name.user_prompt Contient des composants spécifiques extraits de la requête, qui sont utilisés pour générer des embeddings ou effectuer des recherches par similarité.
SemanticCacheLookup.policy_name.embeddings_request Contient le corps de la requête envoyé à l'API Vertex AI Embeddings pour générer des embeddings de texte pour le texte d'entrée.
SemanticCacheLookup.policy_name.embeddings_response Contient la réponse de l'API Vertex AI Embeddings, qui inclut les embeddings de texte générés.
SemanticCacheLookup.policy_name.dense_embeddings Contient les valeurs numériques réelles des embeddings générés par l'API Vertex AI Embeddings.
SemanticCacheLookup.policy_name.is_nearest_neighbor_hit Indique si un voisin le plus proche a été trouvé dans la base de données vectorielle pour la requête et le point de données donnés, et s'il répond au seuil de similarité.
SemanticCacheLookup.policy_name.cache_hit Indique si la réponse a été trouvée dans le cache sémantique.
SemanticCacheLookup.policy_name.cached_llm_response Contient la réponse récupérée à partir du cache sémantique (si un succès de cache (hit) a été trouvé).
semanticcache.lookup.policy_name.nearest_neighbor_measure Contient la valeur brute renvoyée par l'index Vector Search pour le voisin le plus proche. Défini sur les hits et les échecs chaque fois qu'un voisin est renvoyé.
semanticcache.lookup.policy_name.measure_type Contient la mesure de distance appliquée par la règle, y compris lorsqu'elle est revenue à la valeur par défaut. Défini sur les correspondances et les non-correspondances chaque fois qu'un voisin est renvoyé.

Informations de référence sur les erreurs

Cette section décrit les codes d'erreur et les messages d'erreur renvoyés par Apigee, ainsi que les variables d'erreur définies par Apigee, spécifiques à la règle <SemanticCacheLookup>. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.

Erreurs d'exécution

Ces erreurs se produisent lors de l'exécution de la règle.

Code d'erreur État HTTP Cause
steps.semanticcache.lookup.MessageTemplateExtractionFailed 400 Échec de l'extraction des données de la requête à l'aide de l'expression JSONPath.
steps.semanticcache.lookup.FailedToExtractUserPrompt 500 Impossible d'extraire la requête utilisateur de la requête API.
steps.semanticcache.lookup.EmbeddingsServiceUnavailable 400 Le service Vertex AI Embeddings est actuellement indisponible.
steps.semanticcache.lookup.EmbeddingsAPIFailed 400 Le service Vertex AI Embeddings a échoué.
steps.semanticcache.lookup.VectorSearchServiceUnavailable 400 Le service Vertex AI Vector Search est actuellement indisponible.
steps.semanticcache.lookup.VectorSearchAPIFailed 400 Le service Vertex AI Vector Search a échoué.
steps.semanticcache.lookup.AuthenticationFailure 500 Le compte de service ne dispose pas des autorisations requises.
steps.semanticcache.lookup.InternalError 500 Une erreur inattendue s'est produite dans la règle SemanticCacheLookup.
steps.semanticcache.lookup.CalloutError 500 L'appel de service Vertex AI a échoué.

Erreurs de déploiement

Ces erreurs se produisent lorsque vous déployez un proxy contenant cette règle.

Nom de l'erreur Cause
The Embeddings/VertexAI element is required. Se produit si l'élément <VertexAI> dans <Embeddings> est vide.
The SimilaritySearch/VertexAI element is required. Se produit si l'élément <VertexAI> dans <SimilaritySearch> est vide.
Embeddings/VertexAI cannot have both URL and PrivateServiceConnect elements. Se produit si les éléments <URL> et <PrivateServiceConnect> de <Embeddings> sont spécifiés.
SimilaritySearch/VertexAI cannot have both URL and PrivateServiceConnect elements. Se produit si les éléments <URL> et <PrivateServiceConnect> de <SimilaritySearch> sont spécifiés.
Embeddings/VertexAI/URL or Embeddings/PrivateServiceConnect/GrpcEndpoint element is required. Se produit si ni l'élément <URL> ni l'élément <GrpcEndpoint> dans <Embeddings> ne sont spécifiés.
SimilaritySearch/VertexAI/URL or SimilaritySearch/PrivateServiceConnect/GrpcEndpoint element is required. Se produit si ni l'élément <URL> ni l'élément <GrpcEndpoint> dans <SimilaritySearch> ne sont spécifiés.
The Embeddings/VertexAI/PrivateServiceConnect element is not supported. Use URL instead. Se produit si l'élément <PrivateServiceConnect> est utilisé dans <Embeddings>.
Embeddings URL {url} is invalid. Se produit si l'élément <URL> dans <Embeddings> est vide ou non valide.
The SimilaritySearch URL {url} is invalid. Se produit si l'élément <URL> dans <SimilaritySearch> est vide ou non valide.
The scheme {http-scheme} of Embeddings URL {url} must be one of http, https. Se produit si le schéma http de l'élément <URL> Embeddings n'est pas valide.
The scheme {http-scheme} of SimilaritySearch URL {url} must be one of http, https. Se produit si le schéma http de l'élément <URL> SimilaritySearch n'est pas valide.
The SimilaritySearch /VertexAI/PrivateServiceConnect/GrpcEndpoint {grpc-endpoint} must be in the format "grpc://TARGET_HOST:PORT". Cette erreur se produit si l'élément <GrpcEndpoint> dans <SimilaritySearch> n'est pas au format grpc://TARGET_HOST:PORT.
The scheme {grpc-scheme} of SimilaritySearch /VertexAI/PrivateServiceConnect/GrpcEndpoint {grpc-endpoint} must be "grpc". Se produit si le schéma grpc de l'élément <GrpcEndpoint> de SimilaritySearch n'est pas valide.
SimilaritySearch/Threshold element must not be NaN. Se produit si l'élément <Threshold> dans <SimilaritySearch> est NaN. Infinity et -Infinity sont autorisés.
Invalid DistanceMeasureType {value}. Supported values are DOT_PRODUCT_DISTANCE, COSINE_DISTANCE, SQUARED_L2_DISTANCE and L1_DISTANCE Se produit si l'élément <DistanceMeasureType> dans <SimilaritySearch> ne correspond pas à l'une des quatre valeurs acceptées. La correspondance est exacte. Consultez Paramètres de configuration d'index.
SimilaritySearch/DeployedIndexID element is required. Se produit si l'élément <DeployedIndexID> dans <SimilaritySearch> est vide.
SimilaritySearch/DeployedIndexID element must not contain spaces. Se produit si l'élément <DeployedIndexID> dans <SimilaritySearch> contient des espaces.

Variables de panne

Cette règle définit ces variables lorsqu'elle déclenche une erreur au moment de l'exécution. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.

Variables Lieu Exemple
fault.name="FAULT_NAME" FAULT_NAME est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. fault.name Matches "UnresolvedVariable"
semanticcachelookup.POLICY_NAME.failed POLICY_NAME est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. semanticcachelookup.SC-lookup.failed = true

Exemple de réponse d'erreur

{
  "fault": {
    "faultstring": "SemanticCacheLookup[SC-lookup]: unable to resolve variable [variable_name]",
    "detail": {
      "errorcode": "steps.semanticcachelookup.UnresolvedVariable"
    }
  }
}

Exemple de règle de défaillance

<FaultRule name="SemanticCacheLookup Faults">
    <Step>
        <Name>SCL-CustomSetVariableErrorResponse</Name>
        <Condition>(fault.name = "SetVariableFailed")</Condition>
    </Step>
    <Condition>(semanticcachelookup.failed = true)</Condition>
</FaultRule>

Schémas

Chaque type de règle est défini par un schéma XML (.xsd). Pour référence, des schémas de règles sont disponibles sur GitHub.