Authenticeren en de basis-URL configureren
Met uw API-sleutel krijgt u onmiddellijk toegang tot het chat completions-endpoint. Genereer een sleutel via Google of e-mail op het dashboard en plak deze in uw environment variables. De basis-URL is https://api.cheapaiapikeys.com/v1 die werkt met elke standaard OpenAI SDK-client.
- Instellen
OPENAI_API_KEYnaar je gegenereerde string. - Overschrijven
base_urlnaar onze gehoste server wijzen. - Verifieer verbinding door
GET /v1/modelsom een lijst met beschikbare modellen weer te geven.
curl https://api.cheapaiapikeys.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List three common regex patterns for validating email addresses"}]
}'
Verstuur uw eerste chatcompletieverzoek
Stuur tekstinput en ontvang gegenereerde tekst met behulp van de standaard chatcompletiestructuur. Ons enkele uncensored-model verwerkt verzoeken zonder wettelijke volwassen of controversiële onderwerpen te weigeren. U kunt parameters aanpassen zoals temperature en top_p om de willekeurigheid te bepalen.
from openai import OpenAI
client = OpenAI(base_url="https://api.cheapaiapikeys.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Streamen inschakelen en SSE-gebeurtenissen verwerken
Real-time tokenlevering inschakelen door stream: true in je verzoek. De server retourneert Server-Sent Events (SSE) die je incrementeel moet parseren. Gegevens over tokengebruik verschijnen in de laatste chunk van de stream. Deze aanpak vermindert de waargenomen latentie voor lange antwoorden.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.cheapaiapikeys.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Gebruik Function Calling en JSON-modus
Definieer tools in je request payload om gestructureerde output of externe functieverwerking mogelijk te maken. Gebruik response_format: {type: "json_object"} om strikte JSON-conformiteit af te dwingen. Het model ondersteunt tool_choice voor precieze controle over welke functies het aanroept. Dit zorgt voor betrouwbare parsing voor je applicatielogica.
Begrijp tokenlimieten en prijzen
Prijzen zijn transparant tegen $0,15 per miljoen invoertokens en $0,50 per miljoen uitvoertokens. Fouten en weigeringen verbruiken geen tegoed. Het contextvenster ondersteunt in totaal 100.000 tokens. Verzoeken die de limiet overschrijden retourneren een 429 rate limit-fout. Zorg ervoor dat je payloads onder de 8 MB blijven om body-fouten te vermijden.
Afhandelen van fouten en randgevallen
Veelvoorkomende fouten zijn onder meer 401 voor ongeldige sleutels en 402 voor onvoldoende tegoed. Een 429-status geeft aan dat je meer dan 300 verzoeken per minuut hebt verwerkt. Gebruik exponentiële backoff bij het opnieuw proberen na limieten. Controleer de error object in de JSON-respons voor specifieke details. Er worden geen restitutie verleend, dus monitor je gebruik nauwlettend.
Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)