OpenAI(GPT)
TL;DR
ONGRID_OPENAI_API_KEY=sk-...
ONGRID_OPENAI_MODEL=gpt-5.4 # default
ONGRID_OPENAI_BASE_URL= # optional; OpenAI-compatible relayProvider id:openai。SDK アダプタ:OpenAI Chat Completions (eino-openai クライアント)。
OpenAI は レガシーデフォルト です —— 古い Ongrid デプロイメントは gpt-4o を cfg.OpenAI.Model(cfg.LLM 下ではなくトップレベル構造体 フィールド)として焼き込んで出荷されていました。現行コードは後方互換の ためトップレベルフィールドを保持しています:
// internal/pkg/config/config.go:36
type Config struct {
OpenAI OpenAIConfig
LLM LLMConfig
// ...
}新規インストールはこのレガシーパスから ONGRID_OPENAI_API_KEY を読み ます。/settings/llm での operator 編集は新しい system_settings.llm.openai_* 行に書き込みます。resolver は両方を チェックし、プロバイダーごとの行が勝ちます。
環境変数
| Var | デフォルト | 注記 |
|---|---|---|
ONGRID_OPENAI_API_KEY | — | 空 = プロバイダーをカタログから除外 |
ONGRID_OPENAI_MODEL | gpt-5.4 | レガシー単一モデルつまみ。openai_default_model 行が空のときデフォルトモデルとして尊重される |
ONGRID_OPENAI_BASE_URL | https://api.openai.com/v1 | Azure / OpenAI 互換リレー用オーバーライド |
「デフォルトモデル」のトリップワイヤー
OpenAI には 2 つのモデル関連設定キーがあります:
openai_model—— レガシーの単一モデル行。プロバイダーごと拡張に先行。openai_default_model—— 新しい「カタログ内のデフォルトモデル」行、 他プロバイダーが使うものに合致。
resolver は新しい行を最初に試し、レガシーキーにフォールバック、その後 env にフォールバックします:
// internal/manager/biz/setting/llm.go:181
defaultModel, _, _ := r.svc.Get(ctx, model.CategoryLLM, pk.defaultModel)
if defaultModel == "" && pk.legacyModelKey != "" {
legacy, _, _ := r.svc.Get(ctx, model.CategoryLLM, pk.legacyModelKey)
defaultModel = strings.TrimSpace(legacy)
}これが、2025 年に openai_model に書いた admin が 2026 年アップグレード 後にデフォルトを失わない理由です —— 読み込みパスがそれをまだ尊重します。
デフォルトカタログ
箱から出した状態のモデルピッカーは 3 つの GPT モデルを表示 —— cmd/ongrid/main.go:499 で配線:
Models: dedupeModels(firstNonEmpty(cfg.OpenAI.Model, "gpt-5.4"),
"gpt-5.5", "gpt-5.4", "gpt-5.4-mini"),dedupeModels は、設定済みデフォルトがリスト内で重複してしまった デプロイメント(一部の 2026-05 インストールに当たった gpt-5.4 / gpt-5.4 バグ)を治癒します。
BaseURL オーバーライド
OpenAI 互換リレー(Azure OpenAI、OpenRouter、ローカル llama.cpp の --api モード、vLLM)はすべて動きます —— ONGRID_OPENAI_BASE_URL をリレーの /v1 ルートのベースに設定。
# Azure OpenAI
ONGRID_OPENAI_BASE_URL=https://<resource>.openai.azure.com/openai/deployments/<deployment>
# OpenRouter
ONGRID_OPENAI_BASE_URL=https://openrouter.ai/api/v1
# Local vLLM
ONGRID_OPENAI_BASE_URL=http://localhost:8000/v1本物の OpenAI と並行して使う非 Azure リレーには Custom を使ってください
単一の ONGRID_OPENAI_BASE_URL つまみは、本物の OpenAI と OpenAI 互換 リレーを openai プロバイダースロット経由で同時に走らせられないことを 意味します。代わりに Custom を使ってください —— まさに これのための並行スロットです。
OpenAI をデフォルトにする
ONGRID_LLM_DEFAULT_PROVIDER=openaiまたは /settings/llm → Default provider。
クセ
- 関数呼び出し —— assistant メッセージ上のフラット
tool_calls配列。Ongrid ツール dispatcher はこの形を期待します。他プロバイダーの アダプタがこれに翻訳します。 - ストリーミング —— OpenAI の
data: [DONE]センチネルは eino アダプタ が消費します。プロバイダーに関わらず、Generateから単一の*schema.Message、またはStreamからeinoStreamReader を得ます。
関連
- Custom (OpenAI 互換) —— リレー / ローカルサーバー用の 2 番目の OpenAI 形式スロット。
- モデル概要 —— プロバイダーカタログの組み立て。
- ルーティング ——
WithProvider("openai")。