アーキテクチャ
GenKaKuは3つのコンポーネントで構成されています。ユーザーコライアント、オーケストレーター、ワーカーです。
ユーザーコライアント
genkaku.appのWebインターフェース。ユーザーはPrivyで認証してメッセージを送信します。テキストモデルは1つだけなので、選択するものはありません。クライアントはSocket.ioを通じてオーケストレーターに接続し、リアルタイムでストリーミングされたトークンレスポンスを受信します。
オーケストレーター
中央ルーティングレイヤー。Socket.ioを使用したNode.jsサーバーがすべてを調整します:
- 認証 — Privyを通じてユーザーセッションとワーカートークンを検証
- ジョブキュー — ユーザーリクエストを受信し、モデルごとにキューに入れ、利用可能なワーカーにマッチング
- ワーカーレジストリ — 接続されたすべてのワーカーを追跡:タイプ(ブラウザ/ネイティブ/画像)、モデル、ステータス(アイドル/ビジュー)、パフォーマンス統計
- モデルルーティング — ジョブを正しいワーカータイプに指示:
qwen3.8-27b-uncensored(チャットとAPI)→ ネイティブワーカーgenkaku-proと無料プロンプト → Qwen3.5 Uncensoredを実行するブラウザワーカー- 画像ジョブ → 画像ワーカー
- ワーカー選択 — 要求されたモデルを提供する適格なアイドルワーカーの中から、加重ランダム選択(重み = 測定されたトークン/秒)で1つを選び、速度を重視しつつ収益を分散
- ツールコール — モデルが
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. ジョブ完了、ワーカーがアイドル状態に标记、収益がクレジット
検索フロー
Web検索はプリフェッチではなく、モデル駆動のツールコールです。モデルが検索するタイミングを決定します:
1. ユーザーがメッセージを送信
2. ワーカーがモデルを実行。モデルがweb_searchツールコールを発行
3. オーケストレーターがBrave Search APIクエリを実行
4. オーケストレーターが上位3件のページURLを取得し、コンテンツを抽出
5. 結果がツール結果としてモデルに返却
6. モデルが生成を継続、Webコンテンツに基づいた状態で
7. レスポンス得出典引用とともにストリーミング
統計
オーケストレーターは5秒ごとにネットワーク統計をすべての接続クライアントにブロードキャスト:
- アクティブワーカー数(タイプとモデル別)
- モデルごとの現在のキュー深度
- 完了したジョブ総数
- ネットワーク全体の1秒あたりトークン数