Skip to content
/ diet-bot Public

A bot used to check whether the ingredients on food product labels are suitable for the selected diet

Notifications You must be signed in to change notification settings

Kacpu/diet-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diet Bot: bot dietetyczny

Cel

Celem projektu było stworzenie bota służącego do sprawdzania, czy składniki z etykiet produktów spożywczych są odpowiednie dla wybranej przez użytkownika diety.

Użytkownik dzięki temu oszczędza czas na wyszukiwaniu składników, których nie jest pewien, czy należą do konkretnej diety.

Opis funkcjonalności

Bot umożliwia:

  • prowadzenie rozmowy z użytkownikiem poprzez czat,
  • przesyłanie zdjęć,
  • rozpoznawanie tekstu ze zdjęć etykiet,
  • określenie, czy produkt jest odpowiedni dla wybranej diety.

Schemat działania

  1. Użytkownik nawiązuje kontakt z botem.
  2. Bot wysyła prosbę o zdjęcie etykiety produktu.
  3. Użytkownik przesyła zdjęcie.
  4. Bot wysyła prośbę o wybranie pożądanej diety.
  5. Użytkownik wybiera dietę.
  6. Bot wysyła wynik oceny czy produkt jest odpowiedni dla wybranej diety.

Architektura

diagram

Bot Service wykorzystuje Cosmos DB do pobierania danych dotyczących diet oraz Cognitive Service (OCR) do pozyskiwania listy składników ze zdjeć.

Demo

Wideo na youtube

Opis wybranych serwisów

Bot Services

Bot Services – umożliwia tworzenie środowisk konwersacyjnych w prostu sposób. Zapewnia zintegrowane środowisko programistyczne do tworzenia botów zarówno bez pisania kodu, jak i przy pomocy Bot Framework SDK (dostępne w kilku językach np. JavaScript, Python, C#).

Podczas projektu stworzono bota przy użyciu SDK dla ASP.NET Core 6 oraz testowano go przy użyciu Bot Framework Emulator.

App Services

App Services – oparte o HTTP serwisy przeznaczone do hostowania aplikacji internetowych, RESTowych API i back-endu aplikacji mobilnych. Umożliwiają pisanie kodu w szerokiej gamie języków programowania i technologii.

W projekcie serwis ten wykorzystano w celu upublicznienia kodu odpowiedzialnego za logikę aplikacji oraz komunikację między botem, bazą danych a Cognitive Services.

Cosmos DB

Cosmos DB – szybka, rozproszona i nierelacyjna baza danych, która skaluje w zależności od obciążenia. Umożliwia zamieszczanie danych, jako zestawy "dokumentów".

W projekcie była używana do zamieszczenia zestawu danych dostarczających informacji o dietach, oraz do pozyskiwania tych informacji przez bota.

Cognitive Services

Cognitive Services – zbiór usług w obrębie chmurowej platformy Microsoft Azure opartych o sztuczną inteligencję, które w prosty sposób, czyli bez specjalistycznej wiedzy z zakresu AI oraz analizy danych, umożliwiają aplikacjom w pewnym sensie zyskanie zdolności widzenia, słyszenia, mowy czy analizy.

Podczas realizacji projektu wykorzystano część usługi związaną z rozpoznawaniem zdjęć, a mianowicie OCR – Optical Character Recognition. Narzędzie to pozwala na odczytanie tekstu – drukowanego lub pisanego ręcznie – ze zdjęcia. W szczególności wykorzystane ono zostało do uzyskania listy składników z fotografii etykiety produktu spożywczego.

Stos technologiczny

  • ASP.NET Core 6.0
  • Bot Framework SDK for C#

Zespół

  • Kacper Tarłowski
    • implementacja bota
    • projektowanie działania
  • Jakub Gromiński
    • research danych
    • przygotowanie cognitive service
    • projektowanie działania
  • Bartłomiej Kopyść
    • przygotowanie Cosmos DB
    • pozyskiwanie danych
    • projektowanie działania
    • przygotowanie grupy na Azure

About

A bot used to check whether the ingredients on food product labels are suitable for the selected diet

Topics

Resources

Stars

Watchers

Forks