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.
É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 Vous pouvez également utiliser l'élément |
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 ( L'élément <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, <PrivateServiceConnect>
<GrpcEndpoint>grpc://{TARGET_HOST}:10000</GrpcEndpoint>
</PrivateServiceConnect>L'élément
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.
La valeur par défaut est 0,9, ce qui convient à |
<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 Les valeurs valides sont La valeur par défaut est |
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.