GetVibe propose la génération de médias via une API de tâches asynchrones, en complément de ses API de modèles de texte. Le chemin de requête média n’est pas le même que celui des chat completions OpenAI : soumettez une tâche de génération, recevez un identifiant de tâche, puis récupérez son statut et son résultat. Les modèles d’image, de vidéo et d’audio/voix utilisent des entrées et des unités de facturation différentes. Choisissez donc un modèle dans le catalogue des modèles multimédias plutôt que de supposer qu’un même format de requête fonctionne pour tous les modèles.
Trouvez un modèle et examinez ses exigences
Utilisez le catalogue multimédia et /v1/models?type=image,video,audio pour voir les types de médias disponibles pour votre compte. Vérifiez l’identifiant exact de chaque modèle, les entrées acceptées, les options prises en charge, le format de sortie et l’unité de prix. Un modèle d’image peut facturer selon les paramètres de sortie ; la vidéo peut dépendre de la durée et de la résolution ; les modèles vocaux peuvent facturer selon la longueur du texte, la durée ou une autre unité documentée. Ne comparez pas ces prix comme s’il s’agissait partout de tokens de texte.
gpt-image-2 est l’un des modèles d’image du catalogue. Sa page de modèle et la documentation multimédia répertorient les formats d’image, la résolution et les options de génération/modification pris en charge. Les modèles vidéo ont leurs propres entrées et peuvent prendre plus de temps. Les fonctionnalités vocales varient selon le modèle ; vérifiez la liste multimédia actuelle avant de promettre une opération particulière dans votre interface.
Soumettez une tâche d’image
Conservez la clé sur votre serveur. Voici le format asynchrone documenté pour une requête de génération d’image à partir de texte : le prompt est un champ de premier niveau et les options de génération se trouvent dans opts.
curl https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Une illustration éditoriale épurée d’un bureau de développeur, sans texte",
"opts": {"aspect_ratio":"16:9", "resolution":"1K", "mode":"text-to-image"}
}'Enregistrez le jobId renvoyé avec votre propre utilisateur et votre enregistrement de tâche. Cette requête démarre la génération ; elle ne renvoie pas le contenu de l’image finale directement dans la réponse.
Interrogez le statut ou recevez un webhook
Pour une petite intégration, interrogez le endpoint de la tâche à intervalles modérés et arrêtez-vous lorsque la tâche atteint un état final. Les états comprennent submitting, processing, success, fail et expired. Interroger le endpoint toutes les quelques millisecondes génère du trafic sans accélérer la génération. Pour les traitements par lots en production, configurez le webhook documenté et rendez le callback idempotent afin que les livraisons en double ne créent pas de ressources en double.
curl "https://getvibeapi.com/api/media/jobs/$JOB_ID" \
-H "Authorization: Bearer $GETVIBE_API_KEY"En cas de succès, récupérez les URL des résultats et copiez les médias dans un stockage que vous contrôlez s’ils doivent être conservés à long terme. En cas d’échec, conservez l’identifiant de tâche pour le support et affichez une erreur utile. Ne réessayez pas chaque échec : une option invalide échouera à nouveau, et une génération en double peut entraîner une facturation supplémentaire.
La vidéo et la voix nécessitent une gestion spécifique au modèle
Pour la vidéo, examinez la durée, la taille d’image, les exigences de conditionnement par image et les options prises en charge par le modèle avant de soumettre la requête. Validez les URL des sources distantes et vérifiez qu’elles sont accessibles. Affichez la progression de la tâche, car le rendu peut prendre plus de temps que la génération de texte. Utilisez le flux webhook documenté pour les traitements par lots plutôt que de laisser une page interactive ouverte.
Pour la voix et l’audio, distinguez la génération vocale de la transcription ou de la compréhension audio. Ces opérations utilisent des modalités d’entrée et de sortie différentes. Adaptez le endpoint et la charge utile à la fiche du modèle, définissez les limites de texte ou de durée lorsqu’elles sont proposées et stockez l’audio renvoyé dans un format accepté par votre lecteur. Ne promettez pas que tous les modèles multimédias peuvent produire de la voix.
Budget et comportement en cas d’échec
Vérifiez le prix actuel du modèle multimédia avant un traitement par lots et effectuez l’estimation dans son unité de facturation réelle. Le prix d’un modèle de texte ne permet pas d’estimer la génération d’images ou de vidéos. Exécutez un échantillon avec la résolution, la durée ou les paramètres vocaux exacts prévus pour la production. Enregistrez l’identifiant de tâche, le modèle, les options, la durée, l’état final et l’utilisation facturée. Définissez une taille maximale de lot et une revue manuelle pour les sorties coûteuses ou destinées aux clients.
Ne placez pas les prompts et les URL de médias dans les journaux généraux, sauf si votre politique de confidentialité l’autorise. Masquez les identifiants, imposez des limites de téléversement et évitez d’exposer les ressources générées privées sous forme d’URL publiques. Pour les modifications, conservez séparément la ressource d’origine jusqu’à la validation du résultat.
Liste de contrôle avant la mise en production
- Confirmez l’identifiant exact du modèle, la modalité et les exigences d’entrée.
- Conservez la clé API sur le serveur.
- Utilisez le prompt de premier niveau documenté et les options spécifiques au modèle.
- Enregistrez les identifiants de tâche et rendez la gestion des interrogations/webhooks idempotente.
- Définissez le comportement en cas d’échec et d’expiration.
- Établissez le budget selon l’unité de facturation réelle du modèle.
- Copiez les sorties réussies dans un stockage si elles doivent être conservées.
Lisez la documentation sur la génération de médias, les webhooks multimédias et les modèles multimédias avant la mise en production. La liste publique des modèles et les options prises en charge peuvent changer ; ces pages et le catalogue en temps réel font référence pour votre compte.
Gérez les ressources sources en toute sécurité
Pour la transformation image vers image ou la vidéo conditionnée par une image, utilisez la méthode de téléversement ou d’URL documentée pour ce modèle. Vérifiez qu’une URL source est accessible publiquement par le service de génération et qu’elle ne nécessite pas la session de votre navigateur connecté. Évitez d’intégrer des URL signées à longue durée de validité dans des prompts susceptibles d’être copiés dans les journaux. Définissez vos propres contrôles de taille de téléversement et de type de contenu avant d’accepter les fichiers des utilisateurs.
Lors d’une génération à partir d’une image fournie par un utilisateur, conservez le fichier d’origine et suivez les exigences en matière de consentement et de conservation. Un résultat généré peut contenir des détails reconnaissables de la source ; appliquez les règles de confidentialité et de modération de votre produit avant de le partager.
Concevez l’interface autour des états de la tâche
Affichez un état submitted après le renvoi de l’identifiant de tâche, un état processing pendant que le service travaille et des états finaux clairs pour success, fail ou expired. Permettez aux utilisateurs de quitter l’interface en toute sécurité si la tâche continue de manière asynchrone, puis restaurez le statut en consultant votre propre enregistrement de tâche. Empêchez un double-clic de soumettre un travail en double en désactivant le contrôle de soumission ou en utilisant votre propre mécanisme d’idempotence.
Pour un traitement par lots, affichez séparément les nombres d’éléments terminés, échoués et en attente. Un seul indicateur de chargement global ne permet pas de savoir si une longue tâche vidéo fonctionne correctement ou est bloquée. Utilisez une temporisation d’interrogation avec backoff borné et passez au chemin webhook documenté lorsque le lot prend de l’ampleur.
Stockez les résultats selon un plan de conservation
Ne considérez pas une URL de résultat renvoyée comme un stockage permanent, sauf si la documentation multimédia l’indique. Téléchargez la sortie réussie dans votre compartiment de stockage lorsqu’un accès à long terme est requis, puis enregistrez le nouvel identifiant d’objet dans votre base de données. Appliquez un contrôle d’accès aux fichiers générés et définissez leur comportement de suppression lorsqu’un utilisateur supprime un projet.
Enregistrez l’identifiant du modèle, les options, la version du prompt, l’identifiant de tâche, l’objet résultat, le statut final et l’utilisation facturée. Ainsi, vous pourrez répondre à une demande ultérieure du support sans journaliser l’intégralité du prompt sensible ni exposer l’URL du média à toute l’équipe.
