Les workflows LangStudio acceptent les fichiers envoyés par les utilisateurs, les acheminent via des nœuds de traitement et renvoient des fichiers en sortie, sans nécessiter le développement d'une infrastructure de gestion des fichiers. Utilisez des variables de type fichier pour connecter les téléchargements du nœud Start à des nœuds Python ou d'analyse de documents, et renvoyez les fichiers traités depuis le nœud End.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un flux d'application LangStudio comportant au moins un nœud Start et un nœud End
Des droits de lecture et d'écriture sur un bucket OSS (requis pour toutes les opérations de type
File)
Accepter les téléchargements de fichiers dans le nœud Start
Définissez une variable d'entrée de type fichier dans le nœud Start pour accepter les fichiers des utilisateurs au début d'un workflow.

LangStudio prend en charge les types de fichiers suivants pour l'entrée du nœud Start :
Types de documents : PDF, DOCX, PPTX, XLSX, XLS, TXT, MD, CSV, JSONL, HTML et HTM
Types d'images : JPG, JPEG, PNG, BMP et TIFF
Types audio : MP3, WAV et AAC
Types vidéo : MP4, MOV, AVI, MKV, M4V, WMV, FLV, ASF et QT
Une fois la variable de type fichier définie, les utilisateurs peuvent télécharger des fichiers depuis le panneau de conversation via Parameter Configuration. Deux méthodes de téléchargement sont disponibles :
Upload From Local: Téléchargez un fichier directement depuis l'appareil de l'utilisateur.
-
Enter URL: Indiquez une URL pointant vers le fichier. Deux formats d'URL sont acceptés :
OSS URI : Un chemin d'accès à un fichier dans Alibaba Cloud OSS, tel que
oss://bucket-name/path/to/file.pdf.Lien HTTP/HTTPS : Un lien de téléchargement accessible publiquement, tel que
https://example.com/file.docx.

