아키텍처
GenKaKu는 세 가지 구성 요소를 가지고 있습니다: 사용자 클라이언트, 오케스트레이터, 워커.
사용자 클라이언트
genkaku.app의 웹 인터페이스입니다. 사용자는 Privy를 통해 인증하고 메시지를 보냅니다 — 하나의 텍스트 모델만 있으므로 선택할 것이 없습니다. 클라이언트는 Socket.io를 통해 오케스트레이터에 연결하고 실시간으로 스트리밍된 토큰 응답을 받습니다.
오케스트레이터
중앙 라우팅 계층입니다. Socket.io를 사용하는 Node.js 서버로 모든 것을 조정합니다:
- 인증 — Privy를 통해 사용자 세션과 워커 토큰을 확인합니다
- 작업 큐 — 사용자 요청을 받고 모델별로 큐에 넣으며 사용 가능한 워커와 매칭합니다
- 워커 레지스트리 — 연결된 모든 워커를 추적합니다: 유형(브라우저/네이티브/이미지), 모델, 상태(유휴/바쁨), 성능 통계
- 모델 라우팅 — 올바른 워커 유형으로 작업을 지시합니다:
qwen3.8-27b-uncensored(채팅 및 API) → 네이티브 워커genkaku-pro및 무료 프롬프트 → Qwen3.5 Uncensored를 실행하는 브라우저 워커- 이미지 작업 → 이미지 워커
- 워커 선택 — 요청된 모델을 제공하는 적격 유휴 워커 중에서 가중 랜덤 선택으로 하나를 골라 수익을 분산하면서 속도를 선호합니다 (가중치 = 측정된 토큰/초)
- 도구 호출 — 모델이
web_search도구를 요청할 때 Brave Search API 쿼리를 실행하고 상위 3개 결과에서 콘텐츠를 가져와 추출하여 도구 결과로 모델에 반환합니다 - 통계 방송 — 5초마다 연결된 모든 클라이언트에 실시간 네트워크 통계(활성 워커, 큐 깊이, 완료된 작업)를 푸시합니다
오케스트레이터는 대화나 프롬프트 콘텐츠를 저장하지 않습니다. 트래픽을 라우팅하고 폐기합니다.
워커
워커는 기계에서 실행되며 GenKaKu 네트워크에 추론 작업을 제공하는 데스크톱 애플리케이션입니다. GenKaKu Worker 앱을 다운로드하고 로그인하면 GPU가 수익을 올리기 시작합니다 — 명령줄 설정이 필요 없습니다.
워커는 모델 서빙을 위해 내부적으로 Ollama를 사용하며, CUDA(NVIDIA), Metal(Apple Silicon), Vulkan(AMD/Intel) 가속을 지원합니다. 네트워크의 주요 텍스트 모델인 Qwen3.8 27B Uncensored를 실행하며, 라우팅되는 모든 채팅 메시지와 API 요청을 처리합니다.
하드웨어 요구 사항: 16GB 이상의 NVIDIA GPU(24GB 권장), 24GB 이상의 AMD 카드 또는 32GB 이상의 Apple Silicon Mac. 하드웨어에 따라 성능이 다르지만, 적절한 GPU에서 초당 25개 이상의 토큰을 기대할 수 있습니다.
작업을 제공하지 않을 때 워커는 백그라운드에서 유휴 상태로 실행됩니다. 위젯 모드로도 실행할 수 있습니다 — GPU 활용률, USDC 수입 및 $GENKAKU 수익을 한눈에 보여주는 컴팩트한 오버레이. 로컬 Ollama 모델로 구동되는 내장 교육 어시스턴트가 앱을 떠나지 않고 문제를 해결하는 데 도움을 줍니다.
워커는 Socket.io를 통해 오케스트레이터에 연결하고 작업 할당을 받으며 추론을 실행하고 토큰을 스트리밍합니다.
이미지 워커 (ComfyUI)
독립적인 GPU에서 ComfyUI를 실행하고 이미지 작업을 제공합니다 — 텍스트 모델이 호출할 수 있는 generate_image 도구와 이미지 API 모두 포함됩니다. 워커 토큰으로 인증하고 Socket.io를 통해 오케스트레이터에 연결합니다.
작업 수명 주기
1. 사용자가 메시지를 보냅니다
2. 오케스트레이터가 요청을 받고 필요한 모델을 결정합니다
3. 요청이 해당 모델의 큐에 들어갑니다
4. 오케스트레이터가 올바른 유형의 유휴 워커와 요청을 매칭합니다 — 적격 유휴 워커 중에서 각 워커의 측정된 토큰/초 기준 가중 랜덤 선택으로 수익을 분산하면서 속도를 선호합니다
5. 작업이 워커에 할당됩니다
6. 워커가 추론을 실행하고 토큰을 오케스트레이터로 스트리밍합니다
7. 오케스트레이터가 실시간으로 토큰을 사용자에게 중계합니다
8. 작업이 완료되고 워커가 유휴으로 표시되며 수익이 적립됩니다
검색 흐름
웹 검색은 프리페치가 아닌 모델 주도 도구 호출입니다. 모델이 검색할 때를 결정합니다:
1. 사용자가 메시지를 보냅니다
2. 워커가 모델을 실행합니다; 모델이 web_search 도구 호출을 생성합니다
3. 오케스트레이터가 Brave Search API 쿼리를 실행합니다
4. 오케스트레이터가 상위 3개 페이지 URL을 가져오고 콘텐츠를 추출합니다
5. 결과가 도구 결과로 모델에 반환됩니다
6. 모델은 웹 콘텐츠에 기반하여 생성을 계속합니다
7. 응답이 출처 인용과 함께 스트리밍됩니다
통계
오케스트레이터는 5초마다 연결된 모든 클라이언트에 네트워크 통계를 방송합니다:
- 활성 워커 수 (유형 및 모델별)
- 현재 모델별 큐 깊이
- 완료된 총 작업 수
- 네트워크 전체 초당 토큰 수