diff --git a/README.md b/README.md index e89d6873..1ccc96d0 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,19 @@ ANTHROPIC_API_KEY=your-key ANTHROPIC_BASE_URL=https://your-gateway.example.com/anthropic ``` +The `openai` provider likewise supports an alternative, OpenAI-compatible +endpoint (for example a self-hosted or proxied gateway) via `OPENAI_BASE_URL`, +set alongside `OPENAI_API_KEY`. This is useful for OpenAI-compatible gateways +that expose the Responses API, since the `openai` provider routes tool calls +through the Responses API (`/v1/responses`) rather than chat completions: + +```bash +OPENWIKI_PROVIDER=openai +OPENAI_API_KEY=your-key +OPENAI_BASE_URL=https://your-gateway.example.com/v1 +OPENWIKI_MODEL_ID=your-model-name +``` + ### OpenAI-compatible endpoints The `openai-compatible` provider targets any OpenAI-compatible chat-completions diff --git a/src/constants.ts b/src/constants.ts index d6a8b4cb..b9f151e3 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -5,6 +5,7 @@ export const FIREWORKS_API_KEY_ENV_KEY = "FIREWORKS_API_KEY"; export const NEBIUS_API_KEY_ENV_KEY = "NEBIUS_API_KEY"; export const NVIDIA_API_KEY_ENV_KEY = "NVIDIA_API_KEY"; export const OPENAI_API_KEY_ENV_KEY = "OPENAI_API_KEY"; +export const OPENAI_BASE_URL_ENV_KEY = "OPENAI_BASE_URL"; export const OPENAI_COMPATIBLE_API_KEY_ENV_KEY = "OPENAI_COMPATIBLE_API_KEY"; export const OPENAI_COMPATIBLE_BASE_URL_ENV_KEY = "OPENAI_COMPATIBLE_BASE_URL"; export const OPENAI_CHATGPT_ACCESS_TOKEN_ENV_KEY = @@ -255,6 +256,7 @@ export const PROVIDER_CONFIGS: Record = { }, openai: { apiKeyEnvKey: OPENAI_API_KEY_ENV_KEY, + baseUrlEnvKey: OPENAI_BASE_URL_ENV_KEY, label: "OpenAI", modelOptions: OPENAI_MODEL_OPTIONS, }, diff --git a/src/env.ts b/src/env.ts index 13f6c89c..9a9aa743 100644 --- a/src/env.ts +++ b/src/env.ts @@ -19,6 +19,7 @@ import { normalizeProvider, NVIDIA_API_KEY_ENV_KEY, OPENAI_API_KEY_ENV_KEY, + OPENAI_BASE_URL_ENV_KEY, OPENAI_CHATGPT_ACCESS_TOKEN_ENV_KEY, OPENAI_CHATGPT_ACCOUNT_ID_ENV_KEY, OPENAI_CHATGPT_EMAIL_ENV_KEY, @@ -87,6 +88,7 @@ export const MANAGED_ENV_KEYS = [ NEBIUS_API_KEY_ENV_KEY, NVIDIA_API_KEY_ENV_KEY, OPENAI_API_KEY_ENV_KEY, + OPENAI_BASE_URL_ENV_KEY, OPENAI_CHATGPT_ACCESS_TOKEN_ENV_KEY, OPENAI_CHATGPT_REFRESH_TOKEN_ENV_KEY, OPENAI_CHATGPT_EXPIRES_AT_ENV_KEY, @@ -381,6 +383,7 @@ function isNonSecretDiagnosticKey(key: string): boolean { key === OPENWIKI_PROVIDER_RETRY_ATTEMPTS_ENV_KEY || key === OPENWIKI_OPENROUTER_PROVIDER_ONLY_ENV_KEY || key === ANTHROPIC_BASE_URL_ENV_KEY || + key === OPENAI_BASE_URL_ENV_KEY || key === OPENAI_COMPATIBLE_BASE_URL_ENV_KEY || key === BEDROCK_AWS_REGION_ENV_KEY || key === GOOGLE_CLOUD_PROJECT_ENV_KEY ||