PL ▾
https://api.unrestrictedaiapi.com/v1uncensored2026-10-06
Pobierz klucz API

Jak promptować model bez ograniczeń, nie marnując tokenów

Model bez ograniczeń nie odrzuca legalnych treści dla dorosłych lub mrocznych, co przenosi całą kontrolę na Twój prompt. Ten przewodnik pokazuje, jak wygląda działający system prompt, jak pisać persony i ton, jak wyodrębniać JSON przez instrukcję, jakie wartości próbkowania spróbować oraz nawyki, które cicho zużywają tokeny.

Zaktualizowano

Kluczowe punkty

  1. Nadaj promptowi systemowemu dwa zadania: kim jest mówca i jak musi wyglądać odpowiedź.
  2. Używaj próbek i sprawdzalnych zasad zamiast przymiotników takich jak kreatywny lub immersyjny.
  3. Dla JSON określ schemat, utrzymaj niską temperaturę, parsuj z zachowaniem ostrożności i powtórz z cytowanym błędem.
  4. Zmień temperaturę przed top_p i przetestuj na dziesięciu rzeczywistych próbkach.

Prompt systemowy ma dwa zadania

Większość słabych wyników pochodzi od system promptu, który próbuje być powieścią. Nadaj mu tylko dwa zadania: powiedz kto mówi i powiedz jaki musi być wynik odpowiedzi. Wszystko inne należy do rozmowy, gdzie może się zmieniać kolejno.

Oto prompt persony, który działa, ponieważ każda linia jest sprawdzalna. Głos jest nazwany, długość jest ograniczona, a reguła zakończenia daje graczowi haczyk.

You are Mara Voss, a salvage pilot narrating in first person.
Voice: dry, tired, funny when it hurts.
Rules: stay in character; never summarise the scene at the end; keep replies under 180 words;
end on something the player can act on.

Postaw to na tle "Jesteś niesamowitym, kreatywnym, immersyjnym opowiadaczem historii, który nigdy nie przerywa immersji i zawsze pisze najlepszą możliwą odpowiedź." Nic w tym nie można zweryfikować, więc model nie ma na czym się oprzeć. Konkret wygrywa z superlatywem za każdym razem.

Model bez ograniczeń przyjmie mroczną lub eksplicytną premisę bez dodawania zastrzeżeń, więc to na Tobie spoczywa odpowiedzialność za kierunek. Wszystko, co pozostawisz niesprecyzowane, model uzupełni najbardziej typowym wyborem. Jeśli chcesz powściągliwości w jednej scenie i napięcia w kolejnej, napisz to w instrukcjach, a nie licząc na szczęście.

Konfiguracja z użyciem SDK OpenAI

Endpoint jest kompatybilny z OpenAI, więc oficjalne Python SDK działa po zmianie base URL. Identyfikator modelu to zawsze uncensored. Pola samplingu przechodzą bezpośrednio, więc ustawiasz je tak, jak już umiesz.

import os
from openai import OpenAI

client = OpenAI(base_url="https://api.unrestrictedaiapi.com/v1", api_key=os.environ["API_KEY"])

SYSTEM = """You are Mara Voss, a salvage pilot narrating in first person.
Voice: dry, tired, funny when it hurts.
Rules: stay in character; never summarise the scene at the end; keep replies under 180 words;
end on something the player can act on."""

out = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": SYSTEM},
        {"role": "user", "content": "The airlock is jammed and something is knocking from the other side."},
    ],
    temperature=0.85,
    top_p=0.95,
    max_tokens=350,
)
print(out.choices[0].message.content)

Zachowaj system message na początku, a user turn na końcu. Powtarzanie persony w każdej wiadomości użytkownika marnuje tokeny; przy cenie $0.25 za milion tokenów wejściowych jest to tanie, ale też zajmuje miejsce w oknie 100 000 tokenów podczas długich sesji. Zobacz quickstart, jeśli wolisz pominąć SDK.

Persony i styl: pokaż, nie używaj przymiotników

Przymiotniki to słabe dźwignie. „Sarkastyczny” da Ci ogólny gest zwrócenia oczu. Dwuliniowy przykład głosu da Ci właściwy głos. Wstaw krótką wymianę zdań w system prompt, a następnie każ modelowi dopasować rytm, a nie kopiować słów.

  • Dodaj manię mowy. "Kończy groźby pytaniem" jest bardziej użyteczne niż "groźny".
  • Określ cel. Postać, która chce, by gracz odszedł, pozostaje ostrzejsza niż ta, która po prostu "jest niegrzeczna".
  • Podaj listę zakazów. "Nigdy nie mów 'nagle', nigdy nie używaj słowa 'drżenie'" usuwa standardowe frazy, do których model sięga jako pierwszy.
  • Określ długość. Słowa lub zdania, nie "krótko". Modele interpretują "krótko" bardzo liberalnie.