Traiter les fichiers
Le nœud Start collecte le fichier, mais il ne lit ni n'analyse son contenu. Transmettez le fichier à un nœud en aval pour le traiter.
Quelle approche utiliser
| Scénario | Approche recommandée |
|---|---|
| Extraire du texte à partir de formats de document standard (PDF, DOCX, TXT, etc.) pour le traitement par LLM | Nœud Document Parsing |
| Traitement binaire personnalisé, conversion de format ou génération programmatique de nouveaux fichiers | Nœud Python |
Nœud Document Parsing
Acheminez les documents téléchargés vers un nœud Document Parsing pour extraire leur contenu textuel en vue de son utilisation dans les nœuds LLM. Pour plus de détails, consultez la rubrique Document Parsing.
Scénario courant : Un utilisateur télécharge un PDF, le nœud Document Parsing extrait le texte et un nœud LLM répond aux questions en fonction du contenu.
Nœud Python
Dans un nœud Python, référencez une variable de type fichier comme entrée de nœud ou générez un objet File comme sortie de nœud.
File est le type central utilisé par LangStudio pour représenter les fichiers. Importez-le avec from langstudio.types import File.
LangStudio propose cinq méthodes pour construire des objets File.
Construction directe
Utilisez File() pour référencer un fichier existant par son emplacement. Cette méthode est la plus simple et fonctionne pour les fichiers déjà stockés dans OSS ou accessibles via une URL.
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
source_uri |
str |
Oui | L'emplacement du fichier. Accepte une URL HTTP/HTTPS, un URI OSS (oss://) ou un chemin local dans le chemin de montage du conteneur. |
"https://files.example.com/report.pdf" |
download_url |
str |
Non | Un lien HTTP/HTTPS téléchargeable. S'il n'est pas fourni, le système en génère un automatiquement. Pour les URI OSS, une URL signée valide pendant sept jours est générée ; appelez File.get_download_url() pour l'actualiser après expiration. |
"https://oss-cn-beijing.aliyuncs.com/my-bucket/...?Expires=...&OSSAccessKeyId=..." |
file_id |
str |
Non | Un identifiant unique pour le fichier. S'il n'est pas fourni, le système génère un identifiant universel unique (UUID) de 8 chiffres. | "a1b2c3d4" |
file_name |
str |
Non | Le nom du fichier. S'il n'est pas fourni, le système le déduit à partir de source_uri. |
"annual_summary_report.docx" |
file_type |
str |
Non | Le type MIME (Multipurpose Internet Mail Extensions), tel que application/pdf. S'il n'est pas fourni, le système le déduit à partir de l'extension du nom de fichier. |
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" |
from langstudio.types import File
file = File(source_uri="https://example.com/report.pdf")
file = File(source_uri="oss://my-bucket/docs/file.docx")
Construction à partir d'une chaîne
Utilisez File.from_content() pour créer un fichier à partir d'un contenu sous forme de chaîne. Cette méthode convient à la génération de fichiers textuels tels que Markdown, TXT et CSV.
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
content |
str |
Oui | Le contenu de la chaîne à enregistrer. Le contenu est encodé en UTF-8 avant le téléchargement. | "# Generate Report\nThis content is automatically generated by the system." |
file_name |
str |
Oui | Le nom du fichier généré. | "report.md" |
from langstudio.types import File
content = "# Generate Report\nThis content is automatically generated by the system."
file = File.from_content(content=content, file_name="report.md")
Construction à partir d'une séquence d'octets
Utilisez File.from_bytes() pour créer un fichier à partir de données binaires. Cette méthode convient aux formats binaires tels que les fichiers PDF, les images et les documents Office.
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
content |
bytes |
Oui | Les données binaires à enregistrer. | b"%PDF-1.4\n1 0 obj\n<< /Type /Catalog >>\nendobj\n" |
file_name |
str |
Oui | Le nom du fichier généré. | "test.pdf" |
from langstudio.types import File
# pdf_data is a bytes object
file = File.from_bytes(content=pdf_data, file_name="test.pdf")
Construction à partir d'un fichier local
Utilisez File.from_local_file() pour télécharger un fichier depuis le système de fichiers local du conteneur. Cette méthode convient aux fichiers qui existent à un chemin connu dans le conteneur.
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
local_path |
str |
Oui | Le chemin du fichier dans le système de fichiers local. | "/tmp/report.docx" |
file_name |
str |
Non | Le nom du fichier généré. S'il n'est pas fourni, le nom de fichier issu de local_path est utilisé. |
"final_report.docx" |
from langstudio.types import File
# The file already exists at /tmp/output.pptx
file = File.from_local_file(local_path="/tmp/output.pptx", file_name="presentation.pptx")
Construction à partir d'un flux de données
Utilisez File.from_stream() pour créer un fichier à partir d'une source de flux. Cette méthode convient aux fichiers volumineux ou lorsque les données arrivent sous forme de flux réseau, d'objet BytesIO ou d'un autre itérable.
| Paramètre | Type | Obligatoire | Description | Exemple | |||
|---|---|---|---|---|---|---|---|
stream |
`str |
bytes | BinaryIO | Iterator[bytes]` |
Oui |
La source de données. Accepte une chaîne d'URL HTTP/HTTPS, un objet |
|
file_name |
str |
Oui | Le nom du fichier généré. | "downloaded_video.mp4" |
import io
from langstudio.types import File
url = "https://example.com/data.jsonl"
file = File.from_stream(stream=url, file_name="data.jsonl")
Renvoyer une sortie de fichier depuis le nœud End
Utilisez un objet File comme sortie du nœud End pour renvoyer un fichier depuis le workflow. Dans le panneau de conversation, cliquez sur View other outputs pour consulter et télécharger le fichier de sortie.



Configurer les permissions OSS
Toutes les opérations de type File nécessitent des droits de lecture et d'écriture sur un bucket OSS. Configurez les paramètres suivants lors de la création d'un runtime et du déploiement d'un flux d'application :
-
Sélectionnez le chemin d'espace de travail par défaut comme chemin de travail actuel.

-
Pour Instance RAM Role, sélectionnez PAI Default Role. Si vous sélectionnez plutôt Custom Role, accordez l'autorisation
AliyunOSSFullAccessau rôle personnalisé. Sans cette autorisation, LangStudio ne peut pas effectuer d'opérations d'entrée et de sortie de fichiers.Créer un runtime :

Déployer un flux d'application :
