Protéger les documents
Téléversez un fichier PDF ou DOCX, exécutez un job de document et téléchargez le PDF caviardé, le texte protégé et les entités.
Un job de document lit un fichier PDF ou DOCX. Il renvoie le PDF caviardé, le texte protégé et les entités. Il s’exécute en arrière-plan au poids du lot.
Flux d’un traitement de document
- Téléversez le fichier :
POST /v2/uploads - Lancez un job de document avec l’ID du téléversement :
POST /v2/jobs - Interrogez le job jusqu’à ce que son statut soit succeeded :
GET /v2/jobs/{id} - Téléchargez les artefacts, puis supprimez le job.
Envoyez les octets du fichier avec application/pdf ou le type de média DOCX. Un document fait au plus 10 Mo.
Téléverser le fichier et lancer le job
UPLOAD=$(curl -s https://api.getshinrai.com/v2/uploads -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/pdf" --data-binary @contract.pdf | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
JOB=$(curl -s https://api.getshinrai.com/v2/jobs -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
-H "Idempotency-Key: contract-4815" \
-d '{"kind": "document", "inputs": [{"kind": "file", "source": {"upload": "'$UPLOAD'"}, "language": "de"}]}' \
| python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')La réponse est 202 avec le job et un en-tête Location. Une nouvelle tentative avec la même Idempotency-Key et le même corps renvoie le même job et n’est pas facturée à nouveau.
Suivre et télécharger les artefacts
curl -s https://api.getshinrai.com/v2/jobs/$JOB -H "Authorization: Bearer $SHINRAI_API_KEY"
curl -s https://api.getshinrai.com/v2/jobs/$JOB/artifacts/protected -H "Authorization: Bearer $SHINRAI_API_KEY" -o contract.redacted.pdf
curl -s https://api.getshinrai.com/v2/jobs/$JOB/artifacts/text -H "Authorization: Bearer $SHINRAI_API_KEY" -o contract.protected.txt
curl -s -X DELETE https://api.getshinrai.com/v2/jobs/$JOB -H "Authorization: Bearer $SHINRAI_API_KEY"Utilisez les URL d’artefacts renvoyées par la réponse d’état. L’accès au traitement et aux artefacts est limité au compte qui l’a créé.
| Artefact | Contenu |
|---|---|
protected | Le PDF caviardé : pages image uniquement à 144 dpi, un cadre noir sur chaque entité protégée, sans couche de texte |
text | Le texte protégé du document |
entities | JSON : les entités avec leurs positions dans le texte extrait |
mapping | JSON : les valeurs d’origine et leurs remplacements, uniquement sur demande |
Le PDF caviardé n’a pas de couche de texte. Prenez le texte protégé dans l’artefact text. Demandez la table de correspondance uniquement si vous devez restaurer des valeurs : elle contient les valeurs d’origine.
Ce que le service conserve
- Le fichier téléversé est supprimé dès que le dernier job qui le lit se termine.
- Un téléversement créé avec
POST /v2/uploads?keep=trueest conservé 24 heures, et chaque job qui le lit prolonge ce délai. - La suppression du job supprime aussi un téléversement conservé dès qu’aucun autre job ne le lit.
- Les résultats sont conservés 24 heures. Supprimez le job pour les effacer plus tôt.
- Les autres comptes ne peuvent pas lire vos jobs : ils reçoivent 404.
Gérer les échecs en toute sécurité
Ne transmettez pas le fichier d’origine si la protection échoue.
| Statut | Signification |
|---|---|
415 | Le fichier n’est ni un PDF ni un DOCX, ou ses octets ne correspondent pas à son type de média. |
413 | Le fichier dépasse 10 000 000 octets. |
402 | Votre solde contient trop peu de records. |
422 | La requête n’est pas valide, par exemple parce que le téléversement a expiré. |
429 | Le stockage des jobs de votre compte est plein, et limit_name indique la limite. Supprimez les jobs terminés. |
429 | La file d’attente des jobs est pleine. Attendez le délai indiqué dans l’en-tête Retry-After. |
503 | Le service de jobs est indisponible, ou son stockage est plein. Réessayez après le délai indiqué dans l’en-tête Retry-After. |
- Un document illisible fait échouer le job. Le job a alors le statut failed et un code d’erreur.
- Réessayez uniquement lorsque l’erreur indique qu’une nouvelle tentative peut réussir, et attendez le délai de l’en-tête Retry-After.
Coût
Un job de document coûte les records de son texte extrait au poids du lot 0,5. Votre solde doit contenir au moins un record au lancement du job.