Appel du classifieur Pascal sans résultat via .ini #2

Closed parmentf opened this issue on 23 Sep 2022 - 14 comments

@parmentf parmentf commented on 23 Sep 2022

Le script enrich-pascal.ini, pourtant identique à enrich-teeft-en.ini à part l'URL du service web à appeler et le chemin du champ enrichi ne fonctionne pas.

Pour l'exécuter: make.

Pire! Son équivalent curl fonctionne: pascal.sh.

@parmentf parmentf add the bug label on 23 Sep 2022

Commet sait-on que ça ne marche pas ? j'ai lancé make

Pardon, je n'ai pas précisé: on récupère la main sans avoir rien reçu dans la sortie standard.
Ni aucun message d'erreur.

et j'obtiens un fichier data/corpus-simple-teeft-en-50.json

make                                                                              ven. 23 sept. 2022 14:12:20
npx ezs -e enrich-teeft-en.ini
[{
    "filename": "/home/thouveni/Tests/giec-wos/data/corpus-simple-teeft-en-50.json",
    "dev": 59,
    "mode": 33204,
    "nlink": 1,
    "uid": 1000,
    "gid": 1000,
    "rdev": 0,
    "blksize": 4096,
    "ino": 22549813,
    "size": 148544,
    "blocks": 312,
    "atimeMs": 1663935143910.4722,
    "mtimeMs": 1663935143938.4714,
    "ctimeMs": 1663935143938.4714,
    "birthtimeMs": 0,
    "atime": "2022-09-23T12:12:23.910Z",
    "mtime": "2022-09-23T12:12:23.938Z",
    "ctime": "2022-09-23T12:12:23.938Z",
    "birthtime": "1970-01-01T00:00:00.000Z"
}]npx ezs -e enrich-pascal.ini
[{
    "filename": "/home/thouveni/Tests/giec-wos/data/corpus-simple-pascal-50.json",
    "dev": 59,
    "mode": 33204,
    "nlink": 1,
    "uid": 1000,
    "gid": 1000,
    "rdev": 0,
    "blksize": 4096,
    "ino": 22549809,
    "size": 221763,
    "blocks": 456,
    "atimeMs": 1663934410349.3677,
    "mtimeMs": 1663935149938.346,
    "ctimeMs": 1663935149938.346,
    "birthtimeMs": 0,
    "atime": "2022-09-23T12:00:10.349Z",
    "mtime": "2022-09-23T12:12:29.938Z",
    "ctime": "2022-09-23T12:12:29.938Z",
    "birthtime": "1970-01-01T00:00:00.000Z"
}]⏎

Oh. Oui. J'étais sur autre chose, pardon derechef :) J'ai confondu avec un de mes tests ce matin.

Le champ ws.pascal contient encore une chaîne de caractères, et pas l'objet que le web service est censé retourner.

Exemple, pour voir le résultat dans la première notice

$ jq < data/corpus-simple-pascal-50.json '.[0].ws.pascal'
"Analysis of the Angstrom-Prescott relationship between normalized values of global radiation and sunshine duration measured during the last 50 years made at five sites with a wide range of climate and aerosol emissions showed few significant differences in atmospheric transmissivity under clear or cloud-covered skies between years when global dimming occurred and years when global brightening was measured, nor in most cases were there any significant changes in the parameters or in their relationships to annual rates of fossil fuel combustion in the surrounding 1 degrees cells. It is concluded that at the sites studied changes in cloud cover rather than anthropogenic aerosols emissions played the major role in determining solar dimming and brightening during the last half century and that there are reasons to suppose that these findings may have wider relevance. ; The cause of solar dimming and brightening at the Earth's surface during the last half century: Evidence from measurements of sunshine duration"

On voit là ce qu'on a envoyé au web service, pas sa réponse, qui devrait se trouver là.

je reçois les stats du fichier générés

Voilà le fichier test-pascal.ini que j'avais fait, et qui, lui, ne renvoie rien (alors qu'il fait un [dump] à la fin):

# Usage: npx ezs -e test-pascal.ini

[use]
# JSONParse URLConnect FILELoad FILESave
plugin = basics
# expand
plugin = analytics

[exchange]
value = [ "corpus-simple-teeft-en-50.json" ]

[JSONParse]

[FILELoad]
location = data

[JSONParse]

# - Pascal

[replace]
path = value
value = fix(_.get(self, "abstract", ""), _.get(self, "title")).join(" ; ")

[URLConnect]
url = https://domains-classifier.services.inist.fr/v1/en/classify
retries = 3
timeout = 3000
noerror = false

[dump]
indent = true

avec un timeout = 60000

j'obtiens

jq < data/corpus-simple-pascal-50.json '.[0].ws.pascal'                    8.4s  ven. 23 sept. 2022 14:30:58
[
  {
    "code": {
      "id": "003",
      "value": "Sciences humaines et sociales"
    },
    "confidence": 0.6422538757324219,
    "rang": 1
  },
  {
    "code": {
      "id": "522",
      "value": "Histoire des sciences et des techniques."
    },
    "confidence": 0.274715393781662,
    "rang": 2
  },
  {
    "code": {
      "id": "5221",
      "value": "Généralités"
    },
    "confidence": 0.9958640336990356,
    "rang": 3
  }
]
 ~/T/giec-wos   *…

Oh ? Le timeout est différent suivant le contexte d'appel ?
Il faut croire que je n'ai pas assez d'expérience avec l'utilisation de nos propres web services: je n'y ai même pas songé (et pourtant c'est parmi les paramètres d'URLConnect).

Merci pour ton temps.

URLConnect coupe le flux de manière silencieuse si le timeout est dépassé...

Oui, ce qui m'a étonné c'est le fait que mon curl fonctionne, mais pas mon .ini.
curl a sans doute un timeout par défaut plus long.

@parmentf parmentf referenced the issue on 23 Sep 2022

L'option --max-time de curl permet de préciser la durée maximale d'une requête (temps de connexion compris). Il n'a pas de valeur par défaut, et donc pas de timeout, en fait.

Merci, je ferme cette issue.

@parmentf parmentf closed this issue on 23 Sep 2022
Labels

Priority
default
Milestone
No milestone
Assignee
No one
2 participants
@parmentf @thouveni