Appearance
開発記録(雑)
RealtimeAPI切り替えでサーバーが必要になりました。
GoogleCloudRunというサービスでデプロイしました。
Cloud Run サーバは:
Realtime 用エフェメラルキー発行エンドポイント
/realtime/secretRAG プロキシ
/rag(VectorStore:vs_68abce2bdb9481919c6eea19312cca63固定)を備えたサーバとして動作します
Service URL: https://realtime-cloudrun-bridge-867568173731.asia-northeast1.run.app
サーバーデプロイコマンド
html
gcloud run deploy realtime-cloudrun-bridge `
--source . `
--region asia-northeast1 `
--allow-unauthenticated `
--set-env-vars "OPENAI_API_KEY=$env:OPENAI_API_KEY,RESPONSES_MODEL=gpt-4o-mini,RAG_MAX_RESULTS=5,VECTOR_STORE_IDS=vs_68abce2bdb9481919c6eea19312cca63"主要ログの表示色
#90ee90
- [x] トークログ
- [ ] マイクオンオフ使用
- [x] RAG機能とオンオフ機能
- [x] TTSオンオフ機能
- [x] メモリリセット機能
- [ ] 開幕音声/アイドル音声
- [x] モデル選択とボイスモデル選択
- [x] Statusログ
- [x] デバッグログをローカルで保存する
Realtimeで使えるボイスモデル記載ドキュメント
https://platform.openai.com/docs/api-reference/realtime-beta-sessions/create-transcription
詳細画像表示機能はマーカー(Hotspot)をクリックで表示、任意の場所をクリックで非表示ができます。
- Tourmakerで各シーンを作成するときに適用したパノラマ画像名を自動でアイテム名に適用
- 画像名に対応するプロンプトをそれぞれYamlで設定
- マイクオン時とパノラマ画像切り替え時にシーン上でアクティブなアイテム名から対応するプロンプトを自動でAIが読み込みユーザーが見ているシーンを認識する
Statusログの取得
Statusログは Quest 実機の以下に保存されます。
/sdcard/Android/data/com.Xseeds.PanoramaViewerDemo/files/status_log.txtローテーション済みの旧ログは status_log.txt.prev に保存されます。
1. 準備
- Android Platform Tools をインストール(
adb versionが実行できればOK) - Meta Quest を 開発者モード に設定し、PCとUSB接続
- ヘッドセット内で「USBデバッグを許可」
2. 保存先フォルダでコマンドプロンプトを開く
ログをコピーしたい自分のPC上の保存先フォルダをエクスプローラで開き、
- 空白部分を Shift + 右クリック → 「PowerShellウィンドウをここで開く」 または 「コマンドプロンプトをここで開く」
これで保存先がカレントディレクトリになります。
3. 接続確認
bash
adb devicesdevice と表示されれば接続成功。
4. ログを取得
保存先フォルダで以下をそのままコピペして実行します。
bash
adb pull "/sdcard/Android/data/com.Xseeds.PanoramaViewerDemo/files/status_log.txt"- このフォルダに
status_log.txtがコピーされます。 - 旧ログも必要な場合は:
bash
adb pull "/sdcard/Android/data/com.Xseeds.PanoramaViewerDemo/files/status_log.txt.prev"保存先パスは各自の環境に依存します。自分のPCで開いたフォルダがそのまま保存先になるよう、必ずそのフォルダでコマンドを実行してください。
QuestへのRealtime向けプロンプト導入コマンド
html
adb push app_config.yaml /sdcard/Android/data/com.Xseeds.PanoramaViewerDemo/files/
adb push ScenePrompt.yaml /sdcard/Android/data/com.Xseeds.PanoramaViewerDemo/files/- [x] シーン設計整理
- [x] 収集した情報の詳細確認する手段の実装
- [x] トークセッションのリセット機能
- [x] UI設計の整理
AI model
Voice model
Talk Log/History Reset
Session Reset
- [x] UIをハントラで操作できるようにする
- [ ] UIの各機能の実装
Settingボタン→SettingMenuをアクティブ
TalkLogボタン→TalkLogMenuをアクティブ
Infoボタン→InfoMenuをアクティブ
Backボタン→MainMenuをアクティブ

README的なもの作りますが一旦簡易的に操作方法以下に記載します。
Aボタンでマイクオンオフ切替です、マイクオンの時に話しかけて下さい。
右コントローラースティック押し込みでUIメニューがコントローラー周りに表示されます。
Setting→モデル選択
TalkLog→会話のログ(表示していないときのログが残らないので修正予定)
Info→収集した情報を確認できます。NextInfoボタンで表示する情報の切り替え。
SessionReset→AIとのトークセッションをリセットして新しい記憶で始めることができます。
SceneReset→シーンをリセットします。アプリの再起動と同義です。情報収集機能のリセットを兼ねます。交代するときとかに使う想定。
シーン上にある赤いポインター→トリガークリックで情報画像が表示されます。任意の場所もう一回トリガークリックで非表示。一回目でInfoUIに情報として追加され、自動で非表示になる。
ユーザーがどこにいて何を見ているのか理解してくれます。 プロンプトは調整中なので変な回答するかもです。
プロンプトは添付Yamlをクエストにダウンロードお願いします。
格納フォルダをターミナルで開いて以下コマンドでインストール。
11/11
SessionReset後にPromptを再度読み込ませないとシミュレーションに沿った回答をしてこない
InfoItem
ギャラリービュー形式でItem感を出したらいいかも
最適なプロンプト調査して調整https://cookbook.openai.com/examples/realtime_prompting_guide
起動時ガイダンス(GoogleTTS)
TTS分割再生(初回生成の時間短縮)
ステータスUIの見た目改善
StatusUI整えたい
GeminiRealtimeテスト
Author: 村井 | Source:
村井\uPano×MetaQuest3でパノラマビューアプリデモ開発\v1 8\開発記録(雑) 2a8aba435ee780e78081dbe20c7e6431.md