Bonnes pratiques et points à prendre en compte pour les modèles


Cette page décrit certaines bonnes pratiques et considérations concernant les modèles d'invite de serveur, y compris les fonctionnalités qui ne sont pas encore prises en charge. Notez que la plupart de ces fonctionnalités seront disponibles à mesure que les modèles de prompts côté serveur évolueront. Consultez les notes de version pour en savoir plus.

Bonnes pratiques

Bon nombre de ces bonnes pratiques sont également détaillées dans Gérer vos modèles.

Gérer les versions de vos modèles

Protéger votre modèle

  • Évitez de modifier les modèles utilisés en production, sauf si vous avez testé minutieusement les modifications.

  • Verrouillez votre modèle avant de passer en production.

    • Le verrouillage d'un modèle permet de le protéger contre les modifications involontaires, mais ne bloque pas entièrement la modification. Un membre du projet disposant des autorisations appropriées peut toujours déverrouiller un modèle pour le modifier.

    • Nous vous recommandons de verrouiller les modèles qui sont activement utilisés par le code, en particulier le code de production.

Protéger l'utilisation de Gemini API

  • Écrivez une validation des entrées efficace pour vos variables d'entrée. Cela peut vous aider à :

    • Peut aider à se protéger contre l'injection de prompt.
    • Cela peut vous aider à vous assurer que les requêtes aboutissent et que les réponses sont celles attendues.
  • Appliquez le mode modèle uniquement à votre projet Firebase afin que toutes les requêtes Gemini API via Firebase AI Logic utilisent un modèle de prompt côté serveur.

Fonctionnalités non encore compatibles avec les modèles d'invite de serveur

De nombreuses fonctionnalités seront disponibles à mesure que les modèles de prompts côté serveur évolueront. Consultez les notes de version pour en savoir plus.

Fonctionnalités de Firebase AI Logic non encore compatibles avec les modèles

Les fonctionnalités standards suivantes de Firebase AI Logic ne sont pas encore compatibles avec les modèles de prompts côté serveur :

  • Streaming bidirectionnel (Gemini Live API)
  • Inférence hybride ou sur l'appareil
  • Limiter la sortie à une liste d'énums

Notez également que si vous utilisez AI Monitoring dans la console Firebase, l'ID du modèle n'est pas encore renseigné dans les enregistrements.

Éléments courants de Dotprompt non encore compatibles avec les modèles

Les modèles de requêtes côté serveur seront probablement bientôt compatibles avec les éléments courants suivants de Dotprompt :

  • Utilisez la spécification du schéma JSON pour les schémas d'entrée et de sortie dans votre frontmatter.

    • Notez que cette spécification n'est pas non plus acceptée dans les demandes de modèles non serveur. Nous n'acceptons actuellement que la spécification de schéma OpenAPI.
  • Déclaration d'une définition de champ avec caractères génériques à l'aide de *.

  • Utilisation de @key ou itération générale sur les champs d'une entrée d'objet (cas où @key est pertinent).

  • Utilisez @root, qui vous permet de référencer le contexte de la variable racine, quel que soit le this actuel.

Les modèles de requêtes côté serveur ne seront probablement pas compatibles avec les éléments courants suivants de Dotprompt :

  • en utilisant des partiels, qui sont des extraits de modèle réutilisables pouvant être inclus dans d'autres modèles ;

Autres points à noter

  • Par défaut, lorsque vous utilisez l'UI guidée dans la console Firebase, nous provisionnons le modèle dans toutes les régions disponibles pour Firebase AI Logic. Si vous utilisez Vertex AI Gemini API et que votre cas d'utilisation nécessite des restrictions basées sur la localisation, vous pouvez spécifier l'emplacement de votre modèle à l'aide de l'API REST.

  • Si vous souhaitez fournir un modèle d'invite de serveur sous forme de fichier (au lieu d'utiliser l'interface utilisateur guidée de la console Firebase), vous pouvez utiliser l'API REST. Notez que les modèles de requête serveur ne sont pas compatibles avec le schéma défini dans le code de l'application et transmis au modèle.

  • Même si le modèle se trouve sur le serveur, il ne peut pas interagir directement avec les autres ressources côté serveur de votre projet Firebase (comme une base de données), à l'exception des URL Cloud Storage for Firebase (qui peuvent être fournies en tant que variables d'entrée).