Hvorfor dit JSON-svar fejler validering
JSON-parsering fejler, når modellen tilføjer konversationel tekst uden for kodeblokken. Uncensored-modeller prioriterer naturlig sprogflyd, så de tilføjer ofte "Her er JSON" før eller efter rådata. Dette ødelægger strenge parseres, der kun forventer objektet.
Brug den response_format parameter indstillet til {"type": "json_object"}. Dette tvinger modellen til kun at outputte gyldig JSON. Det eliminerer behovet for regex-oprydnings-scripts i din kode. Bemærk dog, at dette forbruger flere tokens pr. anmodning, fordi modellen er begrænset.
- Indstil
response_formattiljson_objecti din request payload. - Sørg for, at dit system prompt eksplicit anmoder om JSON-output.
- Håndter efterfølgende kommaer eller mindre syntaksfejl pænt, hvis modellen snubler.
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedllmonline.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)
Håndtering af begrænsninger for kontekstvinduet korrekt
Din kontekstvindu-grænse rummer 100.000 tokens i alt, kombineret både input og output. Hvis du sender en lang historie, skal du reducere den maksimale output-længde. Standard max output er 2.048 tokens, medmindre du angiver andet.
Beregn dine resterende tokens ved at trække din inputstørrelse fra 100,000. Hvis du laver rollespil, skal du holde systemprompten kort. Gem kun nylige samtaletræk i API-anmodningen. Ældre kontekst kan opsummeres eller forkortes. Dette forhindrer, at du rammer den hårde grænse undervejs i generationen.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.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);
Fejl ved funktionkald med ufiltrede modeller
Funktionkald fejler, når modellen ignorerer værktøgsdefinitionerne eller returnerer ugyldige argumenter. Ufiltrede modeller kan prioritere kreative svar frem for streng værktøgsbrug. De kan hallucinere parametre, der ikke findes i dit skema.
Definér dine værktøjer tydeligt i tools array. Brug tool_choice for at tvinge specifik adfærd. Hvis modellen nægter at kalde et værktøj, skal du tjekke din systemprompt for modstridende instruktioner. Sørg for, at værktøjsnavne og beskrivelser er entydige. Test med enkle forespørgsler først for at verificere integrationen.
- Angiv klare værktjsnavne og beskrivelser.
- Brug
tool_choicetil at kontrollere indkaldelse. - Valider argumenter mod dit schema, før eksekvering.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
}'
Streamingafbrydelser og SSE-håndtering
Streaming via Server-Sent Events (SSE) kan miste tokens, hvis klienten afbryder forbindelsen, eller der opstår netværksproblemer. Den sidste chunk indeholder tokenforbrugsstatistikker. Du skal fortolke denne chunk for at få input- og outputtællinger.
Implementer en robust SSE-klient, der håndterer logik til genforbindelse. Antag ikke, at hver del indeholder data. Nogle dele kan være tomme eller kun indeholde mellemrum. Behandle den sidste del for at opdatere din kreditbalance eller token-tællere. Dette sikrer præcis fakturering og forbrugsopsporing.
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)
Temperaturindstillinger, der påvirker NSFW-output
Temperatur styrer tilfældigheden i modellens output. Højere værdier som 0,8 eller 0,9 øger kreativiteten og uforudsigeligheden. Lavere værdier som 0,2 gør outputtet mere deterministisk og fokuseret. Til NSFW-rollespil producerer højere temperaturer mere varierede og intense svar.
Eksperimentér med forskellige værdier for at finde den rigtige balance. For høj temperatur kan føre til inkohærent eller gentagen tekst. For lav temperatur kan resultere i robot-agtig eller kedelig dialog. Juster baseret på den ønskede tone og konsistens. Den ubegrænsede model reagerer godt på højere kreativindstillinger.
- Brug 0.7-0.9 til kreativ rollespil.
- Brug 0.2-0.5 til faktuelle eller kodningsopgaver.
- Overvåg outputkvaliteten, mens du justerer.
Top P og diversitet i rollespilsgenerering
Top P (nucleus-sampling) begrænser modellen til kun at overveje den øverste procentdel af sandsynlighedsmassen. Det fungerer sammen med temperatur for at kontrollere diversitet. En lav Top P-værdi gør outputtet mere forudsigeligt. En høj værdi tillader mere varierede ordvalg.
Kombinér Top P med temperatur for finjusteret kontrol. For eksempel kan en høj temperatur med en lav Top P producere kreativ, men fokuseret tekst. Dette er nyttigt til at opretholde karakterens stemme, mens du tillader spontane handlinger. Test forskellige kombinationer for at passe til din fortællestil.
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedllmonline.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)
Forståelse af tokengrænser og omkostninger
Tokenforbrug påvirker direkte din forudbetalte kredit. API'et opkræver $0.15 per million input-tokens og $0.50 per million output-tokens. Output-tokens er dyrere, fordi de repræsenterer modellens arbejde. Streaming ændrer ikke prisen; du betaler for alle genererede tokens.
Overvåg din tokenforbrug for at undgå uventede gebyrer. Den sidste SSE-chunk giver det præcise tokenantal. Brug dette til at opdatere din lokale saldo eller faktureringsdashboard. Fejl og afslag er gratis, så du betaler kun for succesfulde udfyldninger. Denne pay-as-you-go-model sikrer, at du aldrig betaler for meget.
- Input tokens koster $0,15 per million.
- Output tokens koster $0.50 per million.
- Afslag og fejl er gratis.
API-nøgleudskiftning og hastighedsbegrænsninger
Hver konto tillader kun én aktiv API-nøgle. Hvis du regenererer din nøgle, bliver den gamle nøgle øjeblikkeligt ugyldig. Dette sikrer sikkerhed, men kræver, at du opdaterer dine klienter hurtigt. Rate limits er indstillet til 300 anmodninger i minuttet og 8 samtidige anmodninger per nøgle.
Overskridelse af disse grænser medfører HTTP 429-fejl. Implementér eksponentiel backoff i din retry-logik. Overvåg dit anmodningsvolumen for at holde dig inden for grænserne. Hvis du har brug for højere throughput, kan du overveje at opdele din arbejdsbyrde over flere konti eller optimere dine promptstørrelser. Nøglen vises øjeblikkeligt ved tilmelding, så hold den sikker.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedllmonline.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);
Fejlfinding af almindelige HTTP-fejl
HTTP-fejl indikerer problemer med din anmodning eller serverens svar. Almindelige fejl inkluderer 400 Bad Request, 401 Unauthorized og 429 Too Many Requests. En 400-fejl betyder ofte ugyldig JSON eller ugyldige parametre. En 401-fejl indikerer en forkert eller udløbet API-nøgle.
Tjek dine request-headere og payload for syntaksfejl. Verificér, at din API-nøgle er korrekt og aktiv. Hvis du modtager en 429-fejl, skal du vente og gentage med eksponentiel backoff. Brug de officielle OpenAI SDK'er til at håndtere disse fejl automatisk. De giver klare fejlmeddelelser og retry-logik. Dette reducerer udviklingstiden og forbedrer pålideligheden.
- 400: Tjek JSON-syntax og parametre.
- 401: Verificer API-nøgle gyldighed.
- 429: Implementer retry-logik med backoff.
curl https://api.abliteratedllmonline.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the python dependencies for this flask app"}]
}'