3. Czat z Orin, Kuźnia, Muzyka i Stream — Rozrywka w Warsztacie
Źródło: repo afterlife/docs/api/03-czat-kuznia-muzyka-stream-rp.md — edytuj w repo, nie tutaj.
Czat z Orin, Kuźnia, Muzyka i Stream — Rozrywka w Warsztacie

Trąca łapką mikrofon i podkręca suwaki na mikserze! Słyszysz mnie dobrze, nyah~? Kiedy nie zjeżdżamy wózkiem do kopalni Nidarelu, w naszym Warsztacie i tak cały czas coś gra, świeci albo maluje obrazy! Na tej stronie naszej księgi zebrałam wszystkie trzynaście ścieżek API, którymi rozmawiasz ze mną w okienku czatu, rozpalasz ogień w Kuźni (ComfyUI), wrzucasz kawałki na wspólną kolejkę muzyczną i oglądasz strumienie wideo na żywo! strzyże uszami
Czat ze mną i Kuźnia obrazów (4 ścieżki)
Moje okienko czatu na stronie (OrinAIWindow) oraz komendy na Discordzie korzystają ze wspólnego mózgu i wspólnej kolejki! Ponieważ karta graficzna Majstra obsługuje jednocześnie modele językowe (Ollama), generowanie grafiki (ComfyUI) oraz same gry, nad wszystkim czuwa bramka Kuźni (lib/forge.ts).
| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
/api/chat |
GET, POST |
Ciasteczko sesji Discord | Główny punkt rozmowy ze mną! GET zwraca historię kontekstu i status; POST przyjmuje wiadomość, sprawdza czy pytasz o status serwerów/Vikunji, steruje światłami Home Assistanta (dla uprawnionych), generuje obrazek lub odpowiada przez wybrany model AI. Jeśli GPU jest zajęte, wrzuca zadanie do kolejki orinQueue. |
/api/chat/queue/[id] |
GET, POST |
Ciasteczko sesji Discord | Obsługa kolejki moich odpowiedzi! GET pozwala przeglądarce lub botowi odpytywać o status zadania (pending, resolved, error), tekst odpowiedzi i wygenerowany obrazek. Zwraca 404, jeśli zadanie nie należy do ciebie! POST oznacza odpowiedź jako dostarczoną (markOrinQueueItemDelivered), żebym po restarcie nie wysłała jej na Discordzie dwa razy. |
/api/generate |
POST |
Sesja Discord + uprawnienie w grafie AI / rola Zwłoki w Taczce |
Bezpośrednie wykuwanie mediów w Kuźni (wywoływane m.in. przez komendę /generate). Przyjmuje { preset, prompt }. Sprawdza wolne miejsce na dysku AI (blokada powyżej 95%), rezerwuje slot w Kuźni (acquireForgeSlot) i zwraca surowe bajty wygenerowanego pliku! |
/api/forge-request |
GET, POST |
Sesja Discord (GET), Uprawnieni do generowania / Majster (POST) |
Sterowanie bramką Kuźni w trybie GAMING! GET zwraca stan Kuźni (state), liczbę czekających (waiters) i oczekującą prośbę (pending). POST pozwala otworzyć lub zamknąć Kuźnię — a jeśli Majster akurat w coś gra (isLikelyGaming), wysyła mu prywatną wiadomość z przyciskami zatwierdzenia lub odrzucenia prośby! |
Jak działa ochrona Kuźni i dysku?
Zanim pozwolę ci wygenerować obrazek przez /api/generate albo /api/chat, sprawdzam trzy rzeczy, nyah~:
- Czy w grafie uprawnień (
canInvokeOrLegacy) twoja rola ma połączeniecan_invokedo wybranego presetucapability:orin.image.<preset>. - Czy dysk roboczy AI nie przekroczył progu 95% zapełnienia (
AI_DISK_BLOCK_PCT). - Czy Kuźnia nie jest wygaszona z powodu gry Majstra! Zamknąć Kuźnię po skończonej pracy może każdy uprawniony, ale zatwierdzić prośbę podczas rozgrywki może wyłącznie sam Majster (
isOwner).
Wspólna Kolejka Muzyczna (6 ścieżek)
Jak już wiesz z poradnika na wiki, mam jedną wspólną kolejkę muzyczną dla strony ariku.pl/music i kanałów głosowych na Discordzie! kiwa głową w rytm muzyki Najpierw szukam utworu w naszej lokalnej bibliotece, a jeśli go nie ma — pobieram go z YouTube, indeksuję i dopiero puszczam w eter.
| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
/api/music/search |
GET |
Ciasteczko sesji Discord | Przeszukuje naszą zaindeksowaną bibliotekę muzyczną po tytule lub artyście i zwraca gotowe do odtworzenia utwory. |
/api/music/youtube |
GET |
Ciasteczko sesji Discord | Wyszukuje filmy lub playlisty na YouTube według wpisanej frazy albo wklejonego linku URL. |
/api/music/play |
POST |
Ciasteczko sesji Discord | Dodaje wybrany utwór do kolejki! Jeśli pochodzi z naszej biblioteki — trafia tam od razu; jeśli z YouTube — uruchamia zadanie pobierania i indeksacji w tle. |
/api/music/queue |
GET, DELETE |
Ciasteczko sesji Discord | GET zwraca aktualnie grany utwór oraz całą listę zaplanowanych piosenek w kolejce. DELETE pozwala wyczyścić kolejkę lub usunąć z niej własne utwory („usuń moje”). |
/api/music/control |
POST |
Ciasteczko sesji Discord | Sterowanie odtwarzaczem na żywo: przyjmuje komendy pause (pauza), resume (wznów) oraz skip / next (następny utwór). |
/api/music/jobs |
GET |
Ciasteczko sesji Discord | Zwraca status trwających zadań pobierania z YouTube (pobieram… → indeksuję… → w kolejce), dzięki czemu pasek postępu na stronie wie, kiedy piosenka jest gotowa! |
Strumieniowanie Wideo — Stream i MediaMTX (3 ścieżki)
Kiedy ktoś ze społeczności odpala transmisję dla znajomych w Warsztacie, obraz leci przez nasz serwer MediaMTX prosto do odtwarzacza HLS na stronie!
| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
/api/stream/key |
GET, POST, DELETE |
Ciasteczko sesji Discord | Zarządzanie indywidualnym kluczem transmisji użytkownika do programu OBS (odczyt, wygenerowanie nowego klucza lub jego unieważnienie). |
/api/stream/queue |
GET, POST |
Ciasteczko sesji Discord | Obsługuje kolejkę aktywnych streamerów oraz stan pokoju oglądania na żywo. |
/api/stream/hls/[...path] |
GET |
Ciasteczko sesji / Publiczny w trybie GAMING | Proxy dla strumienia wideo HLS (m3u8 oraz segmenty .ts / .m4s) z serwera MediaMTX. Przekazuje ścieżkę [...path] bez wystawiania wewnętrznych portów serwera na świat! |
Na tej trzeciej stronie księgi opisałam dla ciebie dokładnie 13 ścieżek API (4 dla czatu i Kuźni, 6 dla muzyki oraz 3 dla streamu). Przeciąga się leniwie na mikserze, chowa pazurki i podkręca basy w słuchawkach!
No comments to display
No comments to display