Bot made with Microsoft Azure' cloud service

Overview

IttenWearBot

Autori:

  • Antonio Zizzari
  • Simone Giglio

IttenWearBot è un bot intelligente dotato di sofisticate tecniche di machile learning che aiuta gli utenti che lo utilizzano a vestirsi bene consigliando dei vestiti da acquistare secondo alcuni criteri.

Il bot ha molte funzionalità, che sono le seguenti:

  • Trova corrispondenza: Trovare un abbinamento basato su un capo d'abbigliamento già in tuo possesso, analizzarne il colore, e trovare l'abbinamento adatto.
  • Crea outfit: Nel caso in cui non si voglia specificare un capo d'abbigliamento, è possibile creare un outfit da zero scegliendo un colore di base dal quale partire.
  • Visualizza wishlist: Mostra i capi d'abbigliamento salvati in precedenza. Permette la visualizzazione e l'eliminazione dei capi all'interno della wishlist
  • Suggerisci luoghi foto: Suggerisce all'utente dei luoghi nei quali puoi scattare foto in base al meteo del luogo in cui si trova.

Architettura

Il bot è stato sviluppato in Python ed è stato pubblicato sul canale Telegram ed utilizza i seguenti servizi:

  • AppService: Per effettuare hosting dell'applicazione su cloud.
  • BotService: Per sviluppare, testare e pubblicare il bot in Azure.
  • Azure Cosmos DB: Per conservare i dati persistenti relativi agli utenti e alle wishlist associate.
  • LUIS: Per riconoscere ed interpretare la psicologia dei colori in crea outfit.
  • Azure Computer Vision: Per elaborare le immagini della funzione trova corrispondenza ed ottenere sia chi sono gli oggetti nella foto che il colore principale
  • AzureMaps: Quando viene suggerito un luogo incui fare le foto il servizio utilizza delle richieste https per ricevere informazioni sul posto inviato dall'utente

Prerequisiti

Installazione

Clonare la repository Github e installare in un ambiente virtuale i pacchetti richiesti con il comando:

pip install -r requirements.txt

Cosmos DB

CosmosDB è un database NoSQL offerto dai servizi Azure per lo sviluppo di app moderne, offrendo tempi di risposta veloci e scalabilità automatica. Cosmos DB mantiene json che tengono traccia del numero di mascherine totali indossate dagli utenti giorno per giorno. Utilizzo del portale di Azure:

  1. Creare una nuova risorsa utilizzando la barra di ricerca e cercare 'Azure Cosmos DB'.
  2. Specificare "serverless" per la voce "Capacity mode".
  3. Settare "Core(SQL)" per la voce "API".
  4. Confermare la creazione della risorsa.

LUIS

Per configurare LUIS – Language Understanding in modo semplice e veloce basta accedere al portale dedicato: https://www.luis.ai/.

Per istanziare una app LUIS si necessita di eseguire i seguenti passaggi:

  1. Accedere all’apposito portale, inserendo le credenziali di Azure.
  2. Cliccare sul bottone “New App” per creare una nuova istanza.
  3. Compilare la form con il nome dell’app, una breve descrizione (facoltativa) e selezionare la lingua target ed il gruppo di risorse in cui inserire l’applicazione.
  4. Una volta creata la risorsa, si possono creare gli intent, che sono utili ad interpretare il linguaggio comune e definire un’azione da intraprendere.
  5. Per creare un intent cliccare sul bottone “New” della scheda Intent ed inserire il nome per l’intent corrente.
  6. Una volta creato l’intent è possibile inserire delle frasi di esempio per addestrare il modello. Il seguente passo deve essere iterato per ogni frase di esempio da considerare.
  7. Dopo aver inserito tutte le frasi di cui si occorre, cliccare il bottone in alto a destra “Train” per addestrare il modello.
  8. Dopo aver addestrato il modello, cliccare sul bottone “Publish” e scegliere l’opzione “Production Slot”.
  9. Dopo aver eseguito la pubblicazione comparirà una notifica con un link che ci riporta all’endpoint url. Dopo aver cliccato sul link è possibile prelevare l’endpoint url che verrà utilizzato nell’applicazione del bot, l’app Id e le key associate alle risorse.
  10. Utilizzare i parametri del passo 9, per configurare la propria applicazione. Nel codice del bot inserire i parametri nel file config.py.

Computer Vision

Computer Vision può ottimizzare molti scenari di gestione delle risorse digitali. La gestione delle risorse digitali è il processo aziendale per l'organizzazione, l'archiviazione e il recupero di risorse multimediali elaborate e per la gestione dei diritti e delle autorizzazioni digitali. Utilizzo del portale di Azure:

  1. Creare una nuova risorsa utilizzando la barra di ricerca e cercare 'Computer Vision'.
  2. Specificare la tariffa preferita (F0 usata nel progetto).
  3. Confermare la creazione della risorsa.

