#!/usr/bin/env python3
#
# Batterie de test les webservices nlptools
#
# -*- coding: utf-8 -*-
# usage :
# python3 run_test_NLPtools_EZ.py
#
"""
@author: stephane schneider
"""
import requests
outputs=['doc', 'json']
languages=['en','fr']
# dev
# uri="http://nlptools-02.tdmservices.intra.inist.fr"
# prod
uri_prod="https://nlp-tools-1.services.inist.fr"
#"http://vptdmservices.intra.inist.fr:35268/"
uri_dev="http://nlptools-02.tdmservices.intra.inist.fr"
#changer la valeur de uri pour pointer vers la dev ou la prod
uri=uri_dev
# parameter
headers = {'content-type': 'application/octet-stream'}
query= {"indent": "true"}
# data :
# -- fonctionne pas
# doc = "../data/data.json"
# test_files = { 'file': open(doc, 'rb')}
# response = requests.post(url , params = query, files = test_files , stream=True, headers=headers)
#{stemmer,termMatcher,ner,NPchunker,POStagger,gazetteer,NPchunkerDP,lefff_tagger}
for language in languages:
if language == "en":
engines=["postagger", "stemmer", "npchunker", "npchunkerdp", "termmatcher", "ner"]
doc="""[
{"id":"PhnlUo_d6LoJPLN3YUjh5qBLc","value":"Non-local effects by homogenization or 3D–1D dimension reduction in elastic materials reinforced by stiff fibers.We first consider an elastic thin heterogeneous cylinder of radius of order ε: the interior of the cylinder is occupied by a stiff material (fiber) that is surrounded by a soft material (matrix). By assuming that the elasticity tensor of the fiber does not scale with ε and that of the matrix scales with ε2, we prove that the one dimensional model is a nonlocal system.We then consider a reference configuration domain filled out by periodically distributed rods similar to those described above. We prove that the homogenized model is a second order nonlocal problem.In particular, we show that the homogenization problem is directly connected to the 3D–1D dimensional reduction problem."}
]"""
else:
engines=["postagger", "stemmer"]
doc="""[
{"id":"xBKeVishRTsAqsdsqJn5YWo0HpuD","value":"Le déplacement chimique des carbones en phase gazeuse et en fonction de la concentration dans dix-neuf solvants dans le but de séparer les différents termes de constante dus aux interactions"}
]"""
for engine in engines:
for output in outputs:
url ="{}/v1/{}/{}/analyze".format(uri, language, engine)
query['output'] = output
response = requests.post(url , params = query, data = doc.encode('utf-8'), stream=True, headers=headers)
print("\n------------ {} ({} - {}) :".format(engine,output,language ))
print(url)
print("REQUEST STATUS : {}".format(response.status_code))
print("HEADERS : {}\n".format(response.headers))
if response.status_code == 200:
print(response.text)
else:
print("ERROR : nothing found !")