W przypadku zmian tonu w trakcie sesji dołącz nową krótką instrukcję w stylu systemowym jako ostatnią wiadomość zamiast przepisywania oryginału. Linia "Od teraz Mara jest przerażona i mówi fragmentami" zadziała mocniej, jeśli będzie świeża.

Pobieranie JSON na podstawie instrukcji

Nie ma specjalnego trybu JSON do włączenia, więc prosisz o niego i weryfikujesz. Jest to mniej kruche, niż się wydaje, jeśli zastosujesz cztery nawyki: określ dokładny schemat, zabroń prose i code fences, utrzymaj niską temperaturę i parsuj defensywnie z retry, które zwraca błąd.

import json
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.unrestrictedaiapi.com/v1", api_key=os.environ["API_KEY"])

INSTRUCTION = """Return ONLY a JSON object, no prose, no code fences.
Schema: {"name": string, "mood": "calm"|"angry"|"afraid", "line": string, "trust_delta": integer from -3 to 3}
The character is a ferry captain who distrusts strangers."""

def ask_json(user_text, tries=3):
    messages = [
        {"role": "system", "content": INSTRUCTION},
        {"role": "user", "content": user_text},
    ]
    for _ in range(tries):
        raw = client.chat.completions.create(
            model="uncensored", messages=messages, temperature=0.3, max_tokens=250
        ).choices[0].message.content.strip()
        if raw.startswith("```"):
            raw = raw.strip("`").removeprefix("json").strip()
        try:
            data = json.loads(raw)
            if data["mood"] in ("calm", "angry", "afraid"):
                return data
        except (json.JSONDecodeError, KeyError):
            pass
        messages.append({"role": "assistant", "content": raw})
        messages.append({"role": "user", "content": "That was not valid per the schema. Reply with the JSON object only."})
    raise ValueError("model never produced valid JSON")

print(ask_json("I need passage across the strait tonight."))

Zauważ, co pętla robi w przypadku błędu. Podaje złą odpowiedź z powrotem i mówi, co było nie tak, co naprawia większość przypadków przy drugiej próbie. Wymień dozwolone wartości ("calm"|"angry"|"afraid"), ponieważ otwarte ciągi ulegają zniekształceniom. Jeśli potrzebujesz, aby model wywołał coś w Twojej aplikacji zamiast to opisywać, obsługiwane są wywołania narzędzi w formacie OpenAI i są one lepszym rozwiązaniem niż parsowanie tekstu.

Próbki few-shot i sekwencje stop

Kiedy zasadę trudno opisać słowami, pokaż ją. Dwie lub trzy przykładowe wymiany umieszczone jako wcześniejsze wiadomości user i assistant uczą formatu, długości i rejestru bardziej niezawodnie niż akapit opisu. Trzymaj próbki krótkie i różne, w przeciwnym razie model sklonuje strukturę pierwszej do każdej odpowiedzi.

Próbki rozwiązują też odwrotny problem: odpowiedzi, które są zbyt długie. Jeśli odpowiedzi w próbkach mają 60 słów, żywe odpowiedzi dryfują w stronę 60 słów. Połącz to z rozsądnym max_tokens jako siecią bezpieczeństwa, a nie głównym mechanizmem sterowania. Twarde ograniczenie odcina zdanie w połowie; dobra próbka kończy je uprzejmie.

W scenach z wieloma rozmówcami wartość stop równa etykiecie rozmówcy zapobiega impersonacji gracza przez model. Wybierz etykietę, która nigdy nie pojawia się w normalnej prozie, i usuń ją z zapisanej historii, aby nie wyciekła do kolejnych tur.

Temperatura i top_p: wybierz jeden regulator

Oba pola przekształcają ten sam rozkład prawdopodobieństwa, więc zmiana obu jednocześnie utrudnia przewidywanie wyników. Zmień temperature jako pierwszy i zostaw top_p blisko 1, chyba że masz powód.

Zadanietemperaturatop_pDlaczego
JSON strukturalny, klasyfikacja0,0 do 0,31,0Chcesz tej samej odpowiedzi przy każdym uruchomieniu
Dialogi, gra w role0,7 do 0,90,95Różnorodność bez bzdur
Burza mózgów, dzika fikcja1,0 do 1,20,9Szersze słownictwo; spodziewaj się pewnych pomyłek

