Flytta från OpenAI till Porten
För en applikation som använder Chat Completions börjar bytet med två inställningar:
Portens API-nyckel och https://porten.ai/v1 som bas-URL. Du behöver också välja ett
modell-ID från Portens katalog. Ett GPT-modellnamn blir inte automatiskt en motsvarande
modell hos Porten, och samma API-format innebär inte samma svarskvalitet.
1. Skapa nyckeln och välj modell
Skapa en nyckel i API keys. Använd en separat serverhemlighet för Porten; skicka inte din OpenAI-nyckel till en annan leverantör och lägg inte nyckeln i webbläsarkod.
export PORTEN_API_KEY="sk-porten-…"
curl --fail-with-body https://porten.ai/v1/models \
-H "Authorization: Bearer $PORTEN_API_KEY"
Välj en chattmodell från svaret och sätt PORTEN_MODEL till dess exakta id i din
servermiljö. Kontrollera kapabiliteter, kontext och aktuell tillgänglighet i
modellkatalogen. Ett erbjudet modell-ID är inte ett löfte om ledig kapacitet
för just din nyckels region och nodklass. Se modeller och laddning.
2. Byt klientkonfiguration
Med OpenAI:s Python-SDK kan resten av ett enkelt Chat Completions-anrop behålla sin form:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PORTEN_API_KEY"],
base_url="https://porten.ai/v1",
)
response = client.chat.completions.create(
model=os.environ["PORTEN_MODEL"],
messages=[{"role": "user", "content": "Skriv en kort hälsning."}],
max_tokens=128,
)
print(response.choices[0].message.content)
För strömning använder du stream=True och läser chunk.choices[0].delta.content
när choices inte är tom. Fullständiga Python- och TypeScript-exempel finns i
Quickstart; inställningar för färdiga verktyg finns i
integrationsguiden.
3. Avgränsa vad som migreras
| Befintlig funktion | Kontroll före byte |
|---|---|
| Textchatt och strömning | Testa Chat Completions med vald modell och hantera tomma strömningsdelar. |
| Verktygsanrop, JSON eller bildindata | Kontrollera modellens verifierade kapabiliteter och testa verkliga indata. |
| Embeddings | Kontrollera modell och dimension; bygg om vektorindex om embeddingmodellen byts. |
| Responses, Assistants eller leverantörens lagrade konversationer | Ett byte av bas-URL räcker inte. Portens dokumenterade chattgränssnitt är /v1/chat/completions; konversationshistorik måste hanteras i applikationen. |
| Fakturering och gränser | Porten har separat saldo, prissättning, kvoter och modellutbud. |
Använd API-referensen som gräns för stödda endpoints och parametrar. Flytta inte en hel applikation enbart för att ett enkelt chattanrop fungerar.
4. Verifiera före produktionsbyte
Kör samma representativa frågor mot båda implementationerna. Jämför korrekta svar, verktygsargument, kontextgränser, svarstid och faktisk kostnad i Activity. Testa även otillgänglig modell, avbruten ström och begränsad kapacitet. Sätt begränsade återförsök; en trasig anslutning kan inträffa efter att inferensen redan har börjat.
Behåll en konfigurationsstyrd återställningsväg under utrullningen. Om region eller nodägande är ett krav får automatisk reservrouting inte kringgå samma krav. Läs jämförelsen av dataresidens innan du väljer policy.
SDK-konfigurationen stöds av OpenAI:s officiella Python-SDK. Exemplet avser Chat Completions; kompatibiliteten måste verifieras mot den SDK-version och de funktioner din applikation använder.
https://porten.ai/docs/migrate-from-openai.md — or grab the
whole site via llms.txt / llms-full.txt.