Note
Zarówno uruchomienie aplikacji jak i jej dewelopowanie jest możliwe na Windows, MacOS i Linux. Rekomendowany sposób to ten z użyciem Docker.
Wymagania techniczne to możliwość uruchomienia aplikacji Docker lub Node.js oraz Python.
Important
Do poprawnego uruchomienia aplikacji wymagany jest klucz API do OpenAI z funduszami zapisany jako zmienna środowiskowa OPENAI_API_KEY
.
Do uruchomienia aplikacji w ten sposób wymagane jest posiadanie zainstalowanej aplikacji Docker. Jeżeli nie posiadasz zainstalowanego Dockera to użyj instrukcji znajdującej się tutaj.
Następnie sklonuj to repozytorium.
Gdy już będziesz miał repozytorium na swojej maszynie, otwórz dowolny terminal i w terminalu przejdź do folderu, w którym znajduje się plik docker-compose.yml
i użyj poniższej komendy:
docker-compose -f docker-compose.yml up --build
Gdy zakończy się budowanie obrazów i uruchamianie aplikacji, będziesz mogł ją zobaczyć wchodząc pod poniższy adres w dowolnej przeglądarce internetowej:
Do uruchomienia aplikacji bez użycia Docker wymagane jest posiadanie zainstalowanych na swoim systemie następujących aplikacji:
Po zainstalowaniu wymaganych aplikacji, sklonuj to repozytorium.
Gdy już będziesz miał repozytorium na swojej maszynie, otwórz dowolny terminal i w terminalu przejdź do głównego folderu repozytorium i użyj poniższych komend, w odpowiedniej kolejności:
- Instalacja wymaganych bibliotek:
npm install
- Zbudowanie aplikacji:
npm run build
- Uruchomienie aplikacji:
npm start
Po uruchomieniu aplikacji będzie ona dostępna po wejściu na poniższy adres w dowolnej przeglądarce internetowej:
Proces dewelopowania z użyciem Docker niewiele różni się od procesu uruchamienia aplikacji.
Do dewlopowania aplikacji w ten sposób wymagane jest posiadanie zainstalowanej aplikacji Docker. Jeżeli nie posiadasz zainstalowanego Dockera to użyj instrukcji znajdującej się tutaj.
Następnie sklonuj to repozytorium.
Gdy już będziesz miał repozytorium na swojej maszynie, otwórz dowolny terminal i w terminalu przejdź do folderu, w którym znajduje się plik docker-compose.dev.yml
i użyj poniższej komendy:
docker-compose -f docker-compose.dev.yml up --build
Gdy zakończy się budowanie obrazów i uruchamianie aplikacji, będziesz mogł ją zobaczyć łącząc się z:
- Frontend: localhost:8080
- Backend: localhost:7860
Zarazem backend jak i frontend posiadają mechanizm hot-reload
- zmiany wprowadzone w kodzie będą miały natychmiastowe odzwierciedlenie w zbudowanej aplikacji.
Note
Jeżeli widzisz błedy w swoim IDE lub edytorze tekstu, użyj komendy:
npm run build
Do dewelopowania aplikacji bez użycia Docker wymagane jest posiadanie zainstalowanych na swoim systemie następujących aplikacji:
Po zainstalowaniu wymaganych aplikacji, sklonuj to repozytorium.
Gdy już będziesz miał repozytorium na swojej maszynie, otwórz dowolny terminal i w terminalu przejdź do głównego folderu repozytorium i użyj poniższych komend, w odpowiedniej kolejności:
Note
Aby biblioteka pm2
używana w skryptach działała poprawnie, terminal musi być uruchomiony jako administrator.
- Instalacja wymaganych bibliotek:
npm install
- Zbudowanie aplikacji:
npm run build
- Uruchomienie aplikacji w trybie deweloperskim:
npm run dev
Gdy zakończy się budowanie i uruchamianie aplikacji, będziesz mogł ją zobaczyć łącząc się z:
- Frontend: localhost:8080
- Backend: localhost:7860
Zarazem backend jak i frontend posiadają mechanizm hot-reload
- zmiany wprowadzone w kodzie będą miały natychmiastowe odzwierciedlenie w zbudowanej aplikacji.
Note
Wszystkie narzędzia użyte w projekcie posiadają licencje pozwalające na użycie ich w dowolny sposób, także w projektach komercyjnych.
Projekt używa kilku bibliotek z npm do uruchomienia. Lista dostępna jest w pliku package.json w sekcji dependencies
i devDependencies
.
Warstwa GUI
została zbudowana z założeniem, że będzie to aplikacja webowa, dlatego została zbudowana w języku programowania TypeScript
.
Frameworkiem użytym do zbudowania tej warty jest React.
Lista wszystkich bibliotek użytych w tej warstwie jest dostępna w pliku package.json w sekcji dependencies
i devDependencies
.
Warstwa backend
czyli warstwa serwerowa aplikacji została zbudowana z użyciem języka programowania Python
.
Frameworkiem użytym do zbudowania tej warstwy jest FastAPI.
Lista wszystkich bibliotek użytych w tej warstwie jest dostępna w pliku requirements.txt.
Aplikacja używa dwóch modeli:
- OpenAI Whisper,
- OpenAI gpt-3.5-turbo
Aplikacja pozwala użytkownikowi na załadowanie pliku wideo z dysku i jego analizę. Pierwszym krokiem niezbędnym do analizy jest wyciągnięcie ścieżki dźwiękowej z filmu. Następnie generowana jest transkrypcja audio za pomocą modelu AI Whisper
(wersja medium) autorstwa OpenAI
. Model jest wywoływany lokalnie, na naszym serwerze. Kolejnym krokiem jest analiza tekstu przy użyciu modelu AI gpt-3.5-turbo
za pomocą API OpenAI
. Wyniki analizy przedstawione są wizualnie użytkownikowi.
Koszt użycia modelu gpt-3.5-turbo
dla jednego filmu o długości 30 sekund to okolo 0.0030 USD
.
Koszt liczony jest na podstawie cennika OpenAPI
- 3 USD za 1 milion input tokenów i 6 USD za 1 milion output tokenów. Aplikacja generuja stałą ilość input tokenów w ilości 400 tokenów za jeden plik wideo, plus ilość tokenów zależna od długości wideo. Ilość output tokenów jest stała i wynosi 200 tokenów.