Te zakresy to punkty wyjścia z ogólnej praktyki, a nie gwarancje. Przetestuj na dziesięciu próbkach własnych promptów i je przeczytaj. Dodaj sekwencje stop, gdy chcesz, aby model zatrzymał się na znaczniku obrotu, takim jak \nPlayer:, zamiast pisać za niego linie postaci.

Antywzorce promptów marnujące tokeny

  1. Krzyk wielkimi literami. "NIGDY NIE ZAPOMINAJ" nie zwiększa zgodności. Powtórz regułę raz, wprost, i przenieś ją na koniec promptu systemowego.
  2. Reguły wyłącznie negatywne. "Nie bądź powtarzalny" nie wyznacza celu. Napisz "różnorodnie otwieraj zdania; żadne dwa kolejne zdania nie zaczynają się tym samym słowem".
  3. Sprzeczności. "Bądź niezwykle szczegółowy" plus "bądź zwięzły" wymusza losowanie. Wybierz jedną i podaj liczbę.
  4. Przedstawienie z przeprosinami. Poprzedzenie prośby zwrotem "Wiem, że to odważne, ale" zachęca do łagodzenia. Przedstaw scenę jako zwykły fakt fikcji.
  5. Napełnianie historii. Wklejenie całego logu przy każdej turze w końcu osiąga limit 100 000 tokenów i zwraca błąd 400. Przycinaj stare tury.
  6. Nieograniczona odpowiedź. Zapomnienie o max_tokens oznacza, że domyślne 2048 decyduje o długości Twojej odpowiedzi, a nie Ty.

Jedna granica pozostaje stała niezależnie od treści promptu: treści seksualne z udziałem małoletnich są zawsze blokowane kodem 403, w tym w fikcji i roleplay, a usługa jest tylko dla dorosłych. Nie marnuj tokenów na próbę omijania tego. Oprócz tego opieraj się pokusie dodawania nowych reguł po każdej złej odpowiedzi; prompt, który rośnie o jedną linię dziennie, w ciągu tygodnia zaczyna się samemu przeczyć, więc usuwaj go tak często, jak dodajesz.

Pętla poprawiania promptu

Traktuj system prompt jak kod. Utrzymuj go w pliku, zmieniaj jedną rzecz na rundę i porównuj wyjścia obok siebie. Działająca rutina: napisz pięć stałych wejść testowych, w tym jedno wrogi i jedno niejednoznaczne; uruchom każde przy wybranej temperaturze trzy razy; zanotuj, która reguła zawiodła najczęściej; napraw tylko tę regułę; uruchom ponownie.

Zbudgetuj eksperymenty. Jako założenie, system prompt 300 tokenów plus wejście 100 tokenów i odpowiedź 250 tokenów to 400 tokenów wejściowych i 250 tokenów wyjściowych. Piętnaście rund kosztuje około 15 x (400 x $0,25 + 250 x $1,00) / 1 000 000 = około $0,005. Testowanie jest prawie darmowe, więc nie ma wymówki dla zgadywania.

Gdy prompt się utrzyma, przenieś go do prawdziwej aplikacji. bot tutorial pokazuje, jak utrzymywać osobną historię dla każdego kanału, a content guide omawia użycie w fikcji dla dorosłych. Szczegóły cenowe znajdziesz na the pricing page.

Pytania i odpowiedzi

Czy model bez ograniczeń wymaga promptu w stylu jailbreak?

Nie. Legalne treści dla dorosłych i fikcja nie są odrzucane, więc zwykła persona i jasne zasady wystarczają. Treści z udziałem małoletnich są blokowane niezależnie od słów w prompt.

Czy jest tryb JSON?

Nie jako osobne przełączenie. Poproś o schemat w prompt, użyj niskiej temperatury i zweryfikuj wyjście w kodzie, ponawiając raz lub dwa razy przy niepowodzeniu parsowania.

Jaką temperaturę powinienem wybrać na start?

Około 0,8 dla dialogów i fikcji, 0,2 dla danych strukturalnych. Dostosowuj jedną wartość naraz.

Jak długi może być prompt?

Prompt plus completion musi mieścić się w 100 000 tokenów, w przeciwnym razie API zwróci błąd 400.

Twój klucz jest o jeden formularz stąd

Utwórz konto, skopiuj klucz, zmień adres URL bazowy. To jest cała konfiguracja.

Pobierz klucz API