Aperçu
- Python
- TypeScript
Les exemples de ce guide utilisent des annotations. Nous recommandons d’utiliser des annotations, car c’est la manière la plus directe de commencer à journaliser vos médias. Pour des configurations plus avancées, voir la section Content API.Pour journaliser des médias dans Weave, ajoutez des annotations de type comme
Annotated[bytes, Content] ou Annotated[str, Content] comme types d’entrée ou de retour dans vos ops. Si vous annotez des arguments de chemin avec Annotated[str, Content], Weave ouvre, détecte et affiche automatiquement le média dans votre trace.Pour afficher des médias déjà stockés dans votre propre bucket cloud sans téléverser les octets vers Weave, voir Référencer des médias dans votre propre bucket (BYOB).
Journaliser des images
Les exemples suivants montrent comment générer et journaliser des images dans l’interface utilisateur de Weave.
- Python
- TypeScript
Journalisez des images en annotant les fonctions avec des types Weave journalise l’image et renvoie un lien vers la trace où vous pouvez consulter l’image.Weave journalise l’image redimensionnée et renvoie un lien vers la trace dans laquelle vous pouvez afficher l’image.
Annotated[bytes, Content] ou les chemins de fichier avec Annotated[str, Content].L’exemple suivant crée une image simple, puis la journalise dans Weave à l’aide de l’annotation Content :Exemple avancé : générer une image avec DALL-E et la journaliser dans Weave
L’exemple suivant génère une image de chat et la journalise dans Weave :Exemple avancé : redimensionner les grandes images avant de les journaliser
Redimensionnez les images avant de les journaliser afin de réduire le coût de rendu de l’interface utilisateur et l’impact sur le stockage. Utilisezpostprocess_output dans votre @weave.op pour redimensionner une image.Journaliser une vidéo
Les exemples suivants montrent comment générer des vidéos et les journaliser dans l’interface utilisateur de Weave.
- Python
- TypeScript
Journalisez des vidéos en annotant les fonctions avec le type Weave journalise la vidéo et renvoie un lien vers la trace, où vous pouvez la consulter.Weave journalise à la fois la vidéo d’entrée et l’analyse du modèle, afin que vous puissiez les examiner ensemble dans la trace.
Annotated[bytes, Content]. Weave gère automatiquement les vidéos mp4. Voici un exemple minimal :Exemple avancé : journaliser une vidéo dans un projet d’analyse vidéo
L’exemple suivant montre comment journaliser une vidéo dans un projet de compréhension vidéo :Journaliser des documents
Les exemples suivants génèrent des documents et les journalisent dans l’interface utilisateur de Weave.
- Python
- TypeScript
Journalisez des documents en annotant les fonctions avec des types Weave journalise à la fois le PDF source et la réponse générée, afin que vous puissiez auditer le document à l’origine de chaque réponse.
Annotated[bytes, Content], ou en spécifiant le type de document avec Annotated[str, Content[Literal['text']]].Weave gère automatiquement les types de fichiers pdf, csv, md, text, json et xml. Vous pouvez également journaliser des fichiers en utilisant leurs chemins avec Annotated[str, Content].L’exemple suivant montre comment stocker des copies des fichiers PDF et CSV en entrée, puis stocker le contenu des fichiers renvoyé par la fonction :Exemple avancé : journaliser des documents dans un système RAG
Cet exemple montre comment journaliser des documents dans un système de génération augmentée par récupération (RAG) :Journaliser l’audio
Les exemples suivants montrent comment journaliser de l’audio vers Weave.
- Python
- TypeScript
Journalisez l’audio dans Weave en annotant les fonctions avec des types Cet audio est journalisé dans Weave et automatiquement affiché dans l’interface utilisateur, accompagné d’un lecteur audio. Dans ce lecteur, vous pouvez afficher et télécharger la forme d’onde audio brute.
L’exemple suivant montre comment journaliser de l’audio à l’aide d’une réponse en streaming de l’API OpenAI :
Annotated[bytes, Content], ou en spécifiant le type audio avec Annotated[str, Content[Literal['mp3']]].Weave gère automatiquement les types de fichiers mp3, wav, flac, ogg et m4a. Vous pouvez également journaliser à partir de chemins de fichiers avec Annotated[str, Content].Le code suivant génère une onde sinusoïdale, l’enregistre, puis journalise l’audio dans Weave :Exemple avancé : générer et journaliser de l’audio généré par l’IA
Cet exemple génère et journalise de l’audio généré par l’IA à l’aide de l’annotationContent :
Journaliser du HTML
Les exemples suivants montrent comment générer et journaliser du HTML dans l’interface utilisateur de Weave.
- Python
- TypeScript
Journalisez du HTML interactif en annotant les fonctions avec
Annotated[bytes, Content[Literal['html']]].L’exemple suivant crée une page HTML minimale et la journalise dans Weave :Exemple avancé : générer des pages HTML autonomes avec Serverless Inference et les journaliser dans Weave
Cet exemple génère des pages HTML autonomes avec Serverless Inference et les journalise dans Weave :file_name.html dans le tableau pour l’ouvrir en plein écran. Vous pouvez également télécharger le fichier .html brut.
Contents API
La Content API gère les objets multimédias dans Weave. Utilisez-la lorsque vous avez besoin de plus de contrôle que ne le permettent les exemples précédents basés sur des annotations. Par exemple, lorsque vous souhaitez importer du contenu à partir de données base64, de tampons d’octets personnalisés ou de texte, ou lorsque vous devez joindre des métadonnées personnalisées. Elle vous permet d’importer du contenu dans Weave sous forme de données base64, de chemins de fichiers, d’octets bruts ou de texte.La Content API n’est disponible qu’en Python.
Utilisation
Vous pouvez utiliser la Content API de deux principales façons : les annotations de type et l’initialisation directe. Les annotations de type détectent automatiquement le constructeur approprié, tandis que l’initialisation directe offre un contrôle plus fin et vous permet de tirer parti des fonctionnalités de la Content API disponibles à l’exécution dans votre code.Annotations de type
L’API Content de Weave est conçue pour être utilisée principalement via des annotations de type, qui indiquent à Weave que les entrées et sorties tracées doivent être traitées et stockées sous forme de blobs de contenu.Initialisation directe
Pour profiter de fonctionnalités telles que les suivantes :- Ouvrir un fichier avec l’application par défaut (comme un lecteur PDF).
- Sérialiser le modèle en JSON pour le téléverser vers votre propre stockage de blobs (comme S3).
- Transmettre des métadonnées personnalisées à associer au blob
Content(comme le modèle utilisé pour le générer).
Content.from_path- Créer à partir d’un chemin de fichier.Content.from_bytes- Créer à partir d’octets bruts.Content.from_text- Créer à partir d’une chaîne de texte.Content.from_base64- Créer à partir de données encodées en base64.
Types MIME personnalisés
Weave peut détecter la plupart des types MIME binaires, mais les types MIME personnalisés et les documents texte comme le Markdown peuvent ne pas être détectés automatiquement. Vous devrez alors spécifier manuellement le type MIME ou l’extension de votre fichier.Types MIME personnalisés avec annotations de type
Types MIME personnalisés avec initialisation directe
Propriétés de Content
Pour consulter la liste complète des attributs et des méthodes de la classe, consultez la documentation de référence de Content.Attributs
Méthodes utilitaires
save(dest: str | Path) -> None: Enregistrer le contenu dans un fichier.open() -> bool: Ouvrir le fichier avec l’application par défaut du système (nécessite que le contenu ait déjà été enregistré ou chargé depuis un chemin).as_string() -> str: Afficher les données sous forme de chaîne de caractères (les octets sont décodés à l’aide de l’attribut d’encodage).
Méthodes d’initialisation
Créez l’objetcontent à partir d’un chemin de fichier :
content à partir d’octets bruts :
content à partir du texte :
content à partir de données encodées en base64 :