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
docs: AI backend documentation #18
docs: AI backend documentation #18
Changes from all commits
c6cc581
88ad526
368cbc2
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.
Ś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!