Extraire les données d'une facture en JSON avec un LLM, en rétention zéro des données
Un agent transforme le texte d'une facture en JSON structuré et vérifie que les totaux concordent. L'exécution ne conserve rien.
- Fichiers
- Rétention zéro des données
- Plafond de budget
Regardez une vraie exécution
Une vraie exécution du 7 oct. 2026, rejouée. Modèle : openai/gpt-6-luna.
- En file d'attentebudget de $0.03 réservé
- MicroVMmicroVM ready
- MicroVMworker started · shell off · web off
- Fichier
read invoice.txt - MicroVMmicroVM destroyed
- Réussie2 appels au modèle, 2,304 jetonsSortie enregistrée (en anglais)
{ "vendor": "Fjord Supplies AS", "invoice_number": "FS-2026-0417", "invoice_date": "2026-09-30", "due_date": "2026-10-30", "currency": "EUR", "line_items": [ { "description": "Organic flour 25 kg", "quantity": 8, "unit_price": 31.5, "amount": 252 }, { "description": "Sunflower oil 10 l", "quantity": 5, "unit_price": 24, "amount": 120 }, { "description": "Delivery (pallet)", "quantity": 1, "unit_price": 45, "amount": 45 } ], "subtotal": 417, "tax": 104.25, "total": 531.25, "checks": { "line_items_sum_matches_subtotal": true, "subtotal_plus_tax_matches_total": false, "notes": "Subtotal plus VAT is 521.25, which is 10.00 less than the printed total of 531.25." } } - Worker détruit$0.003496 facturé, $0.026504 libéré
La rétention zéro des données était activée pour cette exécution.
Lancez-le vous-même
Ouvrez l'exemple dans le playground avec toute la requête déjà remplie. Il s'exécute sur votre propre compte, dans le budget indiqué, sur les mêmes systèmes d'exemple en lecture seule.
Budget pour cet exemple : $0.03
Fonctionnement
Les factures contiennent des noms, des adresses et des coordonnées bancaires : cette exécution utilise donc la rétention zéro des données. L'agent renvoie fournisseur, numéro, dates, lignes et totaux en JSON, et signale la facture quand l'arithmétique ne correspond pas. Pour les documents scannés, lancez d'abord une OCR et transmettez le texte.
Ce que l'agent peut et ne peut pas faire
Les permissions font partie de la requête. Tout ce qui n'est pas listé ici n'est pas disponible pour l'exécution.
| Paramètre | Autorisé |
|---|---|
| Connexions | Aucune |
| Web | Désactivé |
| Shell | Désactivé |
| Fichiers | invoice.txt (lecture seule) |
| Rétention zéro des données | Activée : aucune trace n'est enregistrée et la sortie n'est renvoyée qu'une fois |
| Budget | $0.03, un plafond strict |
| Délai | 60 secondes |
Les identifiants n'entrent jamais dans la machine : un broker les ajoute à chaque appel et impose les méthodes ci-dessus.
Le code
Voici la requête exacte envoyée par l'exemple. Définissez EPHEMERAL_API_KEY avec une clé de membre de votre organisation.
curl -X POST $EPHEMERAL_URL/v1/runs \
-H "Authorization: Bearer $EPHEMERAL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @request.jsonFichiers de la requête
Transmis en ligne, rien n'est donc importé au préalable. L'agent voit chacun comme un fichier en lecture seule.
invoice.txt
INVOICE
Fjord Supplies AS
Storgata 12, 0155 Oslo, Norway
VAT no: NO 123 456 789 MVA
Invoice number: FS-2026-0417
Invoice date: 2026-09-30
Due date: 2026-10-30
Bill to: Example Bakery Ltd, 5 High Street, London
Description Qty Unit price (EUR) Amount (EUR)
Organic flour 25 kg 8 31.50 252.00
Sunflower oil 10 l 5 24.00 120.00
Delivery (pallet) 1 45.00 45.00
Subtotal 417.00
VAT 25% 104.25
Total due 531.25
Payment: bank transfer, IBAN NO93 8601 1117 947, reference FS-2026-0417
Corps complet de la requête request.json
Le même corps, avec les fichiers en ligne.
{
"prompt": "Extract the invoice in invoice.txt. Reply with one JSON object and nothing else: {\"vendor\": string, \"invoice_number\": string, \"invoice_date\": \"YYYY-MM-DD\", \"due_date\": \"YYYY-MM-DD\", \"currency\": string, \"line_items\": [{\"description\": string, \"quantity\": number, \"unit_price\": number, \"amount\": number}], \"subtotal\": number, \"tax\": number, \"total\": number, \"checks\": {\"line_items_sum_matches_subtotal\": boolean, \"subtotal_plus_tax_matches_total\": boolean, \"notes\": string}}. Copy numbers exactly as printed, then do the arithmetic for the checks. Use null for any field the document does not show.",
"files": [
{
"path": "invoice.txt",
"content": "INVOICE\n\nFjord Supplies AS\nStorgata 12, 0155 Oslo, Norway\nVAT no: NO 123 456 789 MVA\n\nInvoice number: FS-2026-0417\nInvoice date: 2026-09-30\nDue date: 2026-10-30\nBill to: Example Bakery Ltd, 5 High Street, London\n\nDescription Qty Unit price (EUR) Amount (EUR)\nOrganic flour 25 kg 8 31.50 252.00\nSunflower oil 10 l 5 24.00 120.00\nDelivery (pallet) 1 45.00 45.00\n\nSubtotal 417.00\nVAT 25% 104.25\nTotal due 531.25\n\nPayment: bank transfer, IBAN NO93 8601 1117 947, reference FS-2026-0417\n"
}
],
"shell": false,
"timeout_seconds": 60,
"max_cost_micros": 30000,
"zero_data_retention": true
}