Les équipes changent pour trois raisons : les coûts, le contrôle et les données. Vous voulez un terminal privé, des performances prévisibles et une facture que vous pouvez expliquer. La bonne nouvelle, c'est que vous n'avez pas besoin de reconstruire votre application pour y parvenir. Si votre client parle à OpenAI aujourd'hui, vous pouvez le diriger vers votre propre serveur et conserver la majeure partie de votre code.
Essayez Compute dès aujourd'hui
Vous voulez un terminal prêt à l'emploi ? Lancez un VllM serveur sur Calculer, choisissez une région et obtenez une URL HTTPS compatible avec les SDK OpenAI. Modifiez l'URL de base et la clé de votre client et vous êtes en ligne.
Ce que doit signifier « compatible avec OpenAI »
La compatibilité n'est pas un slogan. Cela signifie que le serveur expose les mêmes itinéraires et formes de charge utile : /v1/chat/completions, /v1/completions et le streaming avec Server‑Sent Events. Vous envoyez toujours le modèle, les messages, les max_tokens, la température et le reste. Les erreurs doivent suivre des structures similaires afin que votre gestion actuelle continue de fonctionner.
Cartographiez vos modèles et paramètres
Créez une petite carte modèle dans la configuration. Votre catalogue sera différent de celui d'OpenAI. Gardez les noms stables et les valeurs par défaut des documents. Commencez par des réglages simples et sûrs : température 0,3 à 0,7, top_p 0,9 et max_tokens serrés. Passez en revue les séquences d'arrêt, les pénalités de présence/fréquence et tous les champs spécifiques au serveur.
Mettez à jour votre client
Python
depuis openai, importez OpenAI
client = OpenAI (base_url= » https://YOUR-ENDPOINT/v1 «, API_KEY="VOTRE_CLÉ »)
resp = client.chat.completions.create (
model="f3-7b-instruct », # exemple
messages= [{"role » :"user », "content » :"Rédigez une brève mise à jour du statut. «}],
max_jetons=200,
)
imprimer (resp.choices [0] .message.content)
Nœud
importer OpenAI depuis « openai » ;
const client = new OpenAI ({baseUrl : "https://YOUR-ENDPOINT/v1 «, ApiKey : process.env.key}) ;
const resp = wait client.chat.completions.create ({
modèle : « f3-7b-instruct »,
messages : [{role : « user », content : « Résumez les notes de la réunion d'hier. »}],
nombre maximum de jetons : 200
}) ;
console.log (resp.choices [0] .message.content) ;
Conservez votre logique de nouvelle tentative. Veillez à ce que les temps morts soient raisonnables. Enregistrez l'ID de demande (ou fournissez-en un) afin de pouvoir suivre les problèmes sur le client et le serveur.
Streaming bien fait
Utilisez les événements envoyés par le serveur lorsque votre interface utilisateur attend une diffusion en direct. Testez les deux voies : flux heureux et annulations brusques. Vérifiez que les générations partielles sont utilisables si un utilisateur arrête prématurément. Assurez-vous que votre client décode correctement les segments et efface les buffers entre les requêtes.
Planifiez les limites tarifaires et les nouvelles tentatives
Tenez-vous en à un retard exponentiel avec gigue. Faites des demandes idempotentes lorsque vous le pouvez. Préférez 429 pour les signaux de retour en arrière et incluez une indication indiquant quand il faut réessayer. Du côté du serveur, définissez des limites tenant compte des jetons afin qu'une discussion comportant de nombreuses instructions ne bloque pas les autres.
Maîtrisez les coûts
La dérive budgétaire provient de longues instructions et de max_tokens lâches. Capuchons les deux. Diffusez les résultats. Invitations du système de mise en cache. Si vous utilisez RAG, veillez à ce que les morceaux soient petits et pertinents. Surveillez les incohérences de tokenisation entre les SDK.
Mesurez avant et après
Piste délai jusqu'au premier jeton (TTFT) et jetons par seconde (TPS) pour les mêmes tâches sur les deux terminaux. Un serveur auto-hébergé à proximité de vos utilisateurs, avec un traitement par lots efficace, devrait améliorer les deux. Si ce n'est pas le cas, dimensionnez le matériel correctement, raccourcissez les instructions et vérifiez l'état du cache.
Confidentialité et résidence
Décidez ce que vous enregistrez, pendant combien de temps et qui peut le lire. Évitez de stocker des instructions et des sorties brutes, sauf si vous y êtes obligé. Utilisez le protocole HTTPS. Faites pivoter les touches. Si vous exercez vos activités en Europe, conservez les données par région et conservez et supprimez les documents.
Essayez Compute
Points de terminaison de calcul sont HTTPS par défaut. Choisissez la France pour les utilisateurs de l'UE ou une région des Émirats arabes unis pour les marchés voisins.
Liste de contrôle de migration
- Rédigez un modèle et une carte de paramètres.
- Échangez l'URL de base et saisissez votre client.
- Testez le chat et le streaming avec un ensemble d'invites fixes.
- Vérifiez les formes d'erreur et réessayez le comportement.
- Capturez max_tokens et coupez les instructions.
- Ajoutez des limites de débit tenant compte des jetons sur la passerelle.
- Enregistrez le TTFT, le TPS, la longueur de la file d'attente et l'utilisation de la mémoire.
- Choisissez une région proche des utilisateurs et confirmez la latence.
- Passez en revue les politiques de journalisation et de conservation.
- Déployez progressivement et observez les chiffres.
FAQ
Le streaming fonctionne-t-il de la même manière ?
Oui, si le serveur prend en charge les événements envoyés par le serveur pour /chat/completions. Testez le décodage des blocs et le comportement d'arrêt anticipé chez votre client.
Qu'en est-il des différences de tokenisation ?
Différents modèles utilisent différents tokeniseurs. Synchronisez le tokenizer et le modèle et vérifiez les chiffres dans le calcul de votre budget.
Comment tester rapidement la compatibilité ?
Exécutez une petite suite de messages de discussion sur les deux terminaux et comparez les réponses, les latences et les codes d'erreur. Ajoutez un test de streaming et un test de temporisation.
Puis-je conserver des données dans l'UE ?
Oui Hébergez le terminal dans une région de l'UE, utilisez le protocole HTTPS, contrôlez l'accès à l'aide de clés et de listes IP et définissez des limites de rétention.