はじめに
ChatGPTって便利なんですが、毎回「これ送って大丈夫かな?」って内容を気にしながら使うの、ちょっと気疲れしませんか?
わたしは「誰にも気にせず使える、自分専用のチャットエージェント欲しいな〜」って、ずっと思ってました。
そこで今回、Azure OpenAI の gpt-4o と、Vercel の AI SDK を使って、自分だけの Local Chat Agent アプリを作ってみました。
Azure OpenAI のエンドポイントさえあれば、すぐに使い始められます。
コードは下に公開しているので、よければ気軽に試してみてください〜
Azure OpenAI でモデルをデプロイする
Azure アカウントを作成
以下のページから Azure アカウントを作成します。
初回登録時には 30 日間・$200 分のクレジットが無料でもらえるため、気軽に試すことができます。
Azure OpenAI のリソースを作成・デプロイ
以下の手順に従ってリソースを作成します。
1. ログイン後「Azure OpenAI」に移動
2. 「作成」を選択
3. 「リソースグループ」「リージョン」「名前」「価格レベル」を設定
4. ネットワークを選択
5. Tags を設定(任意)
6. 内容を確認し「作成」を選択
7. 「リソースに移動」を選択
8. 作成したリソースを開く
モデルをデプロイ
以下の手順に従ってモデルをデプロイします。
1. 「AI Azure Foundry」を開く
2. メニューから「デプロイ」を選択
3. 「モデルのデプロイ」を選択
4. 「gpt-4o」を選択
5. デプロイ名を設定しデプロイ
6. 完了
エンドポイントとキーはあとで使うので、このページを開いておきます。
チャットアプリをセットアップする
アプリを Git clone
ここからコードを clone して、README.md
の手順に従ってセットアップしていきます。
bun が必要なので、インストールしていない方はここでインストールしておきます。
curl -fsSL https://bun.sh/install | bash
依存パッケージをインストール
clone してきたディレクトリに移動して、依存パッケージをインストールします。
cd local-chat-agent
bun install
環境変数をセット
.env.local を作成して環境変数をセットします。
cp .env.example .env.local
先ほどデプロイしたエンドポイントのターゲット URI が
https://{AZURE_RESOURCE_NAME}.openai.azure.com/openai/deployments/{AZURE_DEVELOPMENT_NAME}/chat/completions?api-version={OPENAI_API_VERSION}
の形をしていると思います。
今回の例では
https://test-ai-sample.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2025-01-01-preview
なので、環境変数は以下のようになります。
AZURE_OPENAI_API_KEY
はエンドポイントの「キー」になります。
# Require
# ターゲット URIs
# https://{AZURE_RESOURCE_NAME}.openai.azure.com/openai/deployments/{AZURE_DEVELOPMENT_NAME}/chat/completions?api-version={OPENAI_API_VERSION}
AZURE_RESOURCE_NAME = test-ai-sample
AZURE_DEVELOPMENT_NAME = gpt-4o
OPENAI_API_VERSION = 2025-01-01-preview
# API キー
AZURE_OPENAI_API_KEY = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
アプリを起動
bun run dev
http://localhost:3123 で立ち上がります。以下のように見えれば OK です。
現状ではテキストメッセージとファイル添付に対応しています。
おまけ:Langfuse を使う
Langfuse を導入すると、リクエストのログを視覚的に管理できるようになります。
セッションごとに送信した内容と返ってきた応答を確認できるので、過去の会話を遡ることが可能です。
将来的には、Langfuse のログを活用して「会話履歴」機能を実装する予定です。
まとめ
今回は、Azure OpenAI の gpt-4o と Vercel の AI SDK を使って作成した、「自分だけの Local Chat Agent」を紹介しました。
Azure OpenAI では、送信されたデータがモデルのトレーニングや改善に利用されることはなく、処理後すぐに破棄されるため、安心して利用できます。
「自分専用の安全なチャットエージェントが欲しい!」という方は、ぜひ試してみてください。