fi ▾
Hanki API-avain

Unrestricted ai: Troubleshooting Common Mistakes

Kehittäjät törmäävät usein seiniin vaihdettaessa rajoittamattomaan tekoälytarjoajaan, koska standardit oletukset muotoilusta, rajoista ja streamauskäyttäytymisestä eivät enää päde. Tämä opas auttaa sinua vianmäärityksessä yleisimmistä integraatiovirheistä, jotta voit deployoida mallisi ilman hukattuja kreditejä tai rikkoutuneita työvuoroja.

Viimeksi päivitetty

Yhteenveto

  1. Konteksti-ikkuna sisältää sekä syötteen että tuotoksen, joten sinun on varattava tilaa tuotokselle välttääksesi leikkauksen.
  2. JSON-tila vaatii tiukan skeeman noudattamisen, ja malli voi palauttaa ylimääräistä tekstiä, jos prompti on epäselvä.
  3. SSE-virran kautta tapahtuvat striimaukset vaativat sinua käsittelemään osittaiset tokenit turvallisesti rikkomatta jäsentintäsi.
  4. Nopeusrajoitukset toteutetaan avainten perusteella, joten syklisen liikenteen kuvioiden kohdalla tarvitaan huolellisia taantumastrategioita 429-virheiden välttämiseksi.

1. Kontekstiikkunan katto

Jokainen pyyntö laskee tokenit sekä promptista että tuotetusta täydennyksestä yhteiseen rajaasi. Jos lähetät suuren kontekstin ja pyydät pitkää vastausta, saavutat katon ennen kuin malli on valmis tuottamaan tekstiä. Uncensored-mallimme tukee 100,000-token kontekstiikkunaa, mutta maksimilähtö pyyntöä kohden on rajoitettu 16,000 tokeniin, ellei toisin määrätä. Laske aina jäljellä olevat tokenit järjestelmäpromptin ja keskusteluhistorian jälkeen varmistaaksesi, että mallilla on tarpeeksi tilaa ajatuksen viimeistelyyn. Tämän huomioimatta jättäminen johtaa usein katkeaviin vastauksiin, jotka hämmentävät jälkikäsittelyohjelmia.

from openai import OpenAI

client = OpenAI(base_url="https://api.chatgptunrestricted.cc/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)

2. JSON-tila & tiukka muotoilu

JSON-tila pakottaa mallin tuottamaan kelvollisen JSONin, mutta se ei takaa täydellistä kaavion noudattamista kaikissa ääritapauksissa. Kun asetat vastausmuodon arvoksi json_object, malli priorisoi syntaktisen pätevyyden tiukan tyyppivalvonnan sijaan. Jos kaavaasi on liian monimutkainen, malli voi keksiä kenttiä tai jättää valinnaiset pois pitääkseen rakenteen pätevänä. Tarkista aina tulos omalla puolellasi ennen kuin jäsennät sen tiukaksi tyypiksi. Tämä pätee erityisesti uncensored-malleihin, jotka voivat ottaa luovia vapauksia JSON-arvojen sisällä olevasta sisällöstä.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.chatgptunrestricted.cc/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);

3. Streamaa osittaisia vastauksia

Streamaus mahdollistaa tokenien vastaanottamisen niiden luonnin aikana, mikä parantaa koettua viivettä suurissa vastauksissa. Sinun on käsiteltävä Server-Sent Events (SSE) -streami oikein välttääksesi datan menetyksen tai jäsentämisvirheet. Jokainen osa sisältää osittaisen tokenin, ja viimeinen osa sisältää pyynnön kokonaistokenkäytön. Jos katkaiset yhteyden ennenaikaisesti, menetät viimeisen käyttötiedon ja saatat jättää palvelimen epäjohdonmukaiseen tilaan. Varmista aina, että asiakasohjelmasi osaa käsitellä epätäydellisiä JSON-fragmentteja, jos streamaat strukturoitua dataa.

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)

4. Työkalun valinta & funktiokutsuvirheet

Toimintojen kutsuminen vaatii tarkan kaaviomäärittelyn ja epäonnistuu usein, jos malli ei pysty kartoittamaan käyttäjän syötettä tiettyyn työkaluun. Jos määrittelet tool_choice, malli voi pakottaa työkalukutsun vaikka se ei olekin paikallaan, mikä johtaa tyhjiin tai epärelevantteihin argumentteihin. Varmista, että työkalumäärittelyt ovat yksinkertaisia ja selkeästi kuvattuja. Malli tukee standardia OpenAI-yhteensopivaa työkalumuotoa, joten voit käyttää olemassa olevia SDK:ita. Varmista kuitenkin aina, että työkalulle välitetyt argumentit vastaavat tarkasti odotettuja tyyppejä.

curl https://api.chatgptunrestricted.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Summarize the technical specs of the new GPU architecture"}]
  }'

5. Lämpötila- ja luovuusasetukset

Lämpötilan säätäminen vaikuttaa siihen, miten malli valitsee tokenneja, mikä vaikuttaa tuotannon satunnaisuuteen. Korkeampi lämpötila johtaa luovempiin ja monimuotoisempiin vastauksiin, kun taas alhaisempi lämpötila tekee tuloksesta deterministisemmän ja tarkemman. Jos käytät mallia koodintuotantoon tai faktojen noutamiseen, pidä lämpötila alhaalla välttääksesi hallusinointia. Luovaan kirjoittamiseen tai aivoriiheen lisää lämpötilaa tutkiaksesi monipuolisempia ideoita. Kokeile top_p myös nucleus-samplen hallintaan ja tulosten laadun hienosäätämiseen.

