dotback.

ホーム / テクノロジー

Technology

生成AIの揺らぎを、設計で抑える。

生成AIは、同じ入力でも毎回ちがう答えを返します。遊びや買い物の体験をその揺らぎに預けないために、AIに任せることとコードが責任を持つことを分け、Gemini と Google Cloud の上で組み立てています。

01

判断はAI、確定はコード

AIには結論ではなく根拠を宣言させ、ダイスの出目、場所、真相の判定といったゲームの正しさはコードが決めます。

02

AIの出力は、そのまま出さない

スキーマで形を固定し、文字数、列挙値、漏らしてはいけない文面との一致を検査してから画面に出します。

03

失敗してもゲームは止めない

生成が遅い、外れた、落ちた。どの場合も代わりの表示に切り替え、遊びの進行を優先します。

ARCHITECTURE

2つのプロダクトの流れ

AI TRPG:1ターンの流れ
  1. プレイヤーの一言入力は毎回変わる区切りで囲み、指示と分ける
  2. コンテキスト組み立て固定の指示を先に、変わる状態を最後に
  3. Geminigemini-3.5-flash-lite・構造化出力
  4. 検査と確定判定・場所・真相はコードが確定
  5. 画面へ語り・ダイス・地図・BGM
ワンニャンアトリエ:写真から商品が届くまで
  1. ペットの写真App Check で不正な呼び出しを遮断
  2. プレビュー生成Nano Banana 2(Vertex AI)
  3. 選択と決済選んだ1枚だけを残し、Shopify で決済
  4. 4KアップスケールImagen 4 で選んだ絵を4倍に
  5. 印刷・発送Printful で注文ごとに印刷

ENGINEERING

実装の工夫

AI TRPG

AIが判定を宣言し、サーバーがダイスを振る

成否の基準が毎回ぶれる問題を、AIに判定内容を宣言させることで解きました。

  • GMの応答スキーマに、判定する能力値・目標値・ダイスの種類を持たせる
  • 出目はサーバーが暗号論的乱数で振り、能力値の修正もコードが足す
  • プレイヤーには目標値と出目がそのまま見える
AI TRPG

長い物語を、最後まで破綻させない

冒頭で真相を明かしてしまう、終盤で話が散らかる。長編の生成AIにつきものの崩れを、進行表で抑えます。

  • 開幕の語りと並行して、章・最後の章の区切り・まだ起こしてはいけないことを持つ進行表を作る
  • どのターンでどの章を語るかはコードが割り当てる
  • 会話は全文を渡し、変わらない指示を前に、変わる状態を最後に置く(最大40万字)
AI TRPG

絵地図と、コードが持つ地理

AIが描いた地図の上に、コードが計算した正しい地理を重ねています。

  • 場所・つながり・座標はシナリオから1回だけ抜き出し、コードが持つ
  • 現在地はGMが場所のIDで申告し、コードが確定する
  • 描かれた絵を画像入力のモデルに見せて各場所の位置を答えさせ、ピンを絵に合わせ直す
AI TRPG

答えを漏らさない、ウミガメのスープ

AIが真相を知っている謎解きで、プロンプトから答えを引き出されないための多層の守り。

  • 真相はサーバーだけが持ち、ブラウザには遊び終わるまで送らない
  • 返事は列挙値に固定し、台詞と真相の文面が長く一致しないかを照合する
  • 正解の判定はAIの結論ではなく、AIが示した引用が入力に実在するかでサーバーが下す
AI TRPG

4人で遊んでも、GMは1回だけ答える

同時に送られた行動に、GMが二重に答えないようにする仕組みです。

  • 部屋の状態はサーバーが持ち、1人プレイと同じ純粋関数のルールで適用する
  • 1ラウンドのGM呼び出しはリースとフェンシングトークンで1回に絞る
  • 同期はリビジョン付きのポーリングで、変化がなければ304を返す
ワンニャンアトリエ

プレビューは安く、4Kは決済のあとに

誰でも試せる無料プレビューと、印刷品質の画像の費用を切り分けました。

  • プレビューは透かし入りの低解像度で返し、高解像度の原本は非公開で保管
  • 決済後に、お客さまが選んだその1枚を Imagen 4 で4Kに拡大(作り直さない)
  • 1人あたり・全体の1日の予算をサーバーが保証し、上限の80%と100%で通知
ワンニャンアトリエ

二重注文を起こさない受注処理

決済の通知から印刷の指示までを、何度届いても1回だけ処理します。

  • Shopify の通知は署名を検証し、Cloud Tasks に積んで非同期に処理
  • 通知の受付、注文の状態遷移、印刷注文の番号の3段階で冪等にする
  • 印刷注文は Shopify の明細から組み立て直し、送信前に人が確認する
開発中

AIと遊ぶマーダーミステリー

人とAIが同じ卓で推理する新しいモードを開発しています。

  • 推理の設計図を持たせ、解けるかどうかを事実の集合の計算でコードが検証
  • AIの役が誰がどの意図で話すかはコードの進行役が決め、言葉だけをAIが作る
  • 人どうしの音声は WebRTC の P2P メッシュと自前の TURN サーバーで実現

PLATFORM

Built on
Gemini & Google Cloud

テキストと画像の生成から配信、非同期処理、データ、鍵の管理まで、Google Cloud のサービスで組んでいます。

Gemini
GMの語り・判定・台本(gemini-3.5-flash-lite)、キャラクターの絵
Vertex AI
ペットのアート生成(Nano Banana 2)と4Kアップスケール(Imagen 4)
Firebase App Hosting
AI TRPG の配信
Cloud Run
生成API・受注ワーカー
Cloud Run Jobs
リプレイのショート動画を Remotion で書き出し
Cloud Tasks
決済後の印刷処理を非同期に実行
Firestore
機能の公開範囲・AIの停止スイッチ・回数制限
PostgreSQL
シナリオ・マルチプレイの部屋
Cloud Storage
画像はバイト列で形式を判定してから保存
Secret Manager
鍵はコードにもログにも出さない

OPERATIONS

一人でも、安全に運用する

費用を呼び出しごとに記録

AIの呼び出しごとにトークンと費用を記録し、モデルの単価表で集計します。

実行時のスイッチ

新機能の公開範囲(停止/管理者だけ/全員)とAIの停止を、デプロイなしで切り替えます。

回数制限

スライディングウィンドウで数え、IPは鍵付きハッシュにしてから保存します。

設計判断を記録

AI TRPG だけで78件の設計判断を、背景と理由ごとに文書で残しています。

生成AIを組み込んだ開発のご相談も承っています。

お問い合わせ