Inkubus の仕組み(アーキテクチャ)
しっかり使いたい人向けに、Inkubus が内部でどう動いているかをまとめました。ざっくり言うと 「Inkubus 本体」と「Ollama」の 2 つだけです。この関係さえ掴めば、1 台で動かすのも、強い GPU を別に用意するのも、考え方は同じだと分かります。
01 全体像:Inkubus と Ollama
Inkubus は 2 つの部品でできています。操作と保存を受け持つ Inkubus 本体と、実際に文章を書く頭脳である Ollama(ローカル LLM)です。本体が Ollama に「この設定で書いて」と頼み、返ってきた文章を保存して画面に表示します。
Inkubus 本体 Node.js
ブラウザで開く画面。PC でもスマホでも。
夜通し小説を書く本体。タブを閉じても動き続けます。
SQLite(メタ情報)+ 本文ファイル(.md)
Ollama ローカル LLM
ビデオカードがあれば GPU、無ければ CPU。
この 2 つの間は ふつうの HTTP 通信です。だから Ollama は「同じ PC の中」でも「家の別の PC」でも「クラウド」でも、URL を変えるだけで差し替えられます(→ 3 つの構成パターン)。
02 Inkubus の中身(Node.js)
Inkubus 本体は Node.js でできた 1 つのプログラムで、起動すると 2 つの口(ポート)を開きます。
- Web(:5173) — あなたがブラウザで見て操作する画面。新規実行・ライブラリ・ジョブなどの画面はすべてここ。
- Worker(:3000) — 実際に Ollama を呼んで小説を組み立てる本体。生成はこちらのサーバプロセスで進むので、ブラウザのタブを閉じても、スリープしても止まりません。開き直せば途中から追いつきます。
生成された本文は Markdown ファイルとして保存され、タイトルやお気に入りなどのメタ情報は SQLite(node:sqlite)に入ります。どちらもあなたの PC の中です。
セットアップさえ済めば、Inkubus 本体はインターネットにつながりません。唯一の通信相手は、あなたが選んだ Ollama だけ。localhost の Ollama を使う構成なら完全オフラインで動きます。
03 3 つの構成パターン
「Inkubus 本体」と「Ollama」をどこに置くかで、大きく 3 通りの構成があります。どれも仕組みは同じ(本体 → Ollama)で、Ollama の場所が違うだけです。
パターン 1
ぜんぶ 1 台の PC で(オールインワン)
いちばん手軽。Inkubus も Ollama も同じ PC に入れて、その PC の GPU で動かします。まずはこれで十分です。
パターン 2
家のネットワーク(2 台の PC)
ふだん使いの PC で Inkubus を操作し、Ollama だけを強い GPU の PCに置いて、家の LAN 越しに使います。非力なノート PC から、デスクトップの GPU を借りるイメージ。
パターン 3
クラウド GPU(RunPod 等)
高性能なビデオカードを持っていなくても、クラウドの GPU 上で動く Ollama にインターネット越しに接続できます。必要なときだけ強い GPU を借りる使い方です。
パターン 2・3 では「Inkubus 本体は手元、GPU だけ外」になります。外出先のスマホから使う応用は Inkubus を使いこなす に、接続の具体手順は リモート Ollama にまとめています。
04 LLM 処理は同時に 1 つ
Inkubus が Ollama に投げる仕事は 4 種類ありますが、1 つの Ollama を取り合わないよう、同時に走るのは 1 件だけに制御されています(排他)。
Ollama
この仕組みのおかげで、寝る前に小説生成を積んでおき、起きてからキャストの画像を登録する、といった運用でも GPU が取り合いになりません。詳しくは ジョブの排他制御。
05 データの保存場所
あなたの作品は 2 か所に分かれて保存されます。バックアップは両方そろって 1 セットです。
- 本文 —
server/output/の中の.mdファイル。作品そのものはここ。 - メタ情報 —
server/data/app.sqlite(作品の一覧・設定・ロールなど)と、キャストの画像(server/data/cast/)。
本文は SQLite ではなくファイルなので、作品が増えても app.sqlite が肥大して壊れる、ということは起きにくい設計です。バックアップ手順は アップデート の「バックアップ」を参照してください。