>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Rust

Jak połączyć powieść wizualną z LLM i pupilkiem na pulpicie w Rust

Większość interfejsów do pracy z sieciami neuronowymi wygląda równie nudno. To albo klony ChatGPT z listą wątków po lewej i polem wprowadzania po prawej, albo narzędzia wiersza poleceń dla terminala. Ale jeśli kiedykolwiek graliście w japońskie powieści wizualne (galgame), wiecie, jak ważny jest kontakt wizualny, zmiany emocji postaci i kontekst tego, co się dzieje.

Niedawno natknąłem się na ciekawy projekt o nazwie LingChat, którego autor próbował połączyć mechanikę dialogową z powieści wizualnych, system wirtualnego pupilka na pulpicie i nowoczesne modele językowe. Najlepsze dla nas: pod maską to uczciwy Rust, a nie kolejna zasobożerna aplikacja Electron.

Co kryje się w projekcie

Repozytorium LingChat oferuje przemyślenie znanego formatu komunikacji z AI. Zamiast suchego okna czatu widzimy animowaną postać, która reaguje na dialogi, śledzi twój kalendarz i może uczestniczyć w interaktywnych scenariuszach.

Projekt realizuje jednocześnie kilka zadań:

  • Emocjonalne odpowiedzi sprite'ów. Model nie tylko generuje tekst, ale także oznacza swój stan emocjonalny. W zależności od tonu odpowiedzi postać zmienia pozy, wyrazy twarzy i animacje.
  • Tryb Desktop Pet. Postać żyje bezpośrednio na wierzchu otwartych okien systemu, reagując w tle na kliknięcia i działania użytkownika.
  • Harmonogram i śledzenie zadań. Silnik dialogowy ma wbudowaną funkcjonalność kalendarza i przypomnień, więc asystent terminowo przypomni ci o telefonie lub terminie.
  • Gałęzie modułów fabularnych. Autor dodał obsługę rozgałęzień scenariuszy, przekształcając zwykły czat w interaktywną grę z sprawdzaniem warunków i wyborami.

Dlaczego wybór Rust ma znaczenie

Zazwyczaj takie aplikacje interaktywne buduje się z Electron + React lub Unity. Oba podejścia mają nieprzyjemną wadę: żarłoczność zasobów. Pupilek na pulpicie musi działać w tle przez cały dzień pracy, nie zjadając połowy RAM-u i nie uruchamiając wentylatorów laptopa.

LingChat jest napisany w Rust. Zapewnia to niskie zużycie zasobów podczas ciągłego renderowania sprite'ów i przetwarzania zdarzeń myszy. Główna logika aplikacji działa szybko, pozostawiając większość zasobów systemowych na lokalną inferencję modelu lub równoległą pracę.

Kod implementuje system parsowania do przetwarzania tagów emocji z odpowiedzi LLM. Gdy model zwraca odpowiedź, silnik przechwytuje specjalne znaczniki nastroju przed wyświetleniem tekstu na ekranie i synchronicznie przełącza klatki animacji postaci.

Gdzie to można zastosować

Oprócz bezpośredniego używania dla zabawy i nostalgii za starymi pupilkami wirtualnymi jak Shimeji, projekt ma ciekawe pomysły architektoniczne dla deweloperów.

Po pierwsze, to świetne odniesienie do tworzenia NPC w grach indie. Jeśli chcesz dodać do swojego projektu postacie oparte na generatywnym AI, możesz tutaj znaleźć inspirację, jak połączyć wyjście tekstowe modelu ze zmianami stanu wykresu animacji.

Po drugie, projekt dobrze demonstruje mechanikę tworzenia spersonalizowanych asystentów z osobowością. Zamiast bezimiennego bota otrzymujesz towarzysza, którego parametry zachowania i charakter są konfigurowane przez prompty systemowe i pliki konfiguracyjne.

Od czego zacząć

Kod źródłowy jest otwarty na licencji AGPL-3.0. Dokumentacja i przewodniki konfiguracji są zebrane na oficjalnej stronie projektu https://lingchat.wiki/.

Aby uruchomić projekt, potrzebujesz skonfigurowanego toolchaina Rust i klucza API dla kompatybilnego dostawcy LLM (lub lokalnie działającego serwera jak Ollama / vLLM z obsługą API kompatybilnego z OpenAI).

Jeśli chciałeś zbudować własnego niestandardowego towarzysza na pulpicie lub eksperymentować z dynamicznym przełączaniem sprite'ów przez LLM, zdecydowanie warto zagłębić się w repozytorium SlimeBoyOwO/LingChat.

Powiązane projekty