diff --git a/.github/workflows/e2e_tests_providers.yaml b/.github/workflows/e2e_tests_providers.yaml index b4ffc5d890..7dd0457689 100644 --- a/.github/workflows/e2e_tests_providers.yaml +++ b/.github/workflows/e2e_tests_providers.yaml @@ -17,13 +17,13 @@ jobs: # Expected default LLM for Behave (matches tests/e2e/configs/run-.yaml). # | environment | model_id | provider_id | # |-------------|-------------------------------------|---------------| - # | azure | gpt-4o-mini | azure | + # | azure | gpt-5.6-luna | azure | # | vertexai | google/gemini-2.5-flash | google-vertex | # | watsonx | meta-llama/llama-3-3-70b-instruct | watsonx | # | bedrock | deepseek.v3-v1:0 | aws-bedrock | include: - environment: azure - e2e_default_model: gpt-4o-mini + e2e_default_model: gpt-5.6-luna e2e_default_provider: azure - environment: vertexai e2e_default_model: google/gemini-2.5-flash diff --git a/Makefile b/Makefile index b9b172b45e..9cb3a525fb 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ start-llama-stack-container: build-llama-stack-image ## Start llama-stack contai -e OPENAI_API_KEY \ -e BRAVE_SEARCH_API_KEY \ -e TAVILY_SEARCH_API_KEY \ - -e E2E_OPENAI_MODEL=$${E2E_OPENAI_MODEL:-gpt-4o-mini} \ + -e E2E_OPENAI_MODEL=$${E2E_OPENAI_MODEL:-gpt-5.6-luna} \ -e TENANT_ID=$${TENANT_ID:-} \ -e CLIENT_ID=$${CLIENT_ID:-} \ -e CLIENT_SECRET \ diff --git a/README.md b/README.md index ad8d77083c..5201d44ae8 100644 --- a/README.md +++ b/README.md @@ -243,7 +243,7 @@ __Note__: Support for individual models is dependent on the specific inference p | OpenAI | gpt-3.5-turbo, gpt-4 | No | remote::openai | | | RHOAI (vLLM) | meta-llama/Llama-3.2-1B-Instruct | Yes | remote::vllm | [1](tests/e2e-prow/rhoai/configs/run.yaml) | | RHEL AI (RHAIIS/vLLM) | meta-llama/Llama-3.1-8B-Instruct | Yes | remote::vllm | [1](tests/e2e/configs/run-rhelai.yaml) [2](tests/e2e/configs/run-rhaiis.yaml) | -| Azure | gpt-5, gpt-5-mini, gpt-5-nano, gpt-4o-mini, o3-mini, o4-mini, o1 | Yes | remote::azure | [1](examples/azure-run.yaml) | +| Azure | gpt-5, gpt-5-mini, gpt-5-nano, gpt-5.6-luna, o3-mini, o4-mini, o1 | Yes | remote::azure | [1](examples/azure-run.yaml) | | Azure | gpt-5-chat, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1-mini | No or limited | remote::azure | | | VertexAI | google/gemini-2.0-flash, google/gemini-2.5-flash, google/gemini-2.5-pro [^1] | Yes | remote::vertexai | [1](examples/vertexai-run.yaml) | | WatsonX | meta-llama/llama-3-3-70b-instruct | Yes | remote::watsonx | [1](examples/watsonx-run.yaml) | @@ -1193,12 +1193,12 @@ will be returned. "model_type": "embedding" }, { - "identifier": "openai/gpt-4o-mini", + "identifier": "openai/gpt-5.6-luna", "metadata": {}, "api_model_type": "llm", "provider_id": "openai", "type": "model", - "provider_resource_id": "gpt-4o-mini", + "provider_resource_id": "gpt-5.6-luna", "model_type": "llm" }, { diff --git a/docker-compose-library.yaml b/docker-compose-library.yaml index 2e3d948cee..8c7020053d 100755 --- a/docker-compose-library.yaml +++ b/docker-compose-library.yaml @@ -29,7 +29,7 @@ services: - TAVILY_SEARCH_API_KEY=${TAVILY_SEARCH_API_KEY:-} # OpenAI - OPENAI_API_KEY=${OPENAI_API_KEY} - - E2E_OPENAI_MODEL=${E2E_OPENAI_MODEL:-gpt-4o-mini} + - E2E_OPENAI_MODEL=${E2E_OPENAI_MODEL:-gpt-5.6-luna} # Azure Entra ID credentials (AZURE_API_KEY is obtained dynamically in Python) - TENANT_ID=${TENANT_ID:-} - CLIENT_ID=${CLIENT_ID:-} diff --git a/docker-compose.yaml b/docker-compose.yaml index aa4631ad65..271efca7e9 100755 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -27,7 +27,7 @@ services: - TAVILY_SEARCH_API_KEY=${TAVILY_SEARCH_API_KEY:-} # OpenAI - OPENAI_API_KEY=${OPENAI_API_KEY} - - E2E_OPENAI_MODEL=${E2E_OPENAI_MODEL:-gpt-4o-mini} + - E2E_OPENAI_MODEL=${E2E_OPENAI_MODEL:-gpt-5.6-luna} # Azure Entra ID credentials (AZURE_API_KEY is passed via provider_data at request time) - TENANT_ID=${TENANT_ID:-} - CLIENT_ID=${CLIENT_ID:-} diff --git a/docs/config.html b/docs/config.html index a13e49fb11..58f60683ec 100644 --- a/docs/config.html +++ b/docs/config.html @@ -1016,7 +1016,7 @@

InferenceConfiguration

context_windows object - Map of fully-qualified model identifier (e.g., “openai/gpt-4o-mini”) + Map of fully-qualified model identifier (e.g., “openai/gpt-5.6-luna”) to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered diff --git a/docs/config.json b/docs/config.json index ec2bccfa61..f7408f10e6 100644 --- a/docs/config.json +++ b/docs/config.json @@ -885,7 +885,7 @@ "minimum": 0, "type": "integer" }, - "description": "Map of fully-qualified model identifier (e.g., \"openai/gpt-4o-mini\") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger.", + "description": "Map of fully-qualified model identifier (e.g., \"openai/gpt-5.6-luna\") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger.", "title": "Per-model context window sizes (tokens)", "type": "object" }, diff --git a/docs/config.md b/docs/config.md index e7ebc5f902..373bc22a6b 100644 --- a/docs/config.md +++ b/docs/config.md @@ -336,7 +336,7 @@ Inference configuration. |------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | default_model | string | Identification of default model used when no other model is specified. | | default_provider | string | Identification of default provider used when no other model is specified. | -| context_windows | object | Map of fully-qualified model identifier (e.g., "openai/gpt-4o-mini") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger. | +| context_windows | object | Map of fully-qualified model identifier (e.g., "openai/gpt-5.6-luna") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger. | | providers | array | Unified-mode synthesis input (Decision S5): a high-level, backend-agnostic list of inference providers the synthesizer expands into Llama Stack provider entries. Lives at the configuration root so it survives a future backend change. A non-empty list signals unified mode. Empty (the default) leaves legacy/remote modes unaffected. The sibling default_model / default_provider keep their query-time routing meaning and are independent of this list. | diff --git a/docs/container_orchestration.md b/docs/container_orchestration.md index 652f09eb25..4cf586b4d6 100644 --- a/docs/container_orchestration.md +++ b/docs/container_orchestration.md @@ -311,7 +311,7 @@ See [OKP Guide](okp_guide.md) for detailed setup instructions. #### Other Configuration -- `E2E_OPENAI_MODEL`: OpenAI model for E2E tests (default: `gpt-4o-mini`) +- `E2E_OPENAI_MODEL`: OpenAI model for E2E tests (default: `gpt-5.6-luna`) - `LLAMA_STACK_LOGGING`: Enable debug logging in llama-stack - `FAISS_VECTOR_STORE_ID`: FAISS vector store identifier - `LITELLM_DROP_PARAMS`: Drop unsupported params in LiteLLM (default: `true`) diff --git a/docs/deployment_guide.md b/docs/deployment_guide.md index 4221f20b31..51324ed536 100644 --- a/docs/deployment_guide.md +++ b/docs/deployment_guide.md @@ -535,7 +535,7 @@ cp examples/lightspeed-stack-lls-library.yaml lightspeed-stack.yaml DEBUG Set provider/model configuration for openai/openai/gpt-4o to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/gpt-4o-2024-08-06 to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/gpt-4o-audio-preview to 0 utils.py:45 - DEBUG Set provider/model configuration for openai/openai/gpt-4o-mini to 0 utils.py:45 + DEBUG Set provider/model configuration for openai/openai/gpt-5.6-luna to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/o1 to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/o1-mini to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/o3-mini to 0 utils.py:45 @@ -1137,12 +1137,12 @@ Please note that actual response from the service is larger. It was stripped dow "model_type": "llm" }, { - "identifier": "openai/gpt-4o-mini", + "identifier": "openai/gpt-5.6-luna", "metadata": {}, "api_model_type": "llm", "provider_id": "openai", "type": "model", - "provider_resource_id": "gpt-4o-mini", + "provider_resource_id": "gpt-5.6-luna", "model_type": "llm" }, { diff --git a/docs/design/conversation-compaction/conversation-compaction-spike.md b/docs/design/conversation-compaction/conversation-compaction-spike.md index b29671a976..426ad86a17 100644 --- a/docs/design/conversation-compaction/conversation-compaction-spike.md +++ b/docs/design/conversation-compaction/conversation-compaction-spike.md @@ -501,7 +501,7 @@ To verify: check that the docs site renders correctly and OpenAPI spec validates # PoC results -A proof-of-concept was built in lightspeed-stack and tested against a real Llama Stack + OpenAI (gpt-4o-mini) setup. +A proof-of-concept was built in lightspeed-stack and tested against a real Llama Stack + OpenAI (gpt-5.6-luna) setup. ## What the PoC does diff --git a/docs/design/conversation-compaction/conversation-compaction.md b/docs/design/conversation-compaction/conversation-compaction.md index 0e23e7a1e8..90a70062ab 100644 --- a/docs/design/conversation-compaction/conversation-compaction.md +++ b/docs/design/conversation-compaction/conversation-compaction.md @@ -136,9 +136,9 @@ Context window sizes are configured per model in YAML: ``` yaml inference: - default_model: openai/gpt-4o-mini + default_model: openai/gpt-5.6-luna context_windows: - openai/gpt-4o-mini: 128000 + openai/gpt-5.6-luna: 128000 openai/gpt-4o: 128000 ``` @@ -369,7 +369,7 @@ Example config files go in `examples/`. | Trigger turn | 1 LLM call (or 413) | 2 LLM calls (summarize + respond) | | Post-trigger turn | 1 LLM call | 1 LLM call (no change) | -Compaction adds latency only on the trigger turn. In PoC testing, compaction turns took 14-40 seconds vs 9-20 seconds for normal turns (gpt-4o-mini). +Compaction adds latency only on the trigger turn. In PoC testing, compaction turns took 14-40 seconds vs 9-20 seconds for normal turns (gpt-5.6-luna). # Open Questions for Future Work diff --git a/docs/design/llama-stack-config-merge/llama-stack-config-merge-spike.md b/docs/design/llama-stack-config-merge/llama-stack-config-merge-spike.md index 27d02a26ae..5eaea10ac4 100644 --- a/docs/design/llama-stack-config-merge/llama-stack-config-merge-spike.md +++ b/docs/design/llama-stack-config-merge/llama-stack-config-merge-spike.md @@ -195,7 +195,7 @@ also stay under `llama_stack.config` whenever they ship as high-level keys Literal values (`openai`, `azure`, `sentence_transformers`, `vertexai`, `watsonx`, `vllm_rhaiis`, `vllm_rhel_ai`). They are vendor identifiers that both Llama Stack (`provider_type: remote::openai`) and Pydantic AI -(model-string prefixes such as `openai:gpt-4o-mini`) recognise. Each +(model-string prefixes such as `openai:gpt-5.6-luna`) recognise. Each backend-specific synthesizer translates the canonical LCORE vocabulary to its target shape; we do not adopt either backend's surface verbatim. @@ -920,7 +920,7 @@ Summary of validation: from production design"). - **Vacuous safety-shield validation in the library-mode PoC**. The `native_override` used during PoC validation registered `llama-guard` - with `provider_shield_id: openai/gpt-4o-mini` — an OpenAI chat model, + with `provider_shield_id: openai/gpt-5.6-luna` — an OpenAI chat model, not a Llama Guard checkpoint. The "`native_override` took effect" evidence row above only shows that the key landed in the synthesized output; it does **not** show that a real safety shield gated any @@ -1163,7 +1163,7 @@ curl -sSL -o /tmp/lcore-836-poc/lightspeed-stack-unified-library.yaml \ # 1. Start LCORE in library mode with the unified config export OPENAI_API_KEY= -export E2E_OPENAI_MODEL=gpt-4o-mini +export E2E_OPENAI_MODEL=gpt-5.6-luna uv run lightspeed-stack \ -c /tmp/lcore-836-poc/lightspeed-stack-unified-library.yaml diff --git a/docs/design/llama-stack-config-merge/llama-stack-config-merge.md b/docs/design/llama-stack-config-merge/llama-stack-config-merge.md index 59d9a5480e..7ef72c51c5 100644 --- a/docs/design/llama-stack-config-merge/llama-stack-config-merge.md +++ b/docs/design/llama-stack-config-merge/llama-stack-config-merge.md @@ -243,12 +243,12 @@ Top-level high-level sections plus a sub-section under the existing # with a `providers:` list (Decision S5). Backend-agnostic: it stays at the # root, not under `llama_stack`, so it survives a future backend change. inference: - default_model: gpt-4o-mini # existing — query-time default routing + default_model: gpt-5.6-luna # existing — query-time default routing default_provider: openai # existing — query-time default routing providers: # NEW — high-level provider setup (synthesis input) - type: openai # mapped to remote::openai api_key_env: OPENAI_API_KEY - allowed_models: [gpt-4o-mini] + allowed_models: [gpt-5.6-luna] - type: sentence_transformers llama_stack: @@ -560,7 +560,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] # ... more ... ``` @@ -601,7 +601,7 @@ llama_stack: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] # ... rest of run.yaml content under native_override ... # ... rest of lightspeed-stack.yaml content ... ``` @@ -624,7 +624,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.OPENAI_MODEL:=gpt-5.6-luna}"] - provider_id: sentence-transformers provider_type: inline::sentence-transformers # ... the rest is the same shape as a working run.yaml ... diff --git a/docs/e2e_testing.md b/docs/e2e_testing.md index 2cba4eea6c..c90707c932 100644 --- a/docs/e2e_testing.md +++ b/docs/e2e_testing.md @@ -146,7 +146,7 @@ uv run behave tests/e2e/features/health.feature --tags=-skip-in-library-mode | `E2E_LLAMA_PORT` | `8321` | Port of the Llama Stack service. | | `E2E_LLAMA_STACK_URL` | — | Full base URL for Llama Stack (overrides host/port if set). Used by shield helpers. | | `E2E_LLAMA_STACK_API_KEY` | `xyzzy` | API key for Llama Stack client (e.g. shield API). | -| `E2E_DEFAULT_MODEL_OVERRIDE` | — | Override default LLM model id (e.g. `gpt-4o-mini`). | +| `E2E_DEFAULT_MODEL_OVERRIDE` | — | Override default LLM model id (e.g. `gpt-5.6-luna`). | | `E2E_DEFAULT_PROVIDER_OVERRIDE` | — | Override default provider id (e.g. `openai`). | | `FAISS_VECTOR_STORE_ID` | — | Vector store id for FAISS-related scenarios. | | `RUNNING_PROW` | — | Set in Prow/OpenShift; enables Prow config paths and pod/container ops. | diff --git a/docs/getting_started.md b/docs/getting_started.md index ea21c39231..5722ac5e43 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -180,7 +180,7 @@ authentication: DEBUG Set provider/model configuration for openai/openai/gpt-4o to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/gpt-4o-2024-08-06 to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/gpt-4o-audio-preview to 0 utils.py:45 - DEBUG Set provider/model configuration for openai/openai/gpt-4o-mini to 0 utils.py:45 + DEBUG Set provider/model configuration for openai/openai/gpt-5.6-luna to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/o1 to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/o1-mini to 0 utils.py:45 DEBUG Set provider/model configuration for openai/openai/o3-mini to 0 utils.py:45 diff --git a/docs/models/compaction.md b/docs/models/compaction.md index 3a2b532f45..4f93dee4e9 100644 --- a/docs/models/compaction.md +++ b/docs/models/compaction.md @@ -31,7 +31,7 @@ Attributes: produced. Kept as a string (not datetime) to match the cache schema convention used elsewhere in the codebase. model_used: Fully-qualified model identifier used for the - summarization LLM call (e.g., ``"openai/gpt-4o-mini"``). + summarization LLM call (e.g., ``"openai/gpt-5.6-luna"``). Preserved for audit and for diagnostics when summary quality varies between models. diff --git a/docs/models/responses_succ.md b/docs/models/responses_succ.md index 9e3fc8295c..28fa23e957 100644 --- a/docs/models/responses_succ.md +++ b/docs/models/responses_succ.md @@ -593,7 +593,7 @@ Inference configuration. |-------|------|-------------| | default_model | string | Identification of default model used when no other model is specified. | | default_provider | string | Identification of default provider used when no other model is specified. | -| context_windows | object | Map of fully-qualified model identifier (e.g., "openai/gpt-4o-mini") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger. | +| context_windows | object | Map of fully-qualified model identifier (e.g., "openai/gpt-5.6-luna") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger. | ## InfoResponse diff --git a/docs/openapi.json b/docs/openapi.json index 4f4baa48e1..e83199f2b6 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -5976,7 +5976,7 @@ "model": { "value": { "detail": { - "cause": "Model with ID gpt-4o-mini does not exist", + "cause": "Model with ID gpt-5.6-luna does not exist", "response": "Model not found" } } @@ -5996,7 +5996,7 @@ "context window exceeded": { "value": { "detail": { - "cause": "The input exceeds the context window size of model 'gpt-4o-mini'.", + "cause": "The input exceeds the context window size of model 'gpt-5.6-luna'.", "response": "Context window exceeded" } } @@ -6337,7 +6337,7 @@ "model": { "value": { "detail": { - "cause": "Model with ID gpt-4o-mini does not exist", + "cause": "Model with ID gpt-5.6-luna does not exist", "response": "Model not found" } } @@ -6357,7 +6357,7 @@ "context window exceeded": { "value": { "detail": { - "cause": "The input exceeds the context window size of model 'gpt-4o-mini'.", + "cause": "The input exceeds the context window size of model 'gpt-5.6-luna'.", "response": "Context window exceeded" } } @@ -7596,7 +7596,7 @@ "type": "assistant" } ], - "model": "gpt-4o-mini", + "model": "gpt-5.6-luna", "provider": "openai", "started_at": "2024-01-01T00:01:00Z", "tool_calls": [], @@ -8522,7 +8522,7 @@ "type": "assistant" } ], - "model": "gpt-4o-mini", + "model": "gpt-5.6-luna", "provider": "openai", "started_at": "2024-01-01T00:01:00Z", "tool_calls": [], @@ -9269,7 +9269,7 @@ "schema": { "type": "string" }, - "example": "event: response.created\ndata: {\"type\":\"response.created\",\"sequence_number\":0,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"in_progress\",\"model\":\"openai/gpt-4o-mini\",\"output\":[],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{},\"output_text\":\"\"}}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"sequence_number\":1,\"response_id\":\"resp_abc\",\"output_index\":0,\"item\":{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"in_progress\",\"role\":\"assistant\",\"content\":[]}}\n\n...\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"sequence_number\":30,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"completed\",\"model\":\"openai/gpt-4o-mini\",\"output\":[{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"completed\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"Hello! How can I help?\",\"annotations\":[]}]}],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"usage\":{\"input_tokens\":10,\"output_tokens\":6,\"total_tokens\":16,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens_details\":{\"reasoning_tokens\":0}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{\"daily\":1000,\"monthly\":50000},\"output_text\":\"Hello! How can I help?\"}}\n\ndata: [DONE]\n\n" + "example": "event: response.created\ndata: {\"type\":\"response.created\",\"sequence_number\":0,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"in_progress\",\"model\":\"openai/gpt-5.6-luna\",\"output\":[],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{},\"output_text\":\"\"}}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"sequence_number\":1,\"response_id\":\"resp_abc\",\"output_index\":0,\"item\":{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"in_progress\",\"role\":\"assistant\",\"content\":[]}}\n\n...\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"sequence_number\":30,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"completed\",\"model\":\"openai/gpt-5.6-luna\",\"output\":[{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"completed\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"Hello! How can I help?\",\"annotations\":[]}]}],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"usage\":{\"input_tokens\":10,\"output_tokens\":6,\"total_tokens\":16,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens_details\":{\"reasoning_tokens\":0}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{\"daily\":1000,\"monthly\":50000},\"output_text\":\"Hello! How can I help?\"}}\n\ndata: [DONE]\n\n" } } }, @@ -9420,7 +9420,7 @@ "model": { "value": { "detail": { - "cause": "Model with ID gpt-4o-mini does not exist", + "cause": "Model with ID gpt-5.6-luna does not exist", "response": "Model not found" } } @@ -9468,7 +9468,7 @@ "context window exceeded": { "value": { "detail": { - "cause": "The input exceeds the context window size of model 'gpt-4o-mini'.", + "cause": "The input exceeds the context window size of model 'gpt-5.6-luna'.", "response": "Context window exceeded" } } @@ -9774,7 +9774,7 @@ "model": { "value": { "detail": { - "cause": "Model with ID gpt-4o-mini does not exist", + "cause": "Model with ID gpt-5.6-luna does not exist", "response": "Model not found" } } @@ -9794,7 +9794,7 @@ "context window exceeded": { "value": { "detail": { - "cause": "The input exceeds the context window size of model 'gpt-4o-mini'.", + "cause": "The input exceeds the context window size of model 'gpt-5.6-luna'.", "response": "Context window exceeded" } } @@ -12657,7 +12657,7 @@ "type": "assistant" } ], - "model": "gpt-4o-mini", + "model": "gpt-5.6-luna", "provider": "openai", "started_at": "2024-01-01T00:01:00Z", "tool_calls": [], @@ -12688,7 +12688,7 @@ "type": "assistant" } ], - "model": "gpt-4o-mini", + "model": "gpt-5.6-luna", "provider": "openai", "started_at": "2024-01-01T00:01:00Z", "tool_calls": [], @@ -12738,7 +12738,7 @@ "title": "Model", "description": "Model identifier used for this turn", "examples": [ - "gpt-4o-mini" + "gpt-5.6-luna" ] }, "started_at": { @@ -13605,7 +13605,7 @@ }, "type": "object", "title": "Per-model context window sizes (tokens)", - "description": "Map of fully-qualified model identifier (e.g., \"openai/gpt-4o-mini\") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window \u2014 callers fall back to their own default or skip the token-based trigger." + "description": "Map of fully-qualified model identifier (e.g., \"openai/gpt-5.6-luna\") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window \u2014 callers fall back to their own default or skip the token-based trigger." }, "providers": { "items": { @@ -14728,7 +14728,7 @@ }, { "detail": { - "cause": "Model with ID gpt-4o-mini does not exist", + "cause": "Model with ID gpt-5.6-luna does not exist", "response": "Model not found" }, "label": "model" @@ -16801,7 +16801,7 @@ "examples": [ { "detail": { - "cause": "The input exceeds the context window size of model 'gpt-4o-mini'.", + "cause": "The input exceeds the context window size of model 'gpt-5.6-luna'.", "response": "Context window exceeded" }, "label": "context window exceeded" @@ -18452,7 +18452,7 @@ "generate_topic_summary": true, "input": "Hello World!", "instructions": "You are a helpful assistant", - "model": "openai/gpt-4o-mini", + "model": "openai/gpt-5.6-luna", "store": true, "stream": false } @@ -18871,7 +18871,7 @@ } } ], - "sse_example": "event: response.created\ndata: {\"type\":\"response.created\",\"sequence_number\":0,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"in_progress\",\"model\":\"openai/gpt-4o-mini\",\"output\":[],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{},\"output_text\":\"\"}}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"sequence_number\":1,\"response_id\":\"resp_abc\",\"output_index\":0,\"item\":{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"in_progress\",\"role\":\"assistant\",\"content\":[]}}\n\n...\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"sequence_number\":30,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"completed\",\"model\":\"openai/gpt-4o-mini\",\"output\":[{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"completed\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"Hello! How can I help?\",\"annotations\":[]}]}],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"usage\":{\"input_tokens\":10,\"output_tokens\":6,\"total_tokens\":16,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens_details\":{\"reasoning_tokens\":0}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{\"daily\":1000,\"monthly\":50000},\"output_text\":\"Hello! How can I help?\"}}\n\ndata: [DONE]\n\n" + "sse_example": "event: response.created\ndata: {\"type\":\"response.created\",\"sequence_number\":0,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"in_progress\",\"model\":\"openai/gpt-5.6-luna\",\"output\":[],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{},\"output_text\":\"\"}}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"sequence_number\":1,\"response_id\":\"resp_abc\",\"output_index\":0,\"item\":{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"in_progress\",\"role\":\"assistant\",\"content\":[]}}\n\n...\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"sequence_number\":30,\"response\":{\"id\":\"resp_abc\",\"object\":\"response\",\"created_at\":1704067200,\"status\":\"completed\",\"model\":\"openai/gpt-5.6-luna\",\"output\":[{\"id\":\"msg_abc\",\"type\":\"message\",\"status\":\"completed\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"Hello! How can I help?\",\"annotations\":[]}]}],\"store\":true,\"text\":{\"format\":{\"type\":\"text\"}},\"usage\":{\"input_tokens\":10,\"output_tokens\":6,\"total_tokens\":16,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens_details\":{\"reasoning_tokens\":0}},\"conversation\":\"0d21ba731f21f798dc9680125d5d6f49\",\"available_quotas\":{\"daily\":1000,\"monthly\":50000},\"output_text\":\"Hello! How can I help?\"}}\n\ndata: [DONE]\n\n" }, "RlsapiV1Attachment": { "properties": { diff --git a/docs/openapi.md b/docs/openapi.md index aee97bdd81..885aba2655 100644 --- a/docs/openapi.md +++ b/docs/openapi.md @@ -6591,7 +6591,7 @@ Inference configuration. |-------|------|-------------| | default_model | | Identification of default model used when no other model is specified. | | default_provider | | Identification of default provider used when no other model is specified. | -| context_windows | object | Map of fully-qualified model identifier (e.g., "openai/gpt-4o-mini") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger. | +| context_windows | object | Map of fully-qualified model identifier (e.g., "openai/gpt-5.6-luna") to context window size in tokens. Used by the conversation compaction trigger to decide when older turns must be summarized before the input exceeds the window. Models absent from this map have no registered window — callers fall back to their own default or skip the token-based trigger. | ## InfoResponse diff --git a/docs/rag_guide.md b/docs/rag_guide.md index 2aa3a0c873..6f80205999 100644 --- a/docs/rag_guide.md +++ b/docs/rag_guide.md @@ -189,7 +189,7 @@ models: - model_id: my-model provider_id: openai model_type: llm - provider_model_id: # e.g. gpt-4o-mini + provider_model_id: # e.g. gpt-5.6-luna providers: [...] diff --git a/examples/azure-run.yaml b/examples/azure-run.yaml index 91cc92bdf5..ae8791136c 100644 --- a/examples/azure-run.yaml +++ b/examples/azure-run.yaml @@ -132,10 +132,10 @@ storage: backend: kv_default registered_resources: models: - - model_id: gpt-4o-mini + - model_id: gpt-5.6-luna provider_id: azure model_type: llm - provider_model_id: gpt-4o-mini + provider_model_id: gpt-5.6-luna - model_id: all-mpnet-base-v2 model_type: embedding provider_id: sentence-transformers @@ -145,7 +145,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: - embedding_dimension: 768 embedding_model: sentence-transformers/all-mpnet-base-v2 diff --git a/examples/bedrock-run.yaml b/examples/bedrock-run.yaml index b793da3e94..6346ef3217 100644 --- a/examples/bedrock-run.yaml +++ b/examples/bedrock-run.yaml @@ -148,7 +148,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/examples/run.yaml b/examples/run.yaml index 5b330b2fca..67a1e158fa 100644 --- a/examples/run.yaml +++ b/examples/run.yaml @@ -29,7 +29,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -130,14 +130,14 @@ storage: backend: kv_default registered_resources: models: - - model_id: gpt-4o-mini + - model_id: gpt-5.6-luna provider_id: openai model_type: llm - provider_model_id: gpt-4o-mini + provider_model_id: gpt-5.6-luna shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna datasets: [] scoring_fns: [] benchmarks: [] diff --git a/examples/vertexai-run.yaml b/examples/vertexai-run.yaml index 6a49e350fd..e092f9ebd2 100644 --- a/examples/vertexai-run.yaml +++ b/examples/vertexai-run.yaml @@ -141,7 +141,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: - embedding_dimension: 768 embedding_model: sentence-transformers/all-mpnet-base-v2 diff --git a/examples/vllm-rhaiis.yaml b/examples/vllm-rhaiis.yaml index f28c7fd828..044a75a866 100644 --- a/examples/vllm-rhaiis.yaml +++ b/examples/vllm-rhaiis.yaml @@ -134,7 +134,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna datasets: [] scoring_fns: [] benchmarks: [] diff --git a/examples/vllm-rhelai.yaml b/examples/vllm-rhelai.yaml index 4fa263387c..7c71c435c5 100644 --- a/examples/vllm-rhelai.yaml +++ b/examples/vllm-rhelai.yaml @@ -30,7 +30,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["gpt-4o-mini"] + allowed_models: ["gpt-5.6-luna"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -145,7 +145,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/examples/vllm-rhoai.yaml b/examples/vllm-rhoai.yaml index 38ca8d14a7..03647ca1f2 100644 --- a/examples/vllm-rhoai.yaml +++ b/examples/vllm-rhoai.yaml @@ -134,7 +134,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna datasets: [] scoring_fns: [] benchmarks: [] diff --git a/examples/watsonx-run.yaml b/examples/watsonx-run.yaml index ec7c988c41..6b5710b02b 100644 --- a/examples/watsonx-run.yaml +++ b/examples/watsonx-run.yaml @@ -153,7 +153,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: - embedding_dimension: 768 embedding_model: sentence-transformers/all-mpnet-base-v2 diff --git a/run.yaml b/run.yaml index e9bd5ef75f..6ef09706f0 100644 --- a/run.yaml +++ b/run.yaml @@ -23,7 +23,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - provider_id: sentence-transformers provider_type: inline::sentence-transformers files: @@ -130,7 +130,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/scripts/llama_stack_tutorial.sh b/scripts/llama_stack_tutorial.sh index ac95ba2190..f7353deffa 100755 --- a/scripts/llama_stack_tutorial.sh +++ b/scripts/llama_stack_tutorial.sh @@ -215,7 +215,7 @@ cat << 'EOF' curl -X POST http://localhost:8321/v1/inference/chat-completion \ -H 'Content-Type: application/json' \ -d '{ - "model_id": "openai/gpt-4o-mini", + "model_id": "openai/gpt-5.6-luna", "messages": [ { "role": "user", diff --git a/src/data/default_run.yaml b/src/data/default_run.yaml index cb8b35bb7e..70d4f92518 100644 --- a/src/data/default_run.yaml +++ b/src/data/default_run.yaml @@ -34,7 +34,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - provider_id: sentence-transformers provider_type: inline::sentence-transformers files: @@ -109,7 +109,7 @@ registered_resources: # here so the default baseline boots with only an OPENAI_API_KEY. - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] tool_groups: - toolgroup_id: builtin::rag diff --git a/src/models/api/requests/responses_openai.py b/src/models/api/requests/responses_openai.py index dde5970775..a2309f95ec 100644 --- a/src/models/api/requests/responses_openai.py +++ b/src/models/api/requests/responses_openai.py @@ -93,7 +93,7 @@ class ResponsesRequest(BaseModel): "examples": [ { "input": "Hello World!", - "model": "openai/gpt-4o-mini", + "model": "openai/gpt-5.6-luna", "instructions": "You are a helpful assistant", "store": True, "stream": False, diff --git a/src/models/api/responses/error/content_too_large.py b/src/models/api/responses/error/content_too_large.py index 4f3ee87258..6224ce68d5 100644 --- a/src/models/api/responses/error/content_too_large.py +++ b/src/models/api/responses/error/content_too_large.py @@ -24,7 +24,7 @@ class PromptTooLongResponse(AbstractErrorResponse): "response": "Context window exceeded", "cause": ( "The input exceeds the context window size " - "of model 'gpt-4o-mini'." + "of model 'gpt-5.6-luna'." ), }, }, diff --git a/src/models/api/responses/error/not_found.py b/src/models/api/responses/error/not_found.py index e557516298..728d4929ff 100644 --- a/src/models/api/responses/error/not_found.py +++ b/src/models/api/responses/error/not_found.py @@ -36,7 +36,7 @@ class NotFoundResponse(AbstractErrorResponse): "label": "model", "detail": { "response": "Model not found", - "cause": "Model with ID gpt-4o-mini does not exist", + "cause": "Model with ID gpt-5.6-luna does not exist", }, }, { diff --git a/src/models/api/responses/successful/conversations.py b/src/models/api/responses/successful/conversations.py index c1bacae42b..f0ca9f5878 100644 --- a/src/models/api/responses/successful/conversations.py +++ b/src/models/api/responses/successful/conversations.py @@ -44,7 +44,7 @@ class ConversationResponse(AbstractSuccessfulResponse): "tool_calls": [], "tool_results": [], "provider": "openai", - "model": "gpt-4o-mini", + "model": "gpt-5.6-luna", "started_at": "2024-01-01T00:01:00Z", "completed_at": "2024-01-01T00:01:05Z", } @@ -66,7 +66,7 @@ class ConversationResponse(AbstractSuccessfulResponse): "tool_calls": [], "tool_results": [], "provider": "openai", - "model": "gpt-4o-mini", + "model": "gpt-5.6-luna", "started_at": "2024-01-01T00:01:00Z", "completed_at": "2024-01-01T00:01:05Z", } diff --git a/src/models/api/responses/successful/responses_openai.py b/src/models/api/responses/successful/responses_openai.py index 30ed13fb09..0768516620 100644 --- a/src/models/api/responses/successful/responses_openai.py +++ b/src/models/api/responses/successful/responses_openai.py @@ -149,7 +149,7 @@ class ResponsesResponse(AbstractSuccessfulResponse): "event: response.created\n" 'data: {"type":"response.created","sequence_number":0,' '"response":{"id":"resp_abc","object":"response",' - '"created_at":1704067200,"status":"in_progress","model":"openai/gpt-4o-mini",' + '"created_at":1704067200,"status":"in_progress","model":"openai/gpt-5.6-luna",' '"output":[],"store":true,"text":{"format":{"type":"text"}},' '"conversation":"0d21ba731f21f798dc9680125d5d6f49",' '"available_quotas":{},"output_text":""}}\n\n' @@ -162,7 +162,7 @@ class ResponsesResponse(AbstractSuccessfulResponse): "event: response.completed\n" 'data: {"type":"response.completed","sequence_number":30,' '"response":{"id":"resp_abc","object":"response",' - '"created_at":1704067200,"status":"completed","model":"openai/gpt-4o-mini",' + '"created_at":1704067200,"status":"completed","model":"openai/gpt-5.6-luna",' '"output":[{"id":"msg_abc","type":"message","status":"completed",' '"role":"assistant","content":[{"type":"output_text",' '"text":"Hello! How can I help?","annotations":[]}]}],' diff --git a/src/models/common/conversation.py b/src/models/common/conversation.py index e02884a236..94fd0b3137 100644 --- a/src/models/common/conversation.py +++ b/src/models/common/conversation.py @@ -152,7 +152,7 @@ class ConversationTurn(BaseModel): model: str = Field( ..., description="Model identifier used for this turn", - examples=["gpt-4o-mini"], + examples=["gpt-5.6-luna"], ) started_at: str = Field( ..., diff --git a/src/models/compaction.py b/src/models/compaction.py index 16c00d3718..0990bbc772 100644 --- a/src/models/compaction.py +++ b/src/models/compaction.py @@ -37,7 +37,7 @@ class ConversationSummary(BaseModel): produced. Kept as a string (not datetime) to match the cache schema convention used elsewhere in the codebase. model_used: Fully-qualified model identifier used for the - summarization LLM call (e.g., ``"openai/gpt-4o-mini"``). + summarization LLM call (e.g., ``"openai/gpt-5.6-luna"``). Preserved for audit and for diagnostics when summary quality varies between models. """ diff --git a/src/models/config.py b/src/models/config.py index 1ddb5cb161..0114ecba8d 100644 --- a/src/models/config.py +++ b/src/models/config.py @@ -1711,7 +1711,7 @@ class InferenceConfiguration(ConfigurationBase): default_factory=dict, title="Per-model context window sizes (tokens)", description="Map of fully-qualified model identifier (e.g., " - '"openai/gpt-4o-mini") to context window size in tokens. Used by ' + '"openai/gpt-5.6-luna") to context window size in tokens. Used by ' "the conversation compaction trigger to decide when older turns " "must be summarized before the input exceeds the window. Models " "absent from this map have no registered window — callers fall " diff --git a/src/pydantic_ai_lightspeed/capabilities/question_validity/_capability.py b/src/pydantic_ai_lightspeed/capabilities/question_validity/_capability.py index 8a09d273bf..a3f3aaf120 100644 --- a/src/pydantic_ai_lightspeed/capabilities/question_validity/_capability.py +++ b/src/pydantic_ai_lightspeed/capabilities/question_validity/_capability.py @@ -81,7 +81,7 @@ class QuestionValidity(AbstractCapability[None]): from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIResponsesModel - model = OpenAIResponsesModel("gpt-4o-mini") + model = OpenAIResponsesModel("gpt-5.6-luna") agent = Agent("openai:gpt-4.1", capabilities=[QuestionValidity(model)]) ``` """ diff --git a/src/utils/compaction.py b/src/utils/compaction.py index db28223781..844c9633b2 100644 --- a/src/utils/compaction.py +++ b/src/utils/compaction.py @@ -226,7 +226,7 @@ async def summarize_chunk( Parameters: client: Llama Stack client to call. model: Fully-qualified model identifier (e.g., - ``"openai/gpt-4o-mini"``). The spec mandates the same + ``"openai/gpt-5.6-luna"``). The spec mandates the same model as the user's query (spike decision 3); the choice is the caller's, this function only records it. old_items: Conversation items to summarize. Non-message items diff --git a/src/utils/token_estimator.py b/src/utils/token_estimator.py index 314b71eb01..9f115146c9 100644 --- a/src/utils/token_estimator.py +++ b/src/utils/token_estimator.py @@ -161,7 +161,7 @@ def get_context_window( Parameters: model: Fully-qualified model identifier (e.g., - ``"openai/gpt-4o-mini"``). + ``"openai/gpt-5.6-luna"``). inference_config: The application's inference configuration. Returns: diff --git a/tests/benchmarks/data/python_1000_lines.py b/tests/benchmarks/data/python_1000_lines.py index c81f27d59a..513456aa16 100644 --- a/tests/benchmarks/data/python_1000_lines.py +++ b/tests/benchmarks/data/python_1000_lines.py @@ -924,7 +924,7 @@ def print_rag_response(response): # - tisk odpovědi -llm = ChatOpenAI(model_name="gpt-4o-mini") +llm = ChatOpenAI(model_name="gpt-5.6-luna") response = llm.invoke("Say Hi") print(response) @@ -935,7 +935,7 @@ def print_rag_response(response): # - tisk odpovědi v naformátované podobě -llm = ChatOpenAI(model_name="gpt-4o-mini") +llm = ChatOpenAI(model_name="gpt-5.6-luna") response = llm.invoke("Say Hi") print(response) @@ -946,7 +946,7 @@ def print_rag_response(response): # - tisk odpovědi -llm = ChatOpenAI(model_name="gpt-4o-mini", temperature=0.7) +llm = ChatOpenAI(model_name="gpt-5.6-luna", temperature=0.7) response = llm.invoke("Say Hi") print(response) @@ -959,7 +959,7 @@ def print_rag_response(response): prompt = PromptTemplate.from_template("How to say 'hi' in {language} language?") -llm = ChatOpenAI(model_name="gpt-4o-mini") +llm = ChatOpenAI(model_name="gpt-5.6-luna") chain = LLMChain(prompt=prompt, llm=llm) response = chain.invoke("Czech") @@ -978,7 +978,7 @@ def print_rag_response(response): ) -llm = ChatOpenAI(model_name="gpt-4o-mini") +llm = ChatOpenAI(model_name="gpt-5.6-luna") chain = LLMChain(prompt=prompt, llm=llm) response = chain.invoke("Czech") @@ -992,7 +992,7 @@ def print_rag_response(response): prompt = PromptTemplate.from_template("How to say 'hi' in {language} language?") -llm = ChatOpenAI(model_name="gpt-4o-mini") +llm = ChatOpenAI(model_name="gpt-5.6-luna") chain = prompt | llm | StrOutputParser() diff --git a/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-openai.yaml b/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-openai.yaml index 80651a3cbc..a890174a12 100644 --- a/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-openai.yaml +++ b/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-openai.yaml @@ -145,7 +145,7 @@ spec: key: key optional: true - name: E2E_OPENAI_MODEL - value: "gpt-4o-mini" + value: "gpt-5.6-luna" - name: VLLM_URL valueFrom: secretKeyRef: diff --git a/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-prow.yaml b/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-prow.yaml index d81932df86..afd5afc1f0 100644 --- a/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-prow.yaml +++ b/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-prow.yaml @@ -110,7 +110,7 @@ spec: key: key optional: true - name: E2E_OPENAI_MODEL - value: "gpt-4o-mini" + value: "gpt-5.6-luna" - name: LLAMA_STACK_CONFIG value: "/opt/app-root/src/.llama/storage/run.yaml" - name: FAISS_VECTOR_STORE_ID diff --git a/tests/e2e-prow/rhoai/pipeline-konflux.sh b/tests/e2e-prow/rhoai/pipeline-konflux.sh index c20cbbac0e..d942740e35 100755 --- a/tests/e2e-prow/rhoai/pipeline-konflux.sh +++ b/tests/e2e-prow/rhoai/pipeline-konflux.sh @@ -387,7 +387,7 @@ if [[ -n "${VLLM_URL:-}" ]]; then : "${E2E_DEFAULT_MODEL_OVERRIDE:=${VLLM_MODEL:-meta-llama/Llama-3.2-1B-Instruct}}" else : "${E2E_DEFAULT_PROVIDER_OVERRIDE:=openai}" - : "${E2E_DEFAULT_MODEL_OVERRIDE:=${E2E_OPENAI_MODEL:-gpt-4o-mini}}" + : "${E2E_DEFAULT_MODEL_OVERRIDE:=${E2E_OPENAI_MODEL:-gpt-5.6-luna}}" fi export E2E_DEFAULT_PROVIDER_OVERRIDE E2E_DEFAULT_MODEL_OVERRIDE log "LCS accessible at: http://$E2E_LSC_HOSTNAME:8080" diff --git a/tests/e2e/configs/run-azure.yaml b/tests/e2e/configs/run-azure.yaml index 6f627ba8b8..eb145a84d6 100644 --- a/tests/e2e/configs/run-azure.yaml +++ b/tests/e2e/configs/run-azure.yaml @@ -24,13 +24,13 @@ providers: config: base_url: https://ols-test.openai.azure.com/openai/v1 api_version: 2024-02-15-preview - allowed_models: ["gpt-4o-mini"] + allowed_models: ["gpt-5.6-luna"] model_validation: false - provider_id: openai provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -132,10 +132,10 @@ storage: backend: kv_default registered_resources: models: - - model_id: gpt-4o-mini + - model_id: gpt-5.6-luna provider_id: azure model_type: llm - provider_model_id: gpt-4o-mini + provider_model_id: gpt-5.6-luna - model_id: all-mpnet-base-v2 model_type: embedding provider_id: sentence-transformers @@ -145,7 +145,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configs/run-bedrock.yaml b/tests/e2e/configs/run-bedrock.yaml index 02f902b2df..fd5a254489 100644 --- a/tests/e2e/configs/run-bedrock.yaml +++ b/tests/e2e/configs/run-bedrock.yaml @@ -28,7 +28,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -143,7 +143,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configs/run-ci.yaml b/tests/e2e/configs/run-ci.yaml index 5c9dd8cb1a..bce055ef14 100644 --- a/tests/e2e/configs/run-ci.yaml +++ b/tests/e2e/configs/run-ci.yaml @@ -23,7 +23,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -134,7 +134,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configs/run-rhaiis.yaml b/tests/e2e/configs/run-rhaiis.yaml index 74c0b654bd..188eca51a2 100644 --- a/tests/e2e/configs/run-rhaiis.yaml +++ b/tests/e2e/configs/run-rhaiis.yaml @@ -30,7 +30,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -145,7 +145,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configs/run-rhelai.yaml b/tests/e2e/configs/run-rhelai.yaml index 4fa263387c..7c71c435c5 100644 --- a/tests/e2e/configs/run-rhelai.yaml +++ b/tests/e2e/configs/run-rhelai.yaml @@ -30,7 +30,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["gpt-4o-mini"] + allowed_models: ["gpt-5.6-luna"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -145,7 +145,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configs/run-vertexai.yaml b/tests/e2e/configs/run-vertexai.yaml index aa5f4925e2..3a3caf9a25 100644 --- a/tests/e2e/configs/run-vertexai.yaml +++ b/tests/e2e/configs/run-vertexai.yaml @@ -29,7 +29,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -140,7 +140,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configs/run-watsonx.yaml b/tests/e2e/configs/run-watsonx.yaml index a472471b6a..a7d7f0c15b 100644 --- a/tests/e2e/configs/run-watsonx.yaml +++ b/tests/e2e/configs/run-watsonx.yaml @@ -30,7 +30,7 @@ providers: provider_type: remote::openai config: api_key: ${env.OPENAI_API_KEY} - allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-4o-mini}"] + allowed_models: ["${env.E2E_OPENAI_MODEL:=gpt-5.6-luna}"] - config: {} provider_id: sentence-transformers provider_type: inline::sentence-transformers @@ -141,7 +141,7 @@ registered_resources: shields: - shield_id: llama-guard provider_id: llama-guard - provider_shield_id: openai/gpt-4o-mini + provider_shield_id: openai/gpt-5.6-luna vector_stores: [] datasets: [] scoring_fns: [] diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml index 2c55ae4407..b8d7624a3b 100644 --- a/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml +++ b/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml @@ -25,7 +25,7 @@ authentication: module: "noop-with-token" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna byok_rag: - rag_id: e2e-test-docs diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml index 4d04eaac5d..463c3c690a 100644 --- a/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml +++ b/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml @@ -24,7 +24,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna # BYOK store built from a PDF by rag-content's `pdf` module (LCORE-2091). # The vector_db_id is hardcoded to the id baked into the committed fixture diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-inline-rag.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-inline-rag.yaml index ffd744da60..4a0caa2f17 100644 --- a/tests/e2e/configuration/library-mode/lightspeed-stack-inline-rag.yaml +++ b/tests/e2e/configuration/library-mode/lightspeed-stack-inline-rag.yaml @@ -24,7 +24,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna byok_rag: - rag_id: e2e-test-docs diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml index 0aff2f67b9..afe2d14e3e 100644 --- a/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml +++ b/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml @@ -19,7 +19,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna skills: paths: - skills diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml index 1a7177434e..4abc3256c9 100644 --- a/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml +++ b/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml @@ -19,7 +19,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna skills: paths: - skills/echo diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack.yaml index 6c032de896..3ee4d1922d 100644 --- a/tests/e2e/configuration/library-mode/lightspeed-stack.yaml +++ b/tests/e2e/configuration/library-mode/lightspeed-stack.yaml @@ -19,7 +19,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna byok_rag: - rag_id: e2e-test-docs rag_type: inline::faiss diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-auth-noop-token.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-auth-noop-token.yaml index 49ee71d59a..8e982a599f 100644 --- a/tests/e2e/configuration/server-mode/lightspeed-stack-auth-noop-token.yaml +++ b/tests/e2e/configuration/server-mode/lightspeed-stack-auth-noop-token.yaml @@ -31,7 +31,7 @@ authentication: module: "noop-with-token" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna byok_rag: - rag_id: e2e-test-docs diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-degraded-mode.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-degraded-mode.yaml index 1435b9fc00..09575ff590 100644 --- a/tests/e2e/configuration/server-mode/lightspeed-stack-degraded-mode.yaml +++ b/tests/e2e/configuration/server-mode/lightspeed-stack-degraded-mode.yaml @@ -22,4 +22,4 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-inline-rag.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-inline-rag.yaml index 1a2850162f..69aab4f00b 100644 --- a/tests/e2e/configuration/server-mode/lightspeed-stack-inline-rag.yaml +++ b/tests/e2e/configuration/server-mode/lightspeed-stack-inline-rag.yaml @@ -25,7 +25,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna byok_rag: - rag_id: e2e-test-docs diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml index 0ae7888c7e..5e166adbf1 100644 --- a/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml +++ b/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml @@ -20,7 +20,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna skills: paths: - skills diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml index 387d038565..cacd4bb008 100644 --- a/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml +++ b/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml @@ -20,7 +20,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna skills: paths: - skills/echo diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack.yaml index de945bb2e2..405386c1d1 100644 --- a/tests/e2e/configuration/server-mode/lightspeed-stack.yaml +++ b/tests/e2e/configuration/server-mode/lightspeed-stack.yaml @@ -20,7 +20,7 @@ authentication: module: "noop" inference: default_provider: openai - default_model: gpt-4o-mini + default_model: gpt-5.6-luna byok_rag: - rag_id: e2e-test-docs rag_type: inline::faiss diff --git a/tests/e2e/features/environment.py b/tests/e2e/features/environment.py index 7eb9d8f71b..6b33444fee 100644 --- a/tests/e2e/features/environment.py +++ b/tests/e2e/features/environment.py @@ -44,7 +44,7 @@ switch_config, ) -FALLBACK_MODEL = "gpt-4o-mini" +FALLBACK_MODEL = "gpt-5.6-luna" FALLBACK_PROVIDER = "openai" # Wall-clock start for each feature (on ``Feature``; survives Behave context resets). diff --git a/tests/e2e/features/steps/info.py b/tests/e2e/features/steps/info.py index 52fed7eb82..d4fbf621ed 100644 --- a/tests/e2e/features/steps/info.py +++ b/tests/e2e/features/steps/info.py @@ -60,8 +60,8 @@ def check_shield_structure(context: Context) -> None: assert ( found_shield["provider_id"] == "llama-guard" ), "provider_id should be 'llama-guard'" - assert found_shield["provider_resource_id"] == "openai/gpt-4o-mini", ( - f"provider_resource_id should be 'openai/gpt-4o-mini', " + assert found_shield["provider_resource_id"] == "openai/gpt-5.6-luna", ( + f"provider_resource_id should be 'openai/gpt-5.6-luna', " f"but is '{found_shield['provider_resource_id']}'" ) assert ( diff --git a/tests/e2e/utils/llama_stack_utils.py b/tests/e2e/utils/llama_stack_utils.py index 70b444170b..95593fafa9 100644 --- a/tests/e2e/utils/llama_stack_utils.py +++ b/tests/e2e/utils/llama_stack_utils.py @@ -155,6 +155,6 @@ def register_shield( if not provider_shield_id: provider_shield_id = os.getenv( "E2E_LLAMA_GUARD_PROVIDER_SHIELD_ID", - "openai/gpt-4o-mini", + "openai/gpt-5.6-luna", ) asyncio.run(_register_shield_async(shield_id, provider_id, provider_shield_id)) diff --git a/tests/unit/app/endpoints/test_rlsapi_v1.py b/tests/unit/app/endpoints/test_rlsapi_v1.py index 4270c57054..61a935ec0f 100644 --- a/tests/unit/app/endpoints/test_rlsapi_v1.py +++ b/tests/unit/app/endpoints/test_rlsapi_v1.py @@ -434,7 +434,7 @@ async def test_get_default_model_id_auto_discovery_success( mock_llm_model = mocker.Mock() mock_llm_model.custom_metadata = {"model_type": "llm"} - mock_llm_model.id = "openai/gpt-4o-mini" + mock_llm_model.id = "openai/gpt-5.6-luna" mock_embedding_model = mocker.Mock() mock_embedding_model.custom_metadata = {"model_type": "embedding"} @@ -455,7 +455,7 @@ async def test_get_default_model_id_auto_discovery_success( model_id = await _get_default_model_id() - assert model_id == "openai/gpt-4o-mini" + assert model_id == "openai/gpt-5.6-luna" # --- Test get_rh_identity_context --- diff --git a/tests/unit/cache/test_in_memory_cache.py b/tests/unit/cache/test_in_memory_cache.py index 2b11aace59..ea24cc436a 100644 --- a/tests/unit/cache/test_in_memory_cache.py +++ b/tests/unit/cache/test_in_memory_cache.py @@ -21,7 +21,7 @@ summarized_through_turn=8, token_count=9, created_at="2025-10-03T09:31:29Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) diff --git a/tests/unit/cache/test_noop_cache.py b/tests/unit/cache/test_noop_cache.py index 36fb82da23..79f7a2aedf 100644 --- a/tests/unit/cache/test_noop_cache.py +++ b/tests/unit/cache/test_noop_cache.py @@ -260,7 +260,7 @@ def test_get_improper_conversation_id(cache_fixture: NoopCache) -> None: summarized_through_turn=8, token_count=9, created_at="2025-10-03T09:31:29Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) diff --git a/tests/unit/cache/test_postgres_cache.py b/tests/unit/cache/test_postgres_cache.py index 0e8c759e96..726265cefe 100644 --- a/tests/unit/cache/test_postgres_cache.py +++ b/tests/unit/cache/test_postgres_cache.py @@ -926,14 +926,14 @@ def test_insert_and_get_with_tool_calls_and_results( summarized_through_turn=8, token_count=14, created_at="2025-10-03T09:31:29Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) summary_2 = ConversationSummary( summary_text="User then moved on to Helm charts and Istio routing.", summarized_through_turn=18, token_count=12, created_at="2025-10-03T10:05:01Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) # A fold collapsing the accumulated chunks (R3, LCORE-1572). folded_summary = ConversationSummary( @@ -941,7 +941,7 @@ def test_insert_and_get_with_tool_calls_and_results( summarized_through_turn=18, token_count=11, created_at="2025-10-03T11:00:00Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) diff --git a/tests/unit/cache/test_sqlite_cache.py b/tests/unit/cache/test_sqlite_cache.py index 2fdb9ba1a2..3a3e1eab9b 100644 --- a/tests/unit/cache/test_sqlite_cache.py +++ b/tests/unit/cache/test_sqlite_cache.py @@ -626,14 +626,14 @@ def test_insert_and_get_with_all_fields(tmpdir: Path) -> None: summarized_through_turn=8, token_count=14, created_at="2025-10-03T09:31:29Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) summary_2 = ConversationSummary( summary_text="User then moved on to Helm charts and Istio routing.", summarized_through_turn=18, token_count=12, created_at="2025-10-03T10:05:01Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) # A fold collapsing summary_1 + summary_2; created after both (R3, LCORE-1572). folded_summary = ConversationSummary( @@ -641,7 +641,7 @@ def test_insert_and_get_with_all_fields(tmpdir: Path) -> None: summarized_through_turn=18, token_count=11, created_at="2025-10-03T11:00:00Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) # A chunk produced after a fold; created later still, so it sorts after the fold. summary_after_fold = ConversationSummary( @@ -649,7 +649,7 @@ def test_insert_and_get_with_all_fields(tmpdir: Path) -> None: summarized_through_turn=26, token_count=10, created_at="2025-10-03T11:42:00Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) diff --git a/tests/unit/models/config/test_inference_configuration.py b/tests/unit/models/config/test_inference_configuration.py index a9cfc4cc5d..a36a9f9dab 100644 --- a/tests/unit/models/config/test_inference_configuration.py +++ b/tests/unit/models/config/test_inference_configuration.py @@ -68,11 +68,11 @@ def test_context_windows_accepts_model_to_size_map() -> None: """Test context_windows accepts a populated model-to-window map.""" inference_config = InferenceConfiguration( context_windows={ - "openai/gpt-4o-mini": 128000, + "openai/gpt-5.6-luna": 128000, "openai/gpt-4o": 128000, }, ) # pyright: ignore[reportCallIssue] - assert inference_config.context_windows["openai/gpt-4o-mini"] == 128000 + assert inference_config.context_windows["openai/gpt-5.6-luna"] == 128000 assert inference_config.context_windows["openai/gpt-4o"] == 128000 @@ -80,7 +80,7 @@ def test_context_windows_rejects_non_positive_size() -> None: """Test that a non-positive window size is rejected by Pydantic.""" with pytest.raises(ValueError): InferenceConfiguration( - context_windows={"openai/gpt-4o-mini": 0}, + context_windows={"openai/gpt-5.6-luna": 0}, ) # pyright: ignore[reportCallIssue] @@ -88,7 +88,7 @@ def test_context_windows_rejects_negative_size() -> None: """Test that a negative window size is rejected by Pydantic.""" with pytest.raises(ValueError): InferenceConfiguration( - context_windows={"openai/gpt-4o-mini": -1}, + context_windows={"openai/gpt-5.6-luna": -1}, ) # pyright: ignore[reportCallIssue] diff --git a/tests/unit/models/test_compaction.py b/tests/unit/models/test_compaction.py index f20ba5b558..7379e14998 100644 --- a/tests/unit/models/test_compaction.py +++ b/tests/unit/models/test_compaction.py @@ -12,7 +12,7 @@ def _valid_kwargs() -> dict: "summarized_through_turn": 8, "token_count": 42, "created_at": "2026-05-11T00:00:00Z", - "model_used": "openai/gpt-4o-mini", + "model_used": "openai/gpt-5.6-luna", } @@ -23,7 +23,7 @@ def test_constructor_with_valid_values() -> None: assert summary.summarized_through_turn == 8 assert summary.token_count == 42 assert summary.created_at == "2026-05-11T00:00:00Z" - assert summary.model_used == "openai/gpt-4o-mini" + assert summary.model_used == "openai/gpt-5.6-luna" def test_summarized_through_turn_accepts_zero() -> None: diff --git a/tests/unit/telemetry/conftest.py b/tests/unit/telemetry/conftest.py index 6b2db6a82b..3fe74c395c 100644 --- a/tests/unit/telemetry/conftest.py +++ b/tests/unit/telemetry/conftest.py @@ -113,9 +113,9 @@ "registered_resources": { "models": [ { - "model_id": "gpt-4o-mini", + "model_id": "gpt-5.6-luna", "provider_id": "openai", - "provider_model_id": "gpt-4o-mini", + "provider_model_id": "gpt-5.6-luna", "model_type": "llm", }, { @@ -205,7 +205,7 @@ def build_fully_populated_config() -> Configuration: timeout=180, ), inference=InferenceConfiguration.model_construct( - default_model="gpt-4o-mini", + default_model="gpt-5.6-luna", default_provider="openai", ), authentication=AuthenticationConfiguration.model_construct( diff --git a/tests/unit/telemetry/test_configuration_snapshot.py b/tests/unit/telemetry/test_configuration_snapshot.py index 85dac1d648..5a51a0ccdc 100644 --- a/tests/unit/telemetry/test_configuration_snapshot.py +++ b/tests/unit/telemetry/test_configuration_snapshot.py @@ -421,7 +421,7 @@ def test_passthrough_fields_preserved(self) -> None: assert snapshot["service"]["cors"]["allow_credentials"] is True assert snapshot["service"]["cors"]["allow_methods"] == ["GET", "POST"] assert snapshot["llama_stack"]["use_as_library_client"] is False - assert snapshot["inference"]["default_model"] == "gpt-4o-mini" + assert snapshot["inference"]["default_model"] == "gpt-5.6-luna" assert snapshot["inference"]["default_provider"] == "openai" assert snapshot["authentication"]["module"] == "jwk_token" assert snapshot["authentication"]["skip_tls_verification"] is False @@ -534,7 +534,7 @@ async def test_models_extraction(self, llama_stack_config_file: str) -> None: result = await build_llama_stack_snapshot(llama_stack_config_file) models = result["registered_resources"]["models"] assert len(models) == 2 - assert models[0]["model_id"] == "gpt-4o-mini" + assert models[0]["model_id"] == "gpt-5.6-luna" assert models[0]["model_type"] == "llm" @pytest.mark.asyncio diff --git a/tests/unit/test_configuration.py b/tests/unit/test_configuration.py index fe1d1fc20b..4cdb7a9a58 100644 --- a/tests/unit/test_configuration.py +++ b/tests/unit/test_configuration.py @@ -3902,7 +3902,7 @@ def test_native_override_env_refs_not_resolved( Llama Stack's own raw schema. """ monkeypatch.setenv("LCORE_TEST_SECRET", "supersecret") - monkeypatch.setenv("LCORE_TEST_MODEL", "gpt-4o-mini") + monkeypatch.setenv("LCORE_TEST_MODEL", "gpt-5.6-luna") config_dict = { "inference": {"default_model": "${env.LCORE_TEST_MODEL}"}, "llama_stack": { @@ -3928,14 +3928,14 @@ def test_native_override_env_refs_not_resolved( assert override_api_key == "${env.LCORE_TEST_SECRET}" assert "supersecret" not in str(resolved["llama_stack"]) # everything outside native_override still resolves - assert resolved["inference"]["default_model"] == "gpt-4o-mini" + assert resolved["inference"]["default_model"] == "gpt-5.6-luna" def test_replace_env_vars_without_native_override_resolves_all( monkeypatch: pytest.MonkeyPatch, ) -> None: """With no native_override, the helper resolves env refs like the plain call.""" - monkeypatch.setenv("LCORE_TEST_MODEL", "gpt-4o-mini") + monkeypatch.setenv("LCORE_TEST_MODEL", "gpt-5.6-luna") config_dict = {"inference": {"default_model": "${env.LCORE_TEST_MODEL}"}} resolved = replace_env_vars_preserving_native_override(config_dict) - assert resolved["inference"]["default_model"] == "gpt-4o-mini" + assert resolved["inference"]["default_model"] == "gpt-5.6-luna" diff --git a/tests/unit/test_llama_stack_synthesize.py b/tests/unit/test_llama_stack_synthesize.py index 1bb8f551b2..e69d0e4eb3 100644 --- a/tests/unit/test_llama_stack_synthesize.py +++ b/tests/unit/test_llama_stack_synthesize.py @@ -102,7 +102,7 @@ def test_apply_high_level_inference_maps_type_and_emits_env_ref() -> None: { "type": "openai", "api_key_env": "OPENAI_API_KEY", - "allowed_models": ["gpt-4o-mini"], + "allowed_models": ["gpt-5.6-luna"], "extra": {}, } ] @@ -112,7 +112,7 @@ def test_apply_high_level_inference_maps_type_and_emits_env_ref() -> None: assert entry["provider_id"] == "openai" assert entry["provider_type"] == "remote::openai" assert entry["config"]["api_key"] == "${env.OPENAI_API_KEY}" - assert entry["config"]["allowed_models"] == ["gpt-4o-mini"] + assert entry["config"]["allowed_models"] == ["gpt-5.6-luna"] def test_apply_high_level_inference_hyphenates_provider_id() -> None: diff --git a/tests/unit/utils/test_compaction.py b/tests/unit/utils/test_compaction.py index c93119f12d..4041ec93e0 100644 --- a/tests/unit/utils/test_compaction.py +++ b/tests/unit/utils/test_compaction.py @@ -362,7 +362,7 @@ async def test_returns_conversation_summary_with_populated_fields( ] summary = await summarize_chunk( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", old_items=items, summarized_through_turn=2, encoding_name=DEFAULT_ENCODING_NAME, @@ -373,7 +373,7 @@ async def test_returns_conversation_summary_with_populated_fields( ) assert summary.summarized_through_turn == 2 assert summary.token_count > 0 - assert summary.model_used == "openai/gpt-4o-mini" + assert summary.model_used == "openai/gpt-5.6-luna" assert summary.created_at # non-empty ISO 8601 @pytest.mark.asyncio @@ -388,7 +388,7 @@ async def test_invokes_responses_create_with_store_false( ) await summarize_chunk( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", old_items=[_MessageItem("user", "hi")], summarized_through_turn=1, encoding_name=DEFAULT_ENCODING_NAME, @@ -396,7 +396,7 @@ async def test_invokes_responses_create_with_store_false( kwargs = client.responses.create.call_args.kwargs assert kwargs["store"] is False assert kwargs["stream"] is False - assert kwargs["model"] == "openai/gpt-4o-mini" + assert kwargs["model"] == "openai/gpt-5.6-luna" # System directives travel as `instructions`, transcript as `input`. # This keeps the directives in their own channel (resilient to # prompt-injection from user content) and matches the convention used @@ -413,7 +413,7 @@ async def test_raises_when_llm_returns_empty(self, mocker: MockerFixture) -> Non with pytest.raises(ValueError, match="no extractable text"): await summarize_chunk( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", old_items=[_MessageItem("user", "hi")], summarized_through_turn=1, encoding_name=DEFAULT_ENCODING_NAME, @@ -439,14 +439,14 @@ async def test_additive_second_call_does_not_resummarize_first( first = await summarize_chunk( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", old_items=first_chunk, summarized_through_turn=1, encoding_name=DEFAULT_ENCODING_NAME, ) second = await summarize_chunk( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", old_items=second_chunk, summarized_through_turn=2, encoding_name=DEFAULT_ENCODING_NAME, @@ -478,7 +478,7 @@ def _make_summary(text: str, through: int, tokens: int = 5) -> ConversationSumma summarized_through_turn=through, token_count=tokens, created_at="2026-05-11T00:00:00Z", - model_used="openai/gpt-4o-mini", + model_used="openai/gpt-5.6-luna", ) @@ -499,7 +499,7 @@ async def test_collapses_n_summaries_into_one(self, mocker: MockerFixture) -> No ] folded = await recursively_resummarize( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", summaries=summaries, encoding_name=DEFAULT_ENCODING_NAME, ) @@ -508,7 +508,7 @@ async def test_collapses_n_summaries_into_one(self, mocker: MockerFixture) -> No # new turns were summarized by this call. assert folded.summarized_through_turn == 15 assert folded.token_count > 0 - assert folded.model_used == "openai/gpt-4o-mini" + assert folded.model_used == "openai/gpt-5.6-luna" @pytest.mark.asyncio async def test_prompt_lists_each_summary(self, mocker: MockerFixture) -> None: @@ -524,7 +524,7 @@ async def test_prompt_lists_each_summary(self, mocker: MockerFixture) -> None: ] await recursively_resummarize( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", summaries=summaries, encoding_name=DEFAULT_ENCODING_NAME, ) @@ -547,7 +547,7 @@ async def test_uses_store_false(self, mocker: MockerFixture) -> None: ] await recursively_resummarize( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", summaries=summaries, encoding_name=DEFAULT_ENCODING_NAME, ) @@ -562,7 +562,7 @@ async def test_raises_for_single_summary(self, mocker: MockerFixture) -> None: with pytest.raises(ValueError, match="at least 2 summary chunks"): await recursively_resummarize( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", summaries=[_make_summary("only one", through=5)], encoding_name=DEFAULT_ENCODING_NAME, ) @@ -574,7 +574,7 @@ async def test_raises_for_empty_list(self, mocker: MockerFixture) -> None: with pytest.raises(ValueError, match="at least 2 summary chunks"): await recursively_resummarize( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", summaries=[], encoding_name=DEFAULT_ENCODING_NAME, ) @@ -591,7 +591,7 @@ async def test_raises_when_llm_returns_empty(self, mocker: MockerFixture) -> Non with pytest.raises(ValueError, match="no extractable text"): await recursively_resummarize( client=client, - model="openai/gpt-4o-mini", + model="openai/gpt-5.6-luna", summaries=summaries, encoding_name=DEFAULT_ENCODING_NAME, ) diff --git a/tests/unit/utils/test_conversation_compaction.py b/tests/unit/utils/test_conversation_compaction.py index 4d78cde12d..1261dced3e 100644 --- a/tests/unit/utils/test_conversation_compaction.py +++ b/tests/unit/utils/test_conversation_compaction.py @@ -16,7 +16,7 @@ from models.config import CompactionConfiguration, InferenceConfiguration from utils import conversation_compaction as cc -MODEL = "openai/gpt-4o-mini" +MODEL = "openai/gpt-5.6-luna" CONV = "conv_abc123" diff --git a/tests/unit/utils/test_token_estimator.py b/tests/unit/utils/test_token_estimator.py index 2f645f1839..cdfd4f5208 100644 --- a/tests/unit/utils/test_token_estimator.py +++ b/tests/unit/utils/test_token_estimator.py @@ -228,18 +228,18 @@ class TestGetContextWindow: def test_returns_size_for_known_model(self) -> None: """A configured model returns its window size.""" config = InferenceConfiguration( - context_windows={"openai/gpt-4o-mini": 128000}, + context_windows={"openai/gpt-5.6-luna": 128000}, ) # pyright: ignore[reportCallIssue] - assert get_context_window("openai/gpt-4o-mini", config) == 128000 + assert get_context_window("openai/gpt-5.6-luna", config) == 128000 def test_returns_none_for_unknown_model(self) -> None: """An unconfigured model returns None — caller decides fallback.""" config = InferenceConfiguration( - context_windows={"openai/gpt-4o-mini": 128000}, + context_windows={"openai/gpt-5.6-luna": 128000}, ) # pyright: ignore[reportCallIssue] assert get_context_window("anthropic/claude-3", config) is None def test_returns_none_when_map_empty(self) -> None: """An empty context_windows dict returns None for any model.""" config = InferenceConfiguration() # pyright: ignore[reportCallIssue] - assert get_context_window("openai/gpt-4o-mini", config) is None + assert get_context_window("openai/gpt-5.6-luna", config) is None