Miért hibáztatja a JSON válaszod a validációt
A JSON feldolgozás akkor sikertelen, amikor a modellbeszéd szöveget fűz a kódblokkon kívülre. Az uncensored modellek a természetes nyelvi folyamatot részesítik előnyben, ezért gyakran hozzáadnak egy "Íme a JSON" szöveget az adatok elé vagy után. Ez megtöri a szigorú parserokat, amelyek csak az objektumot várják.
Használja a response_format paraméter beállítva {"type": "json_object"}. Ez kényszeríti a modellt, hogy csak érvényes JSON-t adjon vissza. Ez megszünteti a regex tisztító szkriptek szükségességét a kódodban. Vegyéd azonban figyelembe, hogy ez több tokent fogyaszt kérésenként, mivel a modell korlátozott.
- Beállítás
response_formatajson_objecta kérés payloadjában. - Győződjön meg arról, hogy a rendszer promptja kifejezetten JSON kimenetet kér.
- Kezelje a végző vesszőket vagy kisebb szintaktikai hibákat gracefully, ha a modell elszúrja.
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)
Kontextusablak-korlátok helyes kezelése
A kontextusablakod 100 000 tokenben maximális, beleértve a bemenetet és a kimenetet is. Ha hosszú előzményeket küldesz, csökkentened kell a maximális kimeneti hosszúságot. A maximális kimenet alapértelmezetten 2 048 token, hacsak mást nem adsz meg.
Számítsa ki a megmaradt tokeneket az input méretének 100,000-ből való kivonásával. Ha szerepjátékot végez, tartsa tömören a rendszerpromptot. Csak a legutóbbi párbeszédfordulatokat tárolja az API-kérésben. A régebbi kontextust összefoglalhatja vagy levághatja. Ez megakadályozza, hogy a generálás közben elérje a hardveres limitet.
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);
Function calling hibák uncensored modelleknél
A function calling akkor sikertelen, ha a modell figyelmen kívül hagyja az eszközdefiníciókat, vagy érvénytelen argumentumokat ad vissza. Az uncensored modellek a kreatív válaszokat részesíthetik előnyben a szigorú eszközhasonználattal szemben. Hallucinálhatnak paramétereket, amelyek nem léteznek a sémádban.
Határozza meg egyértelműen az eszközeit a tools tömb. Használja a tool_choice specifikus viselkedés kikényszerítéséhez. Ha a modell nem hívja meg az eszközt, ellenőrizze a rendszerpromptot ütköző utasítások szempontjából. Győződjön meg arról, hogy az eszköznevek és leírások egyértelműek. Egyszerű lekérdezésekkel tesztelje először az integrációt.
- Adjon meg egyértelmű eszközneveket és leírásokat.
- Használat
tool_choicea kreatitív vezérléséhez. A meghívás vezérléséhez. - Argumentumok validálása a sémája ellen végrehajtás előtt.
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"}]
}'
Streamelési megszakítások és SSE kezelés
A Server-Sent Events (SSE) streaming során a tokenek elvészhetnek, ha a kliens megszakítja a kapcsolatot, vagy hálózati hiba lép fel. Az utolsó chunk tartalmazza a token-használati statisztikákat. Ezt a chunkot fel kell dolgoznia a bemeneti és kimeneti tokenek megszerzéséhez.
Implementáljon egy robusztus SSE klienst, amely kezeli az újracsatlakozási logikát. Ne feltételezze, hogy minden darab tartalmaz adatot. Egyes darabok üresek lehetnek, vagy csak whitespace-t tartalmaznak. Feldolgozza az utolsó darabot a hitel egyenleg vagy token számlálók frissítéséhez. Ez biztosítja a pontos számlázást és felhasználáskövetést.
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)
Hőmérséklet beállítások NSFW kimenethez
A hőmérséklet szabályozza a modell kimenetének véletlenszerűségét. A magasabb értékek, mint 0,8 vagy 0,9, növelik a kreativitást és a kiszámíthatatlanságot. Az alacsonyabb értékek, mint 0,2, meghatározottabbá és fókuszáltabbá teszik a kimenetet. NSFW szerepjátékhoz a magasabb hőmérséklet változatosabb és intenzívebb válaszokat eredményez.
Kísérletezzen különböző értékekkel, hogy megtalálja a megfelelő egyensúlyt. A túl magas temperature koherens vagy ismétlődő szöveghez vezethet. A túl alacsony temperature gépies vagy ízléstelen párbeszédet eredményezhet. Állítsa be a kívánt hangulat és konzisztencia alapján. Az érettségi mentes modell jól reagál a magasabb kreatív beállításokra.
- Használjon 0,7-0,9 értéket kreatív szerepjátékhoz.
- Használjon 0,2-0,5 értéket tényalapú vagy kódolási feladatokhoz.
- Figyelje a kimeneti minőséget az állítások során.
Top P és sokszínűség szerepjáték generálásnál
A Top P (nucleus sampling) korlátozza a modellt, hogy csak a valószínűségi tömeg felső százalékát vegye figyelembe. A hőmérséklettel együtt működve szabályozza a sokszínűséget. Egy alacsony Top P érték kiszámíthatóbb kimenetet eredményez. Egy magas érték változatosabb szóválasztást tesz lehetővé.
Kombinálja a Top P-t a temperature-rel a finomhangoláshoz. Például egy magas temperature és egy alacsony Top P kreatív, de fókuszált szöveget generálhat. Ez hasznos a karakterhang megőrzéséhez, miközben spontán cselekvéseket tesz lehetővé. Teszteljen különböző kombinációkat a narratív stílusához igazítva.
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)
Tokenkorlátok és költségek megértése
A tokenhasználat közvetlenül befolyásolja az előre fizetett hitelt. Az API $0.15/1M bemeneti token és $0.50/1M kimeneti token áron számít fel díjat. A kimeneti tokenek drágábbak, mert a modell munkáját képviselik. A streamelés nem változtat a költségen; minden generált tokenért fizet.
Figyelje tokenfelhasználását a váratlan költségek elkerülése érdekében. A végső SSE chunk pontos tokenmennyiséget ad meg. Használja ezt a helyi egyenleg vagy a számlázási irányítópult frissítéséhez. A hibák és a visszautasítások ingyenesek, így csak a sikeres befejezésekért fizet. Ez a fizetés-használat-alapú modell biztosítja, hogy soha ne fizessen túl.
- A bemeneti tokenek ára $0,15 millió tokenenként.
- A kimeneti tokenek ára $0.50 millióként.
- Az elutasítások és hibák ingyenesek.
API kulcs csere és sebességkorlátok
Minden fiók egyszerre csak egy aktív API-kulcsot engedélyez. Ha újragenerálja kulcsát, a régi azonnal érvényét veszti. Ez biztosítja a biztonságot, de frissítenie kell ügyfeleit időben. A sebességkorlátok percenként 300 kérés és kulcsonként 8 párhuzamos kérés.
Ezeknek a korlátoknak az átlépése HTTP 429 hibákhoz vezet. Implementáljon exponenciális backoffot a retry logikájában. Figyelje a kérések számát, hogy maradjon a korlátokon belül. Ha nagyobb átviteli sebességre van szüksége, fontolja meg a munkaterhelés szétosztását több fiók között vagy a promptméretek optimalizálását. A kulcs azonnal megjelenik regisztrációkor, így őrizze biztonságban.
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);
Gyakori HTTP hibák hibaelhárítása
Az HTTP hibák a kéréseddel vagy a szerver válaszával kapcsolatos problémákat jeleznek. A gyakori hibák közé tartozik a 400 Bad Request, a 401 Unauthorized és a 429 Too Many Requests. A 400-as hiba gyakran rosszul formázott JSON-t vagy érvénytelen paramétereket jelent. A 401-es hiba érvénytelen vagy lejárt API-kulcsra utal.
Ellenőrizze a request headers és payload szintaxis hibáit. Ellenőrizze, hogy az API-kulcs helyes és aktív-e. Ha 429 hibát kap, várjon, és próbálja újra exponenciális backoffgal. Használja a hivatalos OpenAI SDK-kat ezeknek a hibáknak az automatikus kezelésére. Egyértelmű hibaüzeneteket és retry logikát biztosítanak. Ez csökkenti a fejlesztési időt és javítja a megbízhatóságot.
- 400: Ellenőrizze a JSON szintaxist és a paramétereket.
- 401: Ellenőrizze az API-kulcs érvényességét.
- 429: Implementáljon backoffgal rendelkező újrapróbálási logikát.
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"}]
}'