前回の段階で、VPS上にシステムが立ち上がり、24時間稼働する音声チャットAIが動くところまでできました。
前回の記事はこちらから

しかし、システムが稼働し始めただけで、これが「VPS上である必要がある」ものだとは、正直まだ感じられませんでした。
ここからは、「VPS上である意味」を作り上げていくための改良を重ねていく、2本立ての記事になります。
なぜ「会話の継続」と「検索」を選んだか
まず気になったのは、会話が単発で終わってしまうことでした。
会話自体は成立していて、返答も音声で返ってくるのですが、どこか物足りなさが残ります。普通の一往復のやり取りなら十分かもしれませんが
自分としては、これを日常的に使うことも想定したいと考え
「会話の継続」と「検索」という2つの機能を追加する方針を立てました。
「検索」については、毎回依頼するとコストがかかってしまうので、LLM(AIモデル)自身が必要だと判断した時にだけ使うようにし、なるべく自然な会話を目指したいと考えました。
会話履歴をどう持たせるか、という設計判断
単発のやり取りであれば、履歴を持たせる必要がないので、必然的にデータベースも要らず、シンプルな設計のままで済んでいました。しかし今回の「会話の継続」という要件では、会話しているように、やり取りが連なった形で返答する必要が出てきます。
Tomoyaここで、1つ考えるべきポイントが生まれました。
そこで、3つの選択肢を並べて考えることにしました。
| 選択肢 | メリット | デメリット | 判断 |
|---|---|---|---|
| DBを作って履歴を保存 | 履歴が残り、端末をまたげる | 構成が複雑化し、管理コストも増える | 見送り |
| DBなしで会話を成立させる | 構成がシンプルなまま維持できる | 履歴はブラウザを閉じると消える | 採用 |
| 会話の継続を諦める | 現状のまま変更不要 | やりたかったことが実現できない | 見送り |
AIと相談した上で下した決断は
「データベースを作らずに、会話を成立させる」というものでした。
これを実現するために、ブラウザ側だけで会話の履歴を保持することで、DBを作らずとも会話ができるようにしました。
Tomoyaただし、この設計には制約も生まれます。
1セッションのみの会話しかできないということです。
一度セッションが終わって切れてしまうと、また1から会話が始まることになります。
画面の中でチャットをしている間は、それまでのやり取りを参照しながら答えてくれますが、ブラウザを閉じてしまえば、それで終わりです。
それでも、コストをかけずに、1セッション分は自然な会話の継続ができるのであれば十分だと判断し、この設計で進めることにしました。
Tomoya履歴が消える割り切りは必要ですが、
構成を増やさずに目的を達成できたのは、
個人的にかなり納得感のある落とし所でした。
Grounding(検索連携)という機能を知る
Geminiには、オプションとして「Grounding(検索機能)」を追加できることを知りました。
これをオンにした上で、事前に「必要な時だけ検索する」という権限をInstruction(事前指示)の中で与え、入力の意図を汲み取って検索を使い分けるように設定していきました。
これによって、最新の天気情報などを知りたい時にも、検索を通じて正確に教えてくれるようになり、より日常的に使いやすいシステムに近づいたと感じています。
気になったコスト面を調べてみた