Azure Maps

Azure Maps offre agli sviluppatori di tutti i settori potenti funzionalità geospaziali, combinate con i dati delle mappe più aggiornati. Mappe di Azure è disponibile sia per le applicazioni Web che per quelle per dispositivi mobili. Azure Mappe è un set di API REST conforme all'API Di Azure One. Utilizzo del portale di Azure:

  1. Creare una nuova risorsa utilizzando la barra di ricerca e cercare 'Azure Maps'.
  2. Specificare la tariffa preferita (Gen1 S1 usata nel progetto).
  3. Confermare la creazione della risorsa.

Servizio dell’applicazione bot

  1. Nel browser passare al portale di Azure.

  2. Nel pannello di sinistra selezionare Crea una nuova risorsa.

  3. Nel pannello di destra cercare i tipi di risorsa che includono la parola bot e scegliere Registrazione canali bot.

  4. Fare clic su Crea.

  5. Nel pannello Registrazione canali bot immettere le informazioni richieste.

  6. Fare clic su Creazione automatica password e ID app e selezionare Crea nuovo.

  7. Fare clic su Crea ID app nel portale di registrazione dell'app. Verrà aperta una nuova pagina.

  8. Nella pagina Registrazioni per l'app fare clic su Nuova registrazione in alto a sinistra.

  9. Immettere il nome dell'applicazione bot che si intende registrare, ad esempio IttenWearBot. Per ogni bot è necessario specificare un nome univoco.

  10. Per Tipi di account supportati selezionare Account in qualsiasi directory dell'organizzazione (qualsiasi directory di Azure AD - Multi-tenant) e account Microsoft personali (ad esempio, Skype, Xbox).

  11. Fare clic su Register. Al termine, Azure visualizza una pagina di panoramica per la registrazione dell'app.

  12. Copiare il valore di ID applicazione (client) e salvarlo in un file.

  13. Nel pannello di sinistra fai clic su Certificati e segreti.

    1. In Segreti client fare clic su Nuovo segreto client.
    2. Aggiungere una descrizione per identificare questo segreto rispetto ad altri che potrebbero essere necessari per creare per l'app.
    3. Impostare Scadenza su Mai.
    4. Scegliere Aggiungi.
    5. Copiare il nuovo segreto client e salvarlo in un file
  14. Tornare alla finestra Registrazione canali bot e copiare il valore di ID app e Segreto client rispettivamente nelle caselle ID app Microsoft e Password.

  15. Fare clic su OK.

  16. Fare infine clic su Crea.

Guida all'esecuzione

Il bot può essere testato in locale utilizzando Bot Framework Emulator e ngrok.

Local hosting

Testare il bot utilizzando Bot Framework Emulator

  1. Avviare il venv su PyCharm digistando
venv\Scripts\activate.bat
python app.py
  1. Avviare Bot Framework Emulator e selezionare 'Open Bot'.
  2. Inserire i campi richiesti:
    • Bot URL: http://localhost:3978/api/messages
    • Microsoft App ID: presente nel file config.py
    • Microsoft App password: presente nel file config.py

Testare il bot su Telegram

Creare un nuovo bot per Telegram e nella sezione Canali del servizio bot configurare il bot inserendo il token.

  1. Avviare ngrok
$ ./ngrok http -host-header=rewrite 3978
  1. Recarsi nella sezione Impostazioni del servizio bot ed inserire come endpoint di messaggistica l'indirizzo https generato da ngok.
  2. Testare il bot utilizzando Telegram.

Cloud Hosting

  1. Eseguire il deploy della web app utilizzando [](uesta guida](https://docs.microsoft.com/it-it/azure/bot-service/bot-builder-deploy-az-cli?view=azure-bot-service-4.0&tabs=python)
  2. Assicurarsi che l'endpoint del servizio bot sia corretto (se è stato modificato).
  3. A questo punto è possibile testare il bot utilizzando Telegram o la web chat su Azure.
Owner
Antonio Zizzari
Sono uno studente di Informatica presso l'Università degli Studi di Salerno.
Antonio Zizzari
A working bypass for discord gc spamming

IllusionGcSpammer A working bypass for discord gc spamming Installation Run pip install pip install DiscordGcSpammer then your good to go. Usage You c

6 Sep 30, 2022
Random Geek Jokes REST API

Geek-Jokes A RESTful API to get random geek jokes written in Flask What is the Geek-Jokes-api? The Geek Jokes RESTful API lets you fetch a random geek

Sameer Kumar 84 Dec 15, 2022
Online Marketplace API

Online Marketplace API Table of Contents Setup Instructions Documentation Setup instructions Make sure you have python installed Clone the repository

Kanat 3 Jul 13, 2022
Robocord is a bot created for the Pycord community.

Robocord is a bot created for the community of the Pycord Server. Just a bot created for Pycord Server. You can start pull requests, I will check it and if its good I will add it to the bot. 👍

Bruce 7 Jun 26, 2022
Fully Automated Omegle Chatbot

omegle-bot tutorial features fast runs in background can run multiple instances at once Requirement Run this command in cmd, terminal or PowerShell (i

6 Aug 07, 2021
Scheduled Block Checker for Cardano Stakepool Operators

ScheduledBlocks Scheduled Block Checker for Cardano Stakepool Operators Lightweight and Portable Scheduled Blocks Checker for Current Epoch. No cardan

SNAKE (Cardano Stakepool) 4 Oct 18, 2022
M3U Playlist for free TV channels

Free TV This is an M3U playlist for free TV channels around the World. Either free locally (over the air): Or free on the Internet: Plex TV Pluto TV P

Free TV 964 Jan 08, 2023
NFT which pays royalties to its creator each time it is sold.

Chialisp NFT with Perpetual Creator Royalties This is a chialisp NFT in which the creator/minter defines a puzzle hash which will capture a fixed perc

Geoff Walmsley 20 Jun 28, 2022
Code for paper "Adversarial score matching and improved sampling for image generation"

Adversarial score matching and improved sampling for image generation This repo contains the official implementation for the ICLR 2021 paper Adversari

Alexia Jolicoeur-Martineau 114 Dec 11, 2022
A Python SDK for connecting devices to Microsoft Azure IoT services

V2 - We are now GA! This repository contains code for the Azure IoT SDKs for Python. This enables python developers to easily create IoT device soluti

Microsoft Azure 381 Dec 30, 2022
Braintree Python library

Braintree Python library The Braintree Python library provides integration access to the Braintree Gateway. TLS 1.2 required The Payment Card Industry

Braintree 230 Dec 18, 2022
Script Crack Facebook, and Instagram 🚶‍♂

in-mbf Script Crack Facebook, and Instagram 🚶‍♂ Bukti Install Script $ pkg update && pkg upgrade $ pkg install git $ pkg install python2 $ pip2 insta

Yumasaa 5 Dec 27, 2021
The most expensive version of Conway's Game of Life - running on the Ethereum Blockchain

GameOfLife The most expensive implementation of Conway's Game of Life ever - over $2,000 per step! (Probably the slowest too!) Conway's Game of Life r

75 Nov 26, 2022
칼만 필터는 어렵지 않아(저자 김성필) 파이썬 코드(Unofficial)

KalmanFilter_Python 칼만 필터는 어렵지 않아(저자 김성필) 책을 공부하면서, Matlab 코드를 Python으로 변환한 것입니다. Contents Part01. Recursive Filter Chapter01. Average Filter Chapter0

Donghun Park 20 Oct 28, 2022
Build a better understanding of your data in PostgreSQL.

Data Fluent for PostgreSQL Build a better understanding of your data in PostgreSQL. The following shows an example report generated by this tool. It g

Mark Litwintschik 28 Aug 30, 2022
Bitcoin tracker hecho con python.

Bitcoin Tracker Precio del Bitcoin en tiempo real. Script simple hecho con python. Rollercoin RollerCoin es un juego en el que puedes ganar bitcoin (y

biyivi 3 Jan 04, 2022
A simple script that will watch a stream for you and earn the channel points.

Credits Main idea: https://github.com/gottagofaster236/Twitch-Channel-Points-Miner Bet system (Selenium): https://github.com/ClementRoyer/TwitchAutoCo

Alessandro Maggio 1.1k Jan 08, 2023
Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects

Gnosis-py Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects: EthereumClient, a wrapper over Web3.py Web3 client includin

Gnosis 93 Dec 23, 2022
Flaga ze Szturmu na AWS.

Witaj Jesteś na GitHub'ie i czytasz właśnie plik README.md który znajduje się wewnątrz repozytorium Flaga z 7 i 8 etapu Szturmu na AWS. W tym etapie w

9 May 16, 2022
Automated endpoint management for Amazon Aurora Global Database

This sample code can be used to manage Aurora global database endpoints. After failover the global database writer endpoints swap from one region to the other. This solution automates creation and ma

AWS Samples 13 Dec 08, 2022