Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Start project #20
Start project #20
Changes from all commits
c7eb02b
e6b2705
17ad45a
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
Game-Api - Koło Naukowe .NET
Opis
Witaj w repozytorium Koła Naukowego .NET, poświęconym naszemu najnowszemu projektowi gry! Niniejsza gra z gatunku RPG, jest aplikacją internetową, której głównym założeniem jest pełna niepowtarzalność wszelkich przygód w niej.
O Projekcie
Nasza gra to innowacyjna produkcja, która łączy w sobie zarówno aspekty nowoczesnych wzorców architektonicznych, jak i wykorzystuje pełen potencjał najnowszych technologii.
Uruchomienie aplikacji
Niniejszy projekt wykorzystuje technologię Docker oraz Docker Compose do zarządzania kontenerami i uruchamiania infrastruktury aplikacji. Aby uruchomić tę aplikację na swoim komputerze, postępuj zgodnie z poniższymi krokami:
1. Instalacja Docker Desktop
Jeśli nie masz jeszcze zainstalowanego Docker Desktop, będziesz musiał to zrobić przed uruchomieniem aplikacji. Docker Desktop jest dostępny dla systemów Windows, Linux oraz macOS. Pobierz go stąd: https://www.docker.com/products/docker-desktop/
(Możesz również skorzystać z Rancher Desktop, który jest open source https://github.com/rancher-sandbox/rancher-desktop/releases, bądź innego dowolnego rozwiazania)
Po pobraniu i zainstalowaniu Docker Desktop, upewnij się, że jest uruchomiony.
2. Pobranie repozytorium
W kolejnym kroku pobierz poniższe repozytorium na swój komputer, wykonując polecenia w terminalu windows w twoim lokalnym katalogu z repozytoriami.
3. Uruchomienie infrastruktury aplikacji za pomocą Docker Compose
Po pobraniu repozytorium oraz zainstalowaniu Docker Desktop, możesz uruchomić infrastrukture aplikację za pomocą Docker Compose. W katalogu projektu znajdziesz plik
docker-compose.yml
, który zawiera konfigurację kontenerów.Jeżeli zamknąłeś terminal z poprzedniego kroku to otwórz go i przejdź do katalogu projektu, a następnie wprowadź następującą komendę:
4. Uruchomienie aplikacji w Visual Studio
Aby uruchomić tę aplikację w Visual Studio, rozpocznij od projektu
Game.Api
, który należy ustawić jako domyślny. Wykonaj następujące kroki:Otwórz solucję projektu w Visual Studio.
Przejdź do eksploratora rozwiązań (Solution Explorer) po prawej stronie.
Kliknij prawym przyciskiem myszy na projekcie
Game.Api
, który chcesz ustawić jako domyślny, a następnie wybierz opcję "Ustaw jako projekt startowy" (Set as StartUp Project).Teraz
Game.Api
jest ustawiony jako domyślny projekt. Możesz zacząć pracować nad nim i uruchamiać aplikację w trybie debugowania, naciskając klawisz F5 lub wybierając opcję "Uruchom" (Run) z menu Visual Studio.Dodatkowo w celu zarządzania infrastrukturą aplikacji został uruchomiony pgAdmin4 oraz Redis Commander pod domyślnymi adresami:
Adres:
Dostęp:
Adres:
Dostęp:
Numery portów, nazwy użytkowników i hasła można edytować w pliku
.env
w katalogu głównym projektu.Warto pamiętać, że na tym etapie wszystko powinno poprawnie się uruchomić, jeśli zostało wcześniej poprawnie skonfigurowane. Jeśli masz jakiekolwiek problemy z konfiguracją, upewnij się, że wszystkie zależności i środowisko są właściwie skonfigurowane.
Środowisko
Backend AI
Projekt komunikuje się z modelem AI na backendzie, w tym momencie dostosowany jest do serwera REST uruchamianego przez llama.cpp (aplikacja
server
), oraz testowana była na modelu Mistral-7B i jego derywatywach (Mistral-RP-0.1-7B-GGUF).Aby uruchomić backend, należy pobrać (skompilować) llama.cpp, pobrać plik modelu i uruchomić serwer wydając polecenie, na przykład:
(tutaj następuje przeniesienie 35 warstw modelu na urządzenie CUDA, wymagana jest odmiana llama.cpp z obsługą CUDA, w przeciwnym wypadku parametr
-ngl
nie jest dostępny)Pełna dokumentacja serwera: https://github.com/ggerganov/llama.cpp/blob/master/examples/server/README.md
docker
Można też uruchomić Backend AI llama.cpp w oparciu o plik
docker-compose.llamacpp.yml
. W tym celu należy utworzyć plik.env
, w którym znajdą się dwie zmienne definiujące wariant serwera oraz ścieżkę lokalną do pliku modelu, np.:Dostępne warianty to:
full
(CPU),full-cuda
(NVIDIA GPU) ifull-rocm
(AMD ROCm GPU).Uruchomienie:
Konfiguracja Backendu AI
W pliku
Game.Api/appsettings.json
, możesz zdefiniować ścieżkę do URL serwera llama.cpp:Niezbędne jest również wybranie modułów odpowiedzialnych za komunikację z backendem AI i przygotowaniem promptów, które to należy wybrać jako pełne nazwy typów, włącznie z ich assembly, dla Mistral-7B należy wybrać
AlpacaPromptProvider
:Formatowanie kodu i commitów
Projekt wykorzystuje narzędzie git-conventional-commits do kontroli, czy tytuły commitów zgadzają się ze specyfikacją. A by móc z niego skorzystać, należy je zainstalować z wykorzystaniem NPM:
Narzędzie zostanie aktywowane automatycznie poprzez wykorzystanie Husky.Net -- aby skorzystać z Husky, należy wykonać pierwszy raz komendę
dotnet restore
na projekcieGame.Api\Game.Api.csproj
i zostanie automatycznie zainstalowane wraz z innymi zależnościami.W podobny sposób, przed każdym commitem, pliki zostaną sprawdzone i przeformatowane z wykorzystaniem narzędzia csharpier w celu ujednolicenia stylu pisania kodu.
Autorzy
Ten projekt jest rozwijany przez członków Koła Naukowego .NET na Politechnice Lubelskiej.
Podziękowania
Chcielibyśmy podziękować wszystkim, którzy przyczynili się do tego projektu. Dziękujemy za zainteresowanie naszym projektem i zapraszamy do wspólnego tworzenia wspaniałej gry!