Tomoya検索機能には料金がかかります。
AI Studioの無料プランの API キーでは検索機能自体が「利用不可」となっているため、有料プラン(Tier 1)の API キーを新しく作成する必要がありました。
ここで一番気になったのは、「検索機能」を1回使うと、どのくらいのコストがかかるのかという点です。
調べてみると月単位の無料枠が用意されていて、一定の回数までは追加料金なしで使えることがわかり、少し安心しました。
個人でそこまで頻繁に検索機能を使うことは、現状ではないだろうと予測しているので、実質的にはモデルそのものの利用料だけがかかる、という見立てです。
| 項目 | 内容 |
|---|---|
| 無料プラン | 利用不可(検索機能が使えない) |
| 有料プラン(Tier 1)の無料枠 ▼ | 1か月あたり 5,000 件の検索リクエスト |
| 適用範囲 | すべての Gemini 3.x モデルで共有 |
| 超過分の料金 | 1,000 件あたり 14 USD(1件あたり約 0.014 USD) |
| 別途かかる費用 | モデル利用分の入力・出力トークン料金 |
※料金・無料枠の条件は変更される場合があります。最新情報は公式の料金ページをご確認ください。
- 無料枠は月単位(1か月あたり5,000件)での管理です。日単位ではないため、月初にまとめて使っても問題ありません。
- Gemini 3.x 系すべてで共有されます。複数モデルを使い分けても合計5,000件が上限です。
- 検索機能の無料枠とは別に、通常のトークン課金は発生します。混同しやすいポイントなので表に明記しています。
無料枠は月5,000件。1日あたりに換算すると約160回分になるので、個人利用で使い切るのはなかなか難しい範囲でした。仮に超えても1回あたり約2円(1ドル150円換算)なので、負担は限定的です。
Google AI StudioのAPIキーの支払いが変わります。
- Before: 今までは後払いの従量課金型でAPIキーを利用する事が出来ました。
- After: 10/12~は、前払い式のプリペイドカード方式に変わります。
事前に入金する事でAPI料金を管理でき、止めたくない場合はその都度チャージされる【自動チャージ】も設定可能の様です。
ローカルでの動作確認
この2つの機能、「自然な会話の継続」と「検索」を、Cursorのエージェントに依頼して組み立ててもらい、ローカルで動作確認を行っていきました。

Tomoya「今日の天気は?」と聞いて、正確な答えが返ってきた時は、うまくいっていると感じられて嬉しかったです。
そして、その後も続けて話しかけられるようになっていることも確認できました。

以下のリンクから月額プランを契約すると、初月は半額で利用できます。コストが心配な方でも、最初の1か月は最低10ドルから試せるので、気軽に始めやすいと思います(解約も簡単にできます)。
有料か無料か、VPSだからこその判断
TomoyaローカルでのGroundingは、無事に成功しました。
そのまま VPS にも反映しようかと考えましたが、今回は見送ることにしました。
VPS は常時インターネットに公開されている環境で、それなりのセキュリティリスクを抱えているからです。
| 環境 | Grounding | 判断理由 |
|---|---|---|
| ローカル | オン | 外部に公開されておらず、検証もしやすい |
| VPS | オフ(見送り) | 常時公開環境のため、不要な機能は止めておく |
Grounding は環境変数でオン・オフを切り替えられる作りにしてあるので、必要になったタイミングで有効化すれば十分です。
「必要になるまで機能は止めておく」
シリーズを通して繰り返してきた必要最小限の考え方を、ここでも自然に選べたのが素直に嬉しかったところです。
VPSへの反映
Github Push → pull → 変数を確認 → ビルド/リスタートの4ステップ
これまでと同じように、GitHubを更新し、VPS側でpullして反映し、ブラウザで確認していきました。エラーになることもなく、無事に使えたので良かったです。
Groundingは使えない状態のままですが、チャットの「会話の継続」自体は問題なく機能しており、1セッション内であれば、それまでのやり取りを踏まえた回答をしてくれます。

まとめ・次回予告
これで、会話は続けられるようになりました。ただ、正直に言うと、これはまだ「VPSでなくても実現できる」範囲の改善だったと感じています。
次回は、第2弾として「VPSである意味」を作り上げるために、Discord内でチャットできるシステムへと改良していこうと思います。

Tomoyaここでようやく、VPSだからこそ実現できることに、たどり着けるはずです!
以下のリンクから月額プランを契約すると、初月は半額で利用できます。コストが心配な方でも、最初の1か月は最低10ドルから試せるので、気軽に始めやすいと思います(解約も簡単にできます)。
他のVPSは「さくらインターネットから!」

前回のおすすめ記事はこちらから



VPSを使った24時間稼働システムを作成した記事はこちら



コメント