ShinrAIHébergé sur STACKIT

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.

Jobs de document de l’API PII native v2

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

  1. Téléversez le fichier : POST /v2/uploads
  2. Lancez un job de document avec l’ID du téléversement : POST /v2/jobs
  3. Interrogez le job jusqu’à ce que son statut soit succeeded : GET /v2/jobs/{id}
  4. Téléchargez les artefacts, puis supprimez le job.
Le type de contenu est déterminant

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éé.

ArtefactContenu
protectedLe PDF caviardé : pages image uniquement à 144 dpi, un cadre noir sur chaque entité protégée, sans couche de texte
textLe texte protégé du document
entitiesJSON : les entités avec leurs positions dans le texte extrait
mappingJSON : 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=true est 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.

StatutSignification
415Le fichier n’est ni un PDF ni un DOCX, ou ses octets ne correspondent pas à son type de média.
413Le fichier dépasse 10 000 000 octets.
402Votre solde contient trop peu de records.
422La requête n’est pas valide, par exemple parce que le téléversement a expiré.
429Le stockage des jobs de votre compte est plein, et limit_name indique la limite. Supprimez les jobs terminés.
429La file d’attente des jobs est pleine. Attendez le délai indiqué dans l’en-tête Retry-After.
503Le 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.

Essayer l’exemple de document → · Tous les types de jobs →