Merge pull request #532 from MaEscalanteHe/feature/update-openai-models

fix: update OpenAI models and send supported reasoning parameters
This commit is contained in:
MacRimi
2026-10-26 19:37:01 +01:00
committed by GitHub
12 changed files with 85 additions and 56 deletions
+17 -24
View File
@@ -38,31 +38,24 @@
}, },
"openai": { "openai": {
"models": [ "models": [
"gpt-4.1-nano-2025-04-14", "gpt-6-luna",
"gpt-4.1-nano", "gpt-5.6-luna",
"gpt-4.1-2025-04-14", "gpt-5.4-mini",
"gpt-4.1", "gpt-5.4-mini-2026-03-17",
"gpt-4o-2024-11-20", "gpt-6-sol",
"gpt-4o-2024-05-13", "gpt-6.1-sol",
"gpt-4o-mini", "gpt-5.6-terra",
"gpt-3.5-turbo-16k", "gpt-5.2",
"gpt-4o-mini-2024-07-18", "gpt-5.2-2025-12-11",
"gpt-5-nano", "gpt-5.4",
"gpt-3.5-turbo-1106", "gpt-5.4-2026-03-05",
"gpt-3.5-turbo-0125", "gpt-5.6-sol",
"gpt-5-nano-2025-08-07", "gpt-5.5",
"gpt-4.1-mini", "gpt-5.5-2026-04-23",
"gpt-4.1-mini-2025-04-14", "gpt-6-astra"
"gpt-3.5-turbo",
"gpt-4o",
"gpt-4o-2024-08-06",
"gpt-4",
"gpt-4-turbo",
"gpt-4-turbo-2024-04-09",
"gpt-4-0613"
], ],
"recommended": "gpt-4.1-nano", "recommended": "gpt-6-luna",
"_note": "Verified 2026-09-02 with the OpenAI API — 22 of 74 tested pass. Includes stable aliases (gpt-4.1-nano, gpt-4o-mini, ...), dated snapshots for pinning (gpt-4o-2024-11-20, gpt-4.1-nano-2025-04-14) and legacy families (gpt-3.5-turbo, gpt-4) for cost-optimised use cases. Recommended kept as `gpt-4.1-nano` (stable alias, 1.39s)." "_note": "Verified 2026-10-26 against the live API. Recommended `gpt-6-luna` (cheapest current model). Dropped every model that is retired (gpt-4.1-nano, gpt-3.5-turbo, gpt-4, gpt-4-turbo, ...) or has a shutdown date (gpt-4.1, gpt-4o, gpt-4o-mini, gpt-5-nano, gpt-5.1, gpt-5.4-nano)."
}, },
"anthropic": { "anthropic": {
"models": [ "models": [
@@ -5,6 +5,7 @@ Models are loaded dynamically from the API.
""" """
from typing import Optional, List from typing import Optional, List
import json import json
import re
import urllib.request import urllib.request
import urllib.error import urllib.error
from .base import AIProvider, AIProviderError from .base import AIProvider, AIProviderError
@@ -36,11 +37,11 @@ class OpenAIProvider(AIProvider):
] ]
# Recommended models for chat (in priority order) # Recommended models for chat (in priority order)
RECOMMENDED_PREFIXES = ['gpt-4o-mini', 'gpt-4o', 'gpt-4-turbo', 'gpt-4', 'gpt-3.5-turbo'] RECOMMENDED_PREFIXES = ['gpt-6-luna', 'gpt-5.6-luna', 'gpt-5.4-mini', 'gpt-6-sol']
@staticmethod @staticmethod
def _is_reasoning_model(model: str) -> bool: def _is_reasoning_model(model: str) -> bool:
"""True for OpenAI reasoning models (o-series + non-chat gpt-5+). """True for OpenAI reasoning models (o-series + non-chat gpt-5 and later).
These use a stricter API contract than chat models: These use a stricter API contract than chat models:
- Must use ``max_completion_tokens`` instead of ``max_tokens`` - Must use ``max_completion_tokens`` instead of ``max_tokens``
@@ -54,11 +55,24 @@ class OpenAIProvider(AIProvider):
# o1, o3, o4, o5 ... (o<digit>...) # o1, o3, o4, o5 ... (o<digit>...)
if len(m) >= 2 and m[0] == 'o' and m[1].isdigit(): if len(m) >= 2 and m[0] == 'o' and m[1].isdigit():
return True return True
# gpt-5, gpt-5-mini, gpt-5.1, gpt-5.2-pro ... EXCEPT *-chat-latest # gpt-5, gpt-5-mini, gpt-5.1, gpt-6-luna, gpt-6.1-sol ... EXCEPT *-chat-latest
if m.startswith('gpt-5') and '-chat' not in m: major = re.match(r'gpt-(\d+)', m)
return True return bool(major) and int(major.group(1)) >= 5 and '-chat' not in m
return False
@staticmethod
def _reasoning_effort(model: str) -> str:
"""Lowest reasoning_effort the model accepts.
gpt-5 / gpt-5-mini / gpt-5-nano (and the o-series) accept 'minimal'.
gpt-5.1 and later reject 'minimal' with HTTP 400, and gpt-6-astra /
gpt-6.1-sol also reject 'none', so 'low' is the value all of them
accept. In tests it spent 0-5 reasoning tokens on a notification.
"""
m = model.lower()
if re.match(r'gpt-5(?!\.)', m) or m.startswith('o'):
return 'minimal'
return 'low'
def list_models(self) -> List[str]: def list_models(self) -> List[str]:
"""List available models for chat completions. """List available models for chat completions.
@@ -189,22 +203,19 @@ class OpenAIProvider(AIProvider):
# apply model-specific defaults. # apply model-specific defaults.
if self.base_url: if self.base_url:
payload['max_tokens'] = max_tokens payload['max_tokens'] = max_tokens
# Reasoning models (o1/o3/o4/gpt-5*, excluding *-chat-latest) use a # Reasoning models (o1/o3/o4/gpt-5+, excluding *-chat-latest) use a
# different parameter contract: max_completion_tokens instead of # different parameter contract: max_completion_tokens instead of
# max_tokens, and no temperature field. Sending the classic chat # max_tokens, and no temperature field. Sending the classic chat
# parameters to them produces HTTP 400 Bad Request. # parameters to them produces HTTP 400 Bad Request.
# #
# They also spend output budget on internal reasoning by default, # They also spend output budget on internal reasoning by default,
# which empties the user-visible reply when max_tokens is small # which empties the user-visible reply when max_tokens is small
# (like the ~200 we use for notifications). reasoning_effort # (like the ~200 we use for notifications). The lowest
# 'minimal' keeps that internal reasoning to a minimum so the # reasoning_effort the model accepts keeps that internal reasoning
# entire budget is available for the translation, which is # to a minimum so the budget goes to the translation.
# exactly what this pipeline wants. OpenAI documents 'minimal',
# 'low', 'medium', 'high' — 'minimal' is the right setting for a
# straightforward translate+explain task.
elif self._is_reasoning_model(self.model): elif self._is_reasoning_model(self.model):
payload['max_completion_tokens'] = max_tokens payload['max_completion_tokens'] = max_tokens
payload['reasoning_effort'] = 'minimal' payload['reasoning_effort'] = self._reasoning_effort(self.model)
else: else:
payload['max_tokens'] = max_tokens payload['max_tokens'] = max_tokens
payload['temperature'] = 0.3 payload['temperature'] = 0.3
@@ -98,6 +98,31 @@ class OpenAICompatibleModelTests(unittest.TestCase):
self.assertNotIn("temperature", provider.captured_payload) self.assertNotIn("temperature", provider.captured_payload)
self.assertNotIn("max_tokens", provider.captured_payload) self.assertNotIn("max_tokens", provider.captured_payload)
def test_newer_reasoning_models_use_low_effort(self):
# gpt-5.1+ reject 'minimal'; gpt-6* were sent chat parameters before.
for model in ("gpt-5.6-luna", "gpt-6-luna", "gpt-6.1-sol"):
with self.subTest(model=model):
provider = CapturingOpenAIProvider(api_key="token", model=model)
self.assertEqual(provider.generate("system", "user", max_tokens=123), "ok")
self.assertEqual(provider.captured_payload["max_completion_tokens"], 123)
self.assertEqual(provider.captured_payload["reasoning_effort"], "low")
self.assertNotIn("temperature", provider.captured_payload)
self.assertNotIn("max_tokens", provider.captured_payload)
def test_classic_chat_models_keep_chat_contract(self):
for model in ("gpt-4.1", "gpt-4o-mini"):
with self.subTest(model=model):
provider = CapturingOpenAIProvider(api_key="token", model=model)
self.assertEqual(provider.generate("system", "user", max_tokens=123), "ok")
self.assertEqual(provider.captured_payload["max_tokens"], 123)
self.assertEqual(provider.captured_payload["temperature"], 0.3)
self.assertNotIn("reasoning_effort", provider.captured_payload)
self.assertNotIn("max_completion_tokens", provider.captured_payload)
def test_runtime_ai_config_prefers_provider_specific_model(self): def test_runtime_ai_config_prefers_provider_specific_model(self):
manager = self._manager({ manager = self._manager({
"ai_enabled": "true", "ai_enabled": "true",
@@ -814,7 +814,7 @@ curl -H "Authorization: Bearer <api-token>" \\
curl -X POST http://<host>:8008/api/notifications/test-ai \\ curl -X POST http://<host>:8008/api/notifications/test-ai \\
-H "Authorization: Bearer <api-token>" \\ -H "Authorization: Bearer <api-token>" \\
-H "Content-Type: application/json" \\ -H "Content-Type: application/json" \\
-d '{"provider":"openai","api_key":"sk-...","model":"gpt-4o-mini"}'`} -d '{"provider":"openai","api_key":"sk-...","model":"gpt-6-luna"}'`}
className="my-4" className="my-4"
/> />
@@ -130,8 +130,8 @@
"tagline": "Industriestandard. Sehr genau und weit verbreitet.", "tagline": "Industriestandard. Sehr genau und weit verbreitet.",
"items": [ "items": [
"API-Schlüssel: <a>platform.openai.com/api-keys</a>", "API-Schlüssel: <a>platform.openai.com/api-keys</a>",
"Beispiele aus der mitgelieferten Modellliste: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Beispiele aus der mitgelieferten Modellliste: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Mitgelieferte Empfehlung: <strong><code>gpt-4.1-nano</code></strong>. Der Adapter unterstützt auch besondere Anforderungen von Reasoning-Modellen; die Liste enthält gpt-5-nano. Diese Modelle sind daher nicht pauschal ausgeschlossen." "Mitgelieferte Empfehlung: <strong><code>gpt-6-luna</code></strong>, das günstigste aktuelle Modell. Alle Modelle der Liste sind Reasoning-Modelle; der Adapter sendet jedem die Parameter, die es akzeptiert."
], ],
"baseUrlTitle": "OpenAI-kompatible Basis URL", "baseUrlTitle": "OpenAI-kompatible Basis URL",
"baseUrlBody": "Der OpenAI-Anbieter akzeptiert eine eigene <em>Basis-URL</em> für OpenAI-kompatible Endpunkte, etwa <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> und <strong>Fireworks AI</strong>, die das Format <code>/v1/chat/completions</code> unterstützen. Tragen Sie die URL im OpenAI-Bereich neben dem API-Schlüssel ein." "baseUrlBody": "Der OpenAI-Anbieter akzeptiert eine eigene <em>Basis-URL</em> für OpenAI-kompatible Endpunkte, etwa <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> und <strong>Fireworks AI</strong>, die das Format <code>/v1/chat/completions</code> unterstützen. Tragen Sie die URL im OpenAI-Bereich neben dem API-Schlüssel ein."
@@ -130,8 +130,8 @@
"tagline": "Industry standard. Very accurate and widely used.", "tagline": "Industry standard. Very accurate and widely used.",
"items": [ "items": [
"API key: <a>platform.openai.com/api-keys</a>", "API key: <a>platform.openai.com/api-keys</a>",
"Examples from the bundled model list: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Examples from the bundled model list: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Bundled recommendation: <strong><code>gpt-4.1-nano</code></strong>. The adapter also handles model-specific requirements for reasoning models; the bundled list includes gpt-5-nano, so reasoning models are not universally excluded." "Bundled recommendation: <strong><code>gpt-6-luna</code></strong>, the most economical current model. Every model in the bundled list is a reasoning model; the adapter sends each one the parameters it accepts."
], ],
"baseUrlTitle": "OpenAI-compatible base URL", "baseUrlTitle": "OpenAI-compatible base URL",
"baseUrlBody": "The OpenAI provider also accepts a custom <em>Base URL</em>, which lets you point the Monitor at any OpenAI-compatible endpoint. Confirmed to work with <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong>, <strong>Fireworks AI</strong>, and any other service that speaks the OpenAI <code>/v1/chat/completions</code> dialect. Set the URL in the OpenAI tab next to the API key field." "baseUrlBody": "The OpenAI provider also accepts a custom <em>Base URL</em>, which lets you point the Monitor at any OpenAI-compatible endpoint. Confirmed to work with <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong>, <strong>Fireworks AI</strong>, and any other service that speaks the OpenAI <code>/v1/chat/completions</code> dialect. Set the URL in the OpenAI tab next to the API key field."
@@ -130,8 +130,8 @@
"tagline": "Estándar de la industria. Muy preciso y ampliamente usado.", "tagline": "Estándar de la industria. Muy preciso y ampliamente usado.",
"items": [ "items": [
"Clave API: <a>platform.openai.com/api-keys</a>", "Clave API: <a>platform.openai.com/api-keys</a>",
"Ejemplos de la lista de modelos incluida: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Ejemplos de la lista de modelos incluida: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Recomendación incluida: <strong><code>gpt-4.1-nano</code></strong>. El adaptador también gestiona requisitos específicos de los modelos de razonamiento; la lista incluye gpt-5-nano, por lo que no se excluyen todos esos modelos." "Recomendación incluida: <strong><code>gpt-6-luna</code></strong>, el modelo actual más económico. Todos los modelos de la lista son de razonamiento; el adaptador envía a cada uno los parámetros que acepta."
], ],
"baseUrlTitle": "Base URL compatible con OpenAI", "baseUrlTitle": "Base URL compatible con OpenAI",
"baseUrlBody": "El proveedor OpenAI también acepta una <em>Base URL</em> personalizada, que te permite apuntar el Monitor a cualquier endpoint compatible con OpenAI. Confirmado que funciona con <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong>, <strong>Fireworks AI</strong> y cualquier otro servicio que hable el dialecto OpenAI <code>/v1/chat/completions</code>. Configura la URL en la pestaña OpenAI junto al campo de API key." "baseUrlBody": "El proveedor OpenAI también acepta una <em>Base URL</em> personalizada, que te permite apuntar el Monitor a cualquier endpoint compatible con OpenAI. Confirmado que funciona con <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong>, <strong>Fireworks AI</strong> y cualquier otro servicio que hable el dialecto OpenAI <code>/v1/chat/completions</code>. Configura la URL en la pestaña OpenAI junto al campo de API key."
@@ -130,8 +130,8 @@
"tagline": "Norme de l'industrie. Très précis et largement utilisé.", "tagline": "Norme de l'industrie. Très précis et largement utilisé.",
"items": [ "items": [
"Clé API : <a>platform.openai.com/api-keys</a>", "Clé API : <a>platform.openai.com/api-keys</a>",
"Exemples de la liste de modèles fournie : <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Exemples de la liste de modèles fournie : <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Recommandation fournie : <strong><code>gpt-4.1-nano</code></strong>. L’adaptateur gère aussi les exigences des modèles de raisonnement ; la liste inclut gpt-5-nano, ils ne sont donc pas tous exclus." "Recommandation fournie : <strong><code>gpt-6-luna</code></strong>, le modèle actuel le plus économique. Tous les modèles de la liste sont des modèles de raisonnement ; l’adaptateur envoie à chacun les paramètres qu’il accepte."
], ],
"baseUrlTitle": "URL de base compatible OpenAI", "baseUrlTitle": "URL de base compatible OpenAI",
"baseUrlBody": "Le fournisseur OpenAI accepte une <em>URL de base</em> personnalisée pour les points d’accès compatibles : <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong>, <strong>Fireworks AI</strong> et les services utilisant le format <code>/v1/chat/completions</code>. Saisissez l’URL dans l’onglet OpenAI près de la clé API." "baseUrlBody": "Le fournisseur OpenAI accepte une <em>URL de base</em> personnalisée pour les points d’accès compatibles : <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong>, <strong>Fireworks AI</strong> et les services utilisant le format <code>/v1/chat/completions</code>. Saisissez l’URL dans l’onglet OpenAI près de la clé API."
@@ -130,8 +130,8 @@
"tagline": "Standard di settore. Molto accurato e ampiamente usato.", "tagline": "Standard di settore. Molto accurato e ampiamente usato.",
"items": [ "items": [
"Chiave API: <a>platform.openai.com/api-keys</a>", "Chiave API: <a>platform.openai.com/api-keys</a>",
"Esempi dall’elenco di modelli incluso: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Esempi dall’elenco di modelli incluso: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Raccomandazione inclusa: <strong><code>gpt-4.1-nano</code></strong>. L’adattatore gestisce anche i requisiti dei modelli di ragionamento; la lista include gpt-5-nano, quindi questi modelli non sono esclusi in generale." "Raccomandazione inclusa: <strong><code>gpt-6-luna</code></strong>, il modello attuale più economico. Tutti i modelli dell’elenco sono modelli di ragionamento; l’adattatore invia a ciascuno i parametri che accetta."
], ],
"baseUrlTitle": "URL di base compatibile con OpenAI", "baseUrlTitle": "URL di base compatibile con OpenAI",
"baseUrlBody": "Il provider OpenAI accetta un <em>URL di base</em> personalizzato per endpoint compatibili, come <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> e <strong>Fireworks AI</strong>, che usano il formato <code>/v1/chat/completions</code>. Imposta l’URL nella scheda OpenAI accanto alla chiave API." "baseUrlBody": "Il provider OpenAI accetta un <em>URL di base</em> personalizzato per endpoint compatibili, come <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> e <strong>Fireworks AI</strong>, che usano il formato <code>/v1/chat/completions</code>. Imposta l’URL nella scheda OpenAI accanto alla chiave API."
@@ -130,8 +130,8 @@
"tagline": "Padrão industrial. Muito preciso e amplamente utilizado.", "tagline": "Padrão industrial. Muito preciso e amplamente utilizado.",
"items": [ "items": [
"Chave API: <a>platform.openai.com/api-keys</a>", "Chave API: <a>platform.openai.com/api-keys</a>",
"Exemplos da lista de modelos incluída: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Exemplos da lista de modelos incluída: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Recomendação incluída: <strong><code>gpt-4.1-nano</code></strong>. O adaptador também trata requisitos dos modelos de raciocínio; a lista inclui gpt-5-nano, pelo que esses modelos não são excluídos em geral." "Recomendação incluída: <strong><code>gpt-6-luna</code></strong>, o modelo atual mais económico. Todos os modelos da lista são de raciocínio; o adaptador envia a cada um os parâmetros que aceita."
], ],
"baseUrlTitle": "URL base compatível com OpenAI", "baseUrlTitle": "URL base compatível com OpenAI",
"baseUrlBody": "O fornecedor OpenAI aceita um <em>URL base</em> personalizado para serviços compatíveis, como <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> e <strong>Fireworks AI</strong>, que utilizam o formato <code>/v1/chat/completions</code>. Defina o URL no separador OpenAI junto à chave API." "baseUrlBody": "O fornecedor OpenAI aceita um <em>URL base</em> personalizado para serviços compatíveis, como <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> e <strong>Fireworks AI</strong>, que utilizam o formato <code>/v1/chat/completions</code>. Defina o URL no separador OpenAI junto à chave API."
@@ -130,8 +130,8 @@
"tagline": "Priemyselná norma. Veľmi presné a široko používané.", "tagline": "Priemyselná norma. Veľmi presné a široko používané.",
"items": [ "items": [
"Kľúč API: <a>platform.openai.com/api-keys</a>", "Kľúč API: <a>platform.openai.com/api-keys</a>",
"Príklady z dodaného zoznamu modelov: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Príklady z dodaného zoznamu modelov: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Dodané odporúčanie: <strong><code>gpt-4.1-nano</code></strong>. Adaptér spracúva aj osobitné požiadavky modelov uvažovania; zoznam obsahuje gpt-5-nano, takže tieto modely nie sú všeobecne vylúčené." "Dodané odporúčanie: <strong><code>gpt-6-luna</code></strong>, najúspornejší aktuálny model. Všetky modely v zozname sú modely uvažovania; adaptér každému posiela parametre, ktoré prijíma."
], ],
"baseUrlTitle": "Základné URL kompatibilné s OpenAI", "baseUrlTitle": "Základné URL kompatibilné s OpenAI",
"baseUrlBody": "Poskytovateľ OpenAI prijíma vlastnú <em>Základnú URL</em> pre kompatibilné služby, napríklad <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> a <strong>Fireworks AI</strong>, ktoré používajú formát <code>/v1/chat/completions</code>. URL nastavte na karte OpenAI vedľa kľúča API." "baseUrlBody": "Poskytovateľ OpenAI prijíma vlastnú <em>Základnú URL</em> pre kompatibilné služby, napríklad <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> a <strong>Fireworks AI</strong>, ktoré používajú formát <code>/v1/chat/completions</code>. URL nastavte na karte OpenAI vedľa kľúča API."
@@ -130,8 +130,8 @@
"tagline": "Industristandard. Mycket exakt och allmänt används.", "tagline": "Industristandard. Mycket exakt och allmänt används.",
"items": [ "items": [
"API-nyckel: <a>platform.openai.com/api-keys</a>", "API-nyckel: <a>platform.openai.com/api-keys</a>",
"Exempel från den medföljande modellistan: <code>gpt-4.1-nano</code>, <code>gpt-4.1-mini</code>, <code>gpt-4o-mini</code>, <code>gpt-4.1</code>, <code>gpt-4o</code>, <code>gpt-5-nano</code>.", "Exempel från den medföljande modellistan: <code>gpt-6-luna</code>, <code>gpt-5.6-luna</code>, <code>gpt-5.4-mini</code>, <code>gpt-6-sol</code>, <code>gpt-5.5</code>.",
"Medföljande rekommendation: <strong><code>gpt-4.1-nano</code></strong>. Adaptern hanterar även särskilda krav för resonemangsmodeller; listan innehåller gpt-5-nano, så sådana modeller är inte generellt uteslutna." "Medföljande rekommendation: <strong><code>gpt-6-luna</code></strong>, den mest ekonomiska aktuella modellen. Alla modeller i listan är resonemangsmodeller; adaptern skickar varje modell de parametrar den accepterar."
], ],
"baseUrlTitle": "OpenAI-kompatibel bas URL", "baseUrlTitle": "OpenAI-kompatibel bas URL",
"baseUrlBody": "OpenAI-leverantören accepterar en egen <em>Bas-URL</em> för kompatibla tjänster som <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> och <strong>Fireworks AI</strong>, som stöder formatet <code>/v1/chat/completions</code>. Ange URL:en på OpenAI-fliken bredvid API-nyckeln." "baseUrlBody": "OpenAI-leverantören accepterar en egen <em>Bas-URL</em> för kompatibla tjänster som <strong>BytePlus / ByteDance (Kimi K2.5)</strong>, <strong>LocalAI</strong>, <strong>LM Studio</strong>, <strong>vLLM</strong>, <strong>Together AI</strong> och <strong>Fireworks AI</strong>, som stöder formatet <code>/v1/chat/completions</code>. Ange URL:en på OpenAI-fliken bredvid API-nyckeln."