Inist-CNRS / web-services

Web services at Inist-CNRS
https://services.istex.fr
5 stars 0 forks source link

Le classifieur HAL retourne la chaine d'origine dans certains cas #107

Open touv opened 1 month ago

touv commented 1 month ago

https://services.istex.fr/classification-dans-les-domaines-hal/

Il semblerait que sur un lot de résumés, le web service retourne pour quelques cas la valeur d'entrée et non une classification.

touv commented 1 month ago

Le problème demande peut-être à être précisé pour pouvoir le reproduire

parmentf commented 1 month ago

Ce problème ne me semble pas limité au classifieur HAL, même si je ne saurais préciser pour quel autre service web cela arrive aussi, mais c'est un comportement dont se sont déjà plaints les utilisateurs (sans doute pour d'autres services).

Je me demande si cela n'arrive pas simplement quand le script python ne renvoie aucun document correspondant à un id.

cuxac commented 1 month ago

Un exemple de donnée provoquant ce comportement serait apprécié

parmentf commented 1 month ago

Après plusieurs essais, j'ai réussi à reproduire le comportement, en faisant des lots suffisamment gros pour que le service réponde en plus de 50 secondes.

En utilisant curl pour envoyer de gros lots (plus de 100 abstracts), j'ai eu cette erreur:

<html><body><h1>504 Gateway Time-out</h1>
The server didn't respond in time.
</body></html>

Au bout de 50 secondes pile.

En utilisant le script suivant (dérivé du script d'enrichissement généré par lodex):

# load some plugins to activate some statements (URL Connect)
[use]
plugin = basics

[JSONParse]

# Toggle ezs traces (see server stderr log)
[debug]
ezs = true 

# Group values to build a request for the webservice
[expand]
size = 10
path = value

# Uncomment to see each data sent to the webservice
#[expand/debug]

# Send the request to the webservice
[expand/URLConnect]
url = https://astro-ner.services.istex.fr/v1/tagger
timeout = 3600000
noerror = false
retries = 5

[dump]
indent = true

Tout se passe bien. On récupère aussi l'information du temps passé dans URLConnect: environ 13 secondes par requête.

En changeant le paramètre size de expand à 40, tout se passe bien (au moment du test).

En le mettant à 80, le debug me signale que URLConnect fait des retries (3, en général), et finit par renvoyer les abstracts complets.

Voilà le fichier de test: test_astro_value.json

Commande à lancer: cat test_astro_value.json| time npx ezs enrich.ini.