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 de requêtes côté serveur, y compris les fonctionnalités qui ne sont pas encore compatibles. Notez que la plupart de ces fonctionnalités seront disponibles à mesure que les modèles de requêtes côté serveur évolueront. Consultez donc les notes de version pour obtenir les dernières informations.

Bonnes pratiques

La plupart de ces bonnes pratiques sont également décrites 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 la modification.

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

    • Le verrouillage d'un modèle sert de protection contre les modifications involontaires, mais le verrouillage n'empêche pas complètement 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égez l'utilisation du Gemini API

  • Écrivez une validation d'entrée forte pour vos variables d'entrée, ce qui peut vous aider à :

    • Protéger contre l'injection de requêtes.
    • Garantir 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 doivent utiliser un modèle de requête côté serveur.

Fonctionnalités non encore compatibles avec les modèles de requêtes côté serveur

La plupart de ces fonctionnalités seront disponibles à mesure que les modèles de requêtes côté serveur évolueront, consultez donc les notes de version pour obtenir les dernières informations.

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 requêtes côté serveur :

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

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

É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 :

  • Utiliser la spécification de schéma JSON pour les schémas d’entrée et de sortie dans votre préambule.

    • Notez que cette spécification n'est pas non plus compatible avec les requêtes de modèle non serveur. Nous ne sommes actuellement compatibles qu'avec la spécification de schéma OpenAPI.
  • Déclarer une définition de champ avec caractères génériques à l'aide de *.

  • Utiliser @key ou itérer généralement sur les champs d'une entrée d'objet (ce qui est le cas lorsque @key est pertinent).

  • Utiliser @root, ce 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 :

  • Utiliser 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'interface utilisateur 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 de requête côté 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êtes côté serveur ne sont pas compatibles avec les schémas définis 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 directement interagir 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 ).