DémarrerCompatibilité OpenAI
Compatibilité OpenAI
La gateway implémente strictement le contrat openai.chat.completions. Les SDK officiels Python et Node.js fonctionnent sans modification de code applicatif : il suffit de pointer base_url sur notre domaine.
Principe#principe
Le format de requête et de réponse, les codes d'erreur, les messages Server-Sent Events sont identiques à ceux d'OpenAI. Votre application existante peut migrer vers 3GK en remplaçant deux variables d'environnement : OPENAI_BASE_URL et OPENAI_API_KEY.
Bibliothèques tierces. Tout outil qui se branche sur l'API OpenAI (LangChain, LlamaIndex, Continue, Aider, Cursor, etc.) est compatible. Il suffit que l'outil accepte un
base_url personnalisable. SDK officiels#sdks
Python
openai >= 1.40.0
SDK officiel OpenAI. Pointer
base_url sur notre domaine.Node.js / TypeScript
openai >= 4.50.0
SDK officiel OpenAI · typings inclus.
Go
github.com/sashabaranov/go-openai
SDK communautaire maintenu, compatible 3GK.
Exemple Python#exemple
openai>=1.40.0
from openai import OpenAI client = OpenAI( base_url="https://ai.3gks.cloud/v1", api_key="sk-3gk-7XQp4kL8…", ) response = client.chat.completions.create( model="3gk-llm", messages=[ {"role": "system", "content": "Tu es un assistant pour courtier en assurance."}, {"role": "user", "content": "Résume ce contrat : …"}, ], temperature=0.3, max_tokens=512, ) print(response.choices[0].message.content)
Différences à connaître#differences
- Pas de fine-tuning, files, batch, assistants — nous exposons uniquement
chat/completionsetmodels. - Pas de génération d'image / audio en V1 publique.
- Pas de quotas exposés dans les headers (
X-RateLimit-*non émis) — la modération se fait au niveau infrastructure. - Extension propriétaire : un champ
effortdans le body règle l'effort de raisonnement chain-of-thought de3gk-llm(paliersoff/low/medium/high). Raisonnement opt-in : défautoff. Le paramètre standardreasoning_effortest accepté comme alias. Voir Chat completions. - Extension propriétaire : un champ
background: truedans le body dechat/completionsexécute la requête en tâche de fond (202+job_…, résultat par pollingGET /v1/jobs/{id}) — indispensable au-delà de ~100 s de génération non streamée. Voir Jobs asynchrones.
