Ce document décrit les erreurs que vous pouvez rencontrer lorsque vous utilisez des fonctions d'IA optimisées. Des exemples d'erreurs et de corrections recommandées sont également fournis.
Performances réduites attendues. La fonction d'IA optimisée n'est pas disponible
Description
Cet avertissement indique que la requête est revenue à l'utilisation du LLM. Cela se produit lorsque la fonction optimisée est toujours en cours d'entraînement, n'a jamais été préparée, a échoué au contrôle de validation de la précision d'exécution ou si les colonnes de contenu et d'intégration référencées dans la fonction ai.if() n'appartiennent pas à la même table. Pour les tables plus petites, le modèle proxy peut ne pas se généraliser correctement, et la précision est généralement inférieure à 95 %. Par conséquent, AlloyDB utilise le LLM par défaut.
Exemple de requête à l'origine de l'erreur
EXECUTE positive_reviews_query;
Correction recommandée
- Attendez la fin de l'entraînement de la fonction optimisée.
- Assurez-vous que la requête est correctement préparée à l'aide de l'instruction
PREPARE. - Vérifiez que les colonnes de contenu et d'intégration référencées dans la fonction
ai.if()appartiennent à la même table. - Les fonctions optimisées (aperçu) sont mieux adaptées aux tables plus volumineuses. Vous pouvez également utiliser des fonctions d'IA basées sur des tableaux pour améliorer les performances.
Si vous souhaitez contourner le contrôle de précision d'exécution (par exemple, dans les environnements de développement), définissez
google_ml_integration.runtime_accuracy_checksuroffpour l'ensemble de l'environnement de base de données.ALTER DATABASE DATABASE_NAME SET google_ml_integration.runtime_accuracy_check = off;Remplacez
DATABASE_NAMEpar le nom de votre base de données.
La requête ne traite aucune ligne ou la préparation du modèle échoue
Description
Si la requête ne traite aucune ligne, la principale raison est que les intégrations ne sont pas générées ou que l'ensemble de la colonne d'intégration comporte des valeurs NULL. Cela entraîne l'échec de la préparation de la requête, car elle n'échantillonne aucune ligne comportant des intégrations NULL.
Correction recommandée
- Générez des intégrations pour vos données avant d'utiliser des fonctions optimisées.
- Assurez-vous que la colonne d'intégration ne contient pas de valeurs
NULL. - Les requêtes qui ne diffèrent que par des valeurs constantes dans la clause
WHEREpeuvent toujours utiliser un modèle entraîné existant.
Performances lentes malgré l'utilisation de fonctions d'IA optimisées
Description
Assurez-vous de ne pas dépasser votre quota Gemini Enterprise Agent Platform. Même avec des fonctions d'IA optimisées, le contrôle de justesse d'exécution initial nécessite d'appeler le LLM distant pour un échantillon de lignes. Un quota insuffisant peut entraîner la lenteur ou l'échec de ce contrôle initial.
Correction recommandée
Vérifiez votre quota Agent Platform et demandez une augmentation si nécessaire pour vous assurer que le contrôle de justesse d'exécution initial peut se dérouler sans délai.
ERROR: function ai.if(prompt => text, embedding => vector) does not exist
Description
Si vous transmettez le paramètre model_id avec la colonne d'intégration lorsque vous appelez la fonction ai.if(), AlloyDB n'utilise pas le modèle proxy entraîné et génère une erreur semblable à la suivante :
testdb=# select ai.if('Is the rating positive?' || review, review_embedding, 'gemini-2.5-pro') from restaurant_reviews;
ERROR: function ai.if(text, vector, unknown) does not exist
LINE 1: select ai.if('Is the rating positive?' || review, review_embe...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Correction recommandée
Assurez-vous de ne pas transmettre la valeur model_id lorsque vous appelez la fonction ai.if(). Cela garantit qu'AlloyDB utilise le modèle proxy entraîné pour traiter la requête.