--- license: apache-2.0 title: ngt-ai-platform sdk: docker colorFrom: blue colorTo: purple pinned: false --- # NGT AI Platform La piattaforma si propone di esporre i seguenti moduli: 1. binary classification di un testo fornito in input 2. image classification di una immagine fornita in input (Classi : Pneumonia, No_Pneumonia, Tubercolosi, No_Tubercolosi) 3. multilabel classification di un testo fornito in input (Classi: alt.atheism, comp.graphics, comp.os.ms-windows.misc, comp.sys.ibm.pc.hardware, comp.sys.mac.hardware, comp.windows.x, misc.forsale, rec.autos, rec.motorcycles, rec.sport.baseball, rec.sport.hockey, sci.crypt, sci.electronics, sci.med, sci.space, soc.religion.christian, talk.politics.guns, talk.politics.mideast, talk.politics.misc, talk.religion.misc) ## Required Prima di procedere è necessario installare anaconda utilizzando la seguente [guida](https://docs.anaconda.com/free/anaconda/install/linux/) La lemmatizzazione del testo viene eseguita con la libreria [spacy](https://spacy.io/usage). Procedere con i seguenti passaggi ```bash pip install -U pip setuptools wheel pip install -U spacy python -m spacy download it_core_news_lg ``` Fondamentale installare anche la libreria tensorflow ```bash pip install tensorflow ``` ## Run Locally Clona il progetto ```bash git clone git@github.com:gaeparente/ngt-ai-platform.git ``` Installa il micro-framework Flask ```bash python -m pip install flask ``` Installa libreria CORS di Flask ```bash pip install flask_cors ``` Posizionati nella directory del file app.py ```bash cd ngt-ai-platform/ ``` Avvia il server ```bash flask run ``` I moduli saranno quindi raggiungibili: 1. binary classification all'indirizzo http://127.0.0.1:5000/binary-classification 2. image classification all'indirizzo http://127.0.0.1:5000/image-classification 3. multilabel classification all'indirizzo http://127.0.0.1:5000/multi-classification ## Usage/Examples Binary classification Effettuare una chiamata POST all'indirizzo indicato in precedenza. Il body dovrà essere in formato form-data con le seguenti property: 1. text (required) -> contenente la sentence per cui si richiede la classificazione 2. model (optional) -> contenente il file del modello (.keras o .h5) 3. token (optional) -> contenente il file del tokenizer (.json) La risposta sarà quindi ```json { "lemma": "che posto ragazzo ! uno cucina ricercare in piccolo cortile di altro tempo . bello , buone , bravissimo . prenotare con largo anticipo .", "percent": "99.95895028114319", "sentiment": "POSITIVE" } ``` ## Usage/Examples Image Classification Effettuare una chiamata POST all'indirizzo indicato in precedenza. Il body dovrà essere in formato form-data con le seguenti property: 1. image (required) -> contenente il file per cui si richiede la classificazione 2. model (optional) -> contenente il file del modello (.keras o .h5) La risposta sarà quindi ```json [ { "classe": "Tubercolosi", "percent": "0.02414761" }, { "classe": "No_Tubercolosi", "percent": "0.99304398" }, { "classe": "Pneumonia", "percent": "0.00155318" }, { "classe": "No_Pneumonia", "percent": "0.00484183" } ] ``` ## Usage/Examples Multilabel classification Effettuare una chiamata POST all'indirizzo indicato in precedenza. Il body dovrà essere in formato form-data con le seguenti property: 1. text (required) -> contenente la sentence per cui si richiede la classificazione 2. model (optional) -> contenente il file del modello (.keras o .h5) 3. token (optional) -> contenente il file del tokenizer (.json) La risposta sarà quindi ```json [ { "classe": "alt.atheism", "percent": "20.58875114" }, { "classe": "comp.graphics", "percent": "5.57006039" }, { "classe": "comp.os.ms-windows.misc", "percent": "1.00294100" }, { "classe": "comp.sys.ibm.pc.hardware", "percent": "0.17852880" }, { "classe": "comp.sys.mac.hardware", "percent": "0.24781623" }, { "classe": "comp.windows.x", "percent": "3.20503265" }, { "classe": "misc.forsale", "percent": "0.16137564" }, { "classe": "rec.autos", "percent": "0.23865439" }, { "classe": "rec.motorcycles", "percent": "0.35177895" }, { "classe": "rec.sport.baseball", "percent": "1.18482364" }, { "classe": "rec.sport.hockey", "percent": "0.21046386" }, { "classe": "sci.crypt", "percent": "4.29985709" }, { "classe": "sci.electronics", "percent": "2.09880602" }, { "classe": "sci.med", "percent": "19.70048994" }, { "classe": "sci.space", "percent": "5.71478717" }, { "classe": "soc.religion.christian", "percent": "11.07885465" }, { "classe": "talk.politics.guns", "percent": "1.57866161" }, { "classe": "talk.politics.mideast", "percent": "1.79922581" }, { "classe": "talk.politics.misc", "percent": "3.07453331" }, { "classe": "talk.religion.misc", "percent": "17.71455258" } ] ```