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.Journaliser des images

- 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

- 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

- 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

- 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

- 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 n’est disponible qu’en Python.
Utilisation
Annotations de type
Initialisation directe
- 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
Types MIME personnalisés avec annotations de type
Types MIME personnalisés avec initialisation directe
Propriétés 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
content à partir d’un chemin de fichier :
content à partir d’octets bruts :
content à partir du texte :
content à partir de données encodées en base64 :