from openai import OpenAI

client = OpenAI(base_url="https://api.chatgptunrestricted.cc/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)

6. Suurten kuormien käsittely

Suuret payloadit voivat ylittää 8 MB pyyntörungon rajan, mikä aiheuttaa API-kutsujen epäonnistumisen hiljaa tai 413-virheellä. Jos lähetät pitkiä keskusteluhistorioita, harkitse vanhempien viestien leikkaamista tai tiivistämistä ennen lähettämistä. Malli voi käsitellä 100,000 tokenia, mutta JSON-payloadin fyysinen koko on myös tärkeä. Varmista, että asiakas kirjasto pakkaa tai muotoilee datan tehokkaasti. Tarkista aina sisällön pituus ennen pyynnön tekemistä välttääksesi krediittien hukkaamisen epäonnistuneissa yrityksissä.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.chatgptunrestricted.cc/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);

7. Nopeusrajoitusten hidastus

Nopeusrajoitukset toteutetaan API-avainten perusteella: enintään 300 pyyntöä minuutissa ja 8 samanaikaista pyyntöä. Jos ylität nämä rajat, saat 429-virheen. Toteuta asiakasohjelmaan eksponentiaalinen taantuma (exponential backoff) toistojen käsittelyyn sujuvasti. Liikennevuorot voivat kuluttaa nopeasti samanaikaisuusrajan, joten jaa pyynnöt ajan suhteen mahdollisuuksien mukaan. Käytön seuranta ja samanaikaisuusasetusten säätäminen auttavat pysymään rajojen sisällä ilman suorituskyvyn heikkenemistä. Tämä on kriittistä tuotantoympäristöiden sujuvan käyttökokemuksen ylläpitämiseksi.

curl https://api.chatgptunrestricted.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Summarize the technical specs of the new GPU architecture"}]
  }'

8. Tokenien laskennan epäsuhtat

Eri tokenisoijat voivat laskea tokenneja eri tavalla, mikä johtaa poikkeamiin paikallisen laskelman ja API:n laskelman välillä. Käytä aina mallin kanssa samaa tokenisoijaa tarkkaa kirjanpitoa varten. API laskuttaa todellisten käsiteltyjen tokenneen perusteella, joten tämän eron ymmärtäminen auttaa ennustamaan kustannuksia tarkasti. Jos huomaat merkittäviä vaihteluita, tarkista tokenisoijin toteutuksesi. Tämä on erityisen tärkeää integroitessa kolmansien osapuolten kirjastoja, jotka voivat käyttää eri tokenisointistrategioita.

from openai import OpenAI

client = OpenAI(base_url="https://api.chatgptunrestricted.cc/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)

Usein kysytyt kysymykset

Mikä on pääasiallinen etu, kun käytetään rajoittamatonta tekoälymallia verrattuna vakiotarjouksiin?

Rajoittamaton tekoälymalli ei yleensä kieltäydy laillisista aikuisille tarkoitetuista, luovista tai kiistanalaisista aiheista, tarjoten enemmän vapautta tiettyihin käyttötapauksiin. Se mahdollistaa sisällön luomisen ilman yritysten turvallisuussuodattimien rajoituksia, mikä tekee siitä ihanteellisen niukkoihin tai radikaaleihin sovelluksiin.

Miten käsittelemme JSON-jäsennysvirheitä suoratoiston aikana?

Streaming lähettää osittaisia tietoja, joten sinun on pidettävä palkat puskurissa, kunnes virta päättyy, tai jäsenneltävä niitä osittain, jos asiakasohjelmistosi tukee sitä. Tarkista aina lopullinen JSON-rakenne ennen sen käyttämistä sovelluksessasi. Jos virheitä ilmenee, tarkista mallin' tuotos mahdollisista jälkikielekkeistä, jotka voivat rikkoa JSON-syntaksin.

Voinko käyttää tätä API:a olemassa olevien työkalujen kanssa toiminnon kutsumiseen?

Kyllä, API tukee standardia OpenAI-yhteensopivaa funktiokutsua. Voit määritellä työkaluja pyynnössäsi, ja malli yrittää kutsua niitä, jos konteksti sitä ehdottaa. Varmista, että työkalujen skeemat ovat selkeitä ja vastaavat odotettuja argumenttityyppejä.

Mitä tapahtuu, jos ylityt 16,000 tokenin ulostulorajan?

Jos pyydät enemmän kuin 16 000 tokenia täydennykseen, malli lopettaa generoinnin tähän rajanpintaan. Saadaksesi pidempiä vastauksia sinun täytyy ehkä toteuttaa strategia jatkaa generointia myöhemmissä pyynnöissä tai säätää syötettäsi olemaan tiiviimpi.

Avaa API-avaimesi

Rekisteröidy, hanki avain ja osoita clientisi uuteen base URL:iin. Siinä kaikki mitä sinun tarvitsee tehdä.

Hanki API-avain