Calculs sur fichier corpus compressé
3.2K
Calculs divers sur un fichier corpus compressé.
Comme ces services s'appliquent à un corpus entier, la réponse finale n'est pas
donnée immédiatement après l'appel.
Au contraire, un service renverra
une réponse JSON contenant un champ value donnant l'identifiant du traitement
en cours.
Et comme on lui passe aussi l'URL d'un webhook, cela lui permet, une fois le
traitement terminé, de signaler qu'on peut dès lors utiliser le service de
récupération (les routes qui commencent par /v1/retrieve).
Exemple: traitement d'un corpus de textes en anglais
On crée une archive .tar.gz de fichiers .json.
Si on a un répertoire corpus contenant ces fichiers .json:
corpus
├── W2BVWkiVT.json
├── W2CeZqyNR.json
├── W77S4YQqx.json
├── W8kkWKySy.json
├── WcKPMhj3p.json
├── WG5aHJqba.json
├── Wh3itHprz.json
├── WhW6tZ6NH.json
├── WjS3eZyG4.json
├── Wk6YCLbzZ.json
├── WmiHPaEdf.json
├── WmJYZipzE.json
├── Wn8KqZXeX.json
├── WPpTXDTJB.json
├── WpRjkUwwB.json
├── WtCWN5q5Y.json
├── WtJ4NNWhq.json
├── WTxTnPGxt.json
├── WwzTseBX6.json
├── WXer3K9QE.json
├── Wymfn7YTm.json
└── WzXkqs4zt.json
Chaque fichier .json est un objet JSON, sur une seule ligne, contenant deux champs:
id: le nom du fichiervalue: le texte à traiter.Exemple pour corpus/W2BVWkiVT.json:
{"id":"W2BVWkiVT.json","value":" Modeling Slab Temperature: A Reevaluation of the Thermal Parameter . [...]"}
La commande Linux suivante crée le fichier corpus.tar.gz conforme à ce qui est
attendu par le service web.
tar czf corpus.tar.gz corpus
Ici, il faut donner un webhook pour connaître l'instant où on peut (ou non) récupérer le résultat.
curl -X 'POST' \
'http://localhost:31976/v1/en?indent=true&nb=10' \
-H 'accept: application/json' \
-H 'X-Webhook-Success: https://webhook.site/2caab8b5-fc96-4d7a-bb94-bdda20977830' \
-H 'X-Webhook-Failure: https://webhook.site/2caab8b5-fc96-4d7a-bb94-bdda20977830' \
-H 'Content-Type: application/x-gzip' \
--data-binary '@corpus.tar.gz'
L'appel précédent renvoie une réponse du type:
[{
"id": "termsuite-en",
"value": "qiCVLyh5p"
}]
Et le serveur du webhook recevra, une fois le traitement terminé, un JSON
contenant un champ identifier (la même valeur que value dans la réponse au
curl), et un champ state qui devrait être ready.
Ici c'est qiCVLyh5p.
Enfin, on peut demander la réponse via
/v1/retrieve-csv, en n'oubliant
d'adapter value:
curl -X 'POST' \
'http://localhost:31976/v1/retrieve-csv' \
-H 'accept: text/csv' \
-H 'Content-Type: text/csv' \
-d '[
{
"value": "qiCVLyh5p"
}
]'
qui donnera par exemple ce résultat
"key","freq"
"n: sediment","10"
"nn: proto-paratethys sea","9"
"a: glacial","7"
"n: mmes","7"
"a: tropical","7"
"n: precipitation","7"
"n: genus","7"
"n: obliquiloculata","7"
"n: telescopus","6"
"nn: clay mineral","6"
Content type
Image
Digest
sha256:c2151fa45…
Size
415.2 MB
Last updated
2 months ago
docker pull cnrsinist/ws-data-computer:2.19.6