本ページの調整値は .env ではなく、アプリ内の App Settings 画面(サイドバー下部の
スライダーアイコン)で設定し、app_settings.jsonc に保存されます。.env に残った値は
無視され、起動ログにキー名が 1 度だけ列挙されます。既存の設定を引き継ぐには
chatwalaau settings migrate --write を実行してください。機能の有効化ゲートと
シークレットは .env のままです。
詳細は 設定 -> アプリケーション設定。
モデルと推論
チャットモデルは モデルオファリングカタログ(model_offerings.jsonc)で
のみ設定します。レガシーのプロバイダ別変数(AZURE_OPENAI_MODELS,
ANTHROPIC_MODELS, OPENAI_MODELS, FOUNDRY_MODELS, MODEL_MAX_CONTEXT_TOKENS,
ANTHROPIC_HOSTING、およびプロバイダ別のチャット endpoint/key 変数)は
削除されました。以下のプロバイダ別セクションに出てくる *_MODELS 等のスニペット
は、各 offering に必要な値を示すものです。それらの値はカタログの offering に
記述してください。共有の Azure 認証変数と OPENAI_API_KEY は保持されます。
マルチモデル切替
model_offerings.jsonc に複数の offering を記述し、会話の途中で切り替えられます:
- 入力欄の上に モデルセレクタが表示(モデルが 1 つだけのときは非表示)
- セッションごとのモデル選択が再読込後も保持
- 別モデルで再生成 -- Regenerate のシェブロンから選択
- 各アシスタントメッセージに生成したモデルを表示
- すべてのモデルが同じツール・Skills・MCP を共有
モデルごとのコンテキスト上限は、各 offering の context_window フィールドで
指定します(未指定時は 128000 が既定)。入力欄上のコンテキストバーは、モデル
切替時に自動更新されます。
モデルオファリングカタログ
すべてのチャットモデルを 1 つの JSONC ファイルで管理します。MODEL_OFFERINGS_FILE
に指定します(既定 model_offerings.jsonc、作業ディレクトリ基準で解決)。これが
モデルルーティングの単一の情報源です。カタログが無い非 demo デプロイは、
起動時に警告を出してそのまま起動し(アプリ内の App Settings 画面で修正可能)、
チャットは利用できず、実行しようとした時点で chatwalaau models add / App Settings
画面を案内するメッセージを返します(DEMO_MODE=true はカタログ無しで動作)。
各 offering が 1 つのモデルを記述します:
{
"auth_profiles": { "gateway": { "api_key_env": "GATEWAY_API_KEY" } },
"offerings": [
// 既定のチャットモデル(chat offering が最低 1 つ必須)
{
"id": "gpt-5.2",
"provider": "azure-openai",
"model_ref": "gpt-5.2", // 実際のデ プロイメント名
"endpoint": "${AZURE_OPENAI_ENDPOINT}",
"default": true,
"context_window": 400000
},
// Anthropic 互換ゲートウェイ経由の Claude(offering 単位の hosting)
{
"id": "claude-opus-4-8",
"provider": "anthropic",
"hosting": "foundry",
"model_ref": "claude-opus-4-8",
"base_url": "https://my-gateway.example.com/anthropic",
"auth_profile": "gateway"
},
// 非 OpenAI 系の Foundry ファミリー: OpenAI の推論コントロールを無効化
{
"id": "deepseek-v4",
"provider": "foundry",
"model_ref": "my-deepseek-deployment",
"endpoint": "${FOUNDRY_PROJECT_ENDPOINT}",
"family": "bare"
},
// 任意: embeddings / image / live offering は各 1 つまで
{
"id": "embeddings",
"provider": "azure-openai",
"model_ref": "text-embedding-3-small",
"endpoint": "${AZURE_OPENAI_ENDPOINT}",
"operations": ["embeddings"]
}
]
}
利点:
- ゲートウェイ。 複数のモデルファミリーを提供する 1 つのエンドポイントを、
endpoint/base_urlを共有する複数 offering として表現できます(新しい プロバイダ設定は不要)。 - ホスティングの混在。 direct の Claude と Foundry ホストの Claude を 1 つの
インスタンスで併用できます(offering 単位の
hosting)。グローバルなANTHROPIC_HOSTINGでは不可能でした。 - チャットモデルは 1 つ必須、それ以外は任意。
chatoffering は最低 1 つ必須。embeddings/image/liveは任意。複数のチャットモデルがある場合、default: true(無ければ先頭)が既定として使われます。
ポイント:
- 秘密情報はファイルに書きません。 環境変数を名前で参照(
api_key_env)するか、 名前付きauth_profilesエントリ、または共有 Entra ID レーンを使います。endpoint/base_urlの${VAR}は環境から展開されます。 familyはゲートウェイモデルが提示する生成オプションを上書きします:openai-reasoning(effort + verbosity)、anthropic-adaptive、bare(生成 コントロールなし。非推論のゲートウェイモデル向け)。family は provider と整合して いる必要があります(azure-openai/openai/foundryはopenai-reasoningまたはbare、anthropicはanthropic-adaptiveまたはbare)。それ以外の 組み合わせは起動時に拒否されます。省略するとプロバイダが推論します。- 不正なカタログは起動時に即座に失敗し、問題の offering 名を示します。 タイプミスでモデルが黙って消えることはありません。
DEMO_MODEは常にレガシーレーンを使います。レガシーの*_MODELS変数は カタログを後継として非推奨になりました(カタログが無い場合は引き続き サポートされます)。- カタログの不変条件(CLI・GUI・サーバのいずれもが強制):
chatoffering は 最低 1 つ、その中で既定はちょうど 1 つ。id は一意。embeddings、image、liveは各 1 つまで。liveoffering はazure-openaiプロバイダを使い、他の操作と 兼用できません。hostingはanthropicプロバイダにのみ適用されます。liveoffering は Live 会話を有効にする GPT-Live の 音声デプロイです。
デプロイが機能を提供できない場合
一部の機能はモデルのデプロイが供給しており、使えるかどうかはモデルではなく そのデプロイの作り方で決まります。