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 의 운영자 편집은 새 system_settings.llm.openai_* 행을 씀. Resolver 가 둘 다 검사하며 provider 별 행이 우선.
환경 변수
| Var | Default | Notes |
|---|---|---|
ONGRID_OPENAI_API_KEY | — | 비어 있음 = 카탈로그에서 provider 제거 |
ONGRID_OPENAI_MODEL | gpt-5.4 | 레거시 단일 모델 노브; openai_default_model 행이 비었을 때 기본 모델로 존중 |
ONGRID_OPENAI_BASE_URL | https://api.openai.com/v1 | Azure / OpenAI 호환 relay 용 오버라이드 |
"default model" 트립 와이어
OpenAI 에 모델 관련 설정 키가 두 개:
openai_model— 레거시 단일 모델 행. provider 별 확장 이전.openai_default_model— 새 "카탈로그의 기본 모델" 행, 다른 모든 provider 가 사용하는 것과 매치.
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 에 쓴 관리자가 2026 업그레이드 후 기본 을 잃지 않는 이유 — 읽기 경로가 여전히 존중.
기본 카탈로그
박스 그대로 모델 picker 는 세 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 호환 relay (Azure OpenAI, OpenRouter, 로컬 llama.cpp 의 --api 모드, vLLM) 모두 동작 — ONGRID_OPENAI_BASE_URL 를 relay 의 /v1 루트 base 로 설정.
# 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 relay 는 Custom 사용
단일 ONGRID_OPENAI_BASE_URL 노브는 OpenAI 와 OpenAI 호환 relay 를 openai provider 슬롯을 통해 동시에 실행할 수 없음을 의미. 대신 Custom 을 relay 에 사용 — 정확히 이를 위한 병렬 슬롯.
OpenAI 를 기본으로 만들기
ONGRID_LLM_DEFAULT_PROVIDER=openai또는 /settings/llm → Default provider.
특이점
- Function calling — assistant 메시지의 flat
tool_calls배열. Ongrid 도구 디스패처가 이 형태 기대; 다른 provider 어댑터가 이로 번역. - Streaming — OpenAI 의
data: [DONE]센티넬은 eino 어댑터가 소비; provider 와 무관하게Generate에서 단일*schema.Message또는Stream에서einoStreamReader 를 얻음.
같이 보기
- Custom (OpenAI-compatible) — relay / 로컬 서버용 두 번째 OpenAI 스타일 슬롯.
- 모델 개요 — provider 카탈로그 조립.
- 라우팅 —
WithProvider("openai").