DE ▾

Chinese LLM APIFiction

API-Schlüssel erhalten

Aktualisiert am

Chinesische Web-Fiction (网文) und Roleplay-Apps: Kontext, Charaktere und Kosten

Serienhafte chinesische Web-Fiction und Chat in der Rolle einer Figur gehören zu den anspruchsvollsten Lastfällen: Tausende Zeichen pro Kapitel, eine Besetzung, die über Monate hinweg konsistent bleiben muss, und Leser, die jeden Fehler bemerken. Dieser Leitfaden zeigt, wie du Prompts strukturierst, das 100.000-Token-Kontextfenster verwaltest und die Kosten basierend auf den angegebenen Annahmen abschätzt.

Wie diese Workloads aussehen

Web-Fiction-Serien werden in Kapiteln mit 2.000 bis 4.000 Zeichen geschrieben, oft täglich veröffentlicht, mit einer Handlung, die sich über Hunderte von Kapiteln erstreckt. Rollenspiel-Apps sind die gesprächige Verwandte: eine Persona, ein Szenario und eine lange Historie. Beide benötigen dieselben drei Dinge von der Modell-API: genug Kontext zum Erinnern, genug Ausgabe-Budget, um in der Länge zu schreiben, und einen Stil, der nicht abweicht.

Der Dienst bietet einen OpenAI-kompatiblen Chat-Endpunkt unter https://api.chinesellmapi.com/v1 mit einem Textmodell, id uncensored. Das Kontextfenster umfasst 100.000 Token, die sich auf Prompt und Completion verteilen, max_tokens beträgt standardmäßig 2.048 und kann bis zu 32.000 reichen, und Standard-Sampling-Felder wie temperature, top_p und stop werden durchgereicht. Streaming wird unterstützt, was sich für Chat eignet. Grundlegende Einrichtung und Encoding-Hinweise findest du in der App-Schnellstartanleitung.

Content-Regeln, im Voraus genannt

Dies ist ein Adults-Only-Service. Gesetzliche Adult-Fiction, reife Themen und kontroverse Themen werden nicht per se verweigert, und der Service richtet sich an Nutzer ab 18 Jahren. Sexuelle Inhalte mit Minderjährigen werden immer blockiert und geben einen 403er-Status content_blocked zurück, auch wenn sie als Fiction oder Roleplay gerahmt sind. Es gibt keine Einstellung, die dies ändert.

Baue es von Anfang darauf aus. Gib in deinen Charakterbögen an, dass jeder Charakter erwachsen ist, und nenne explizite Alter. Füge eine Altersprüfung in dein eigenes Produkt ein. Behandle einen 403er-Status als endgültige Antwort für diese Anfrage: Zeige eine neutrale Nachricht an und wiederhole die Anfrage nicht mit umformulierten Prompts. Diese Schritte sind gute Produkt-Pflege, egal was die Plattformregeln besagen.

Character-Sheets und Style-Blöcke

Konsistenz entsteht, indem man stabile Fakten an einem Ort sammelt und sie bei jeder Anfrage wiederholt. Ein Charakterbogen ist ein kompakter Datensatz zu Name, Alter, Rolle, Sprechgewohnheiten, Beziehungen und harten Einschränkungen, einschließlich Geheimnisse, die die Figur noch nicht verraten darf. Ein separater Stilblock fixiert Erzählperspektive, Tempo, Dialoganteil, Kapitelänge und Gewohnheiten beim Ende. Beide gehören in die Systemnachricht, damit sie am Anfang jeder Anfrage stehen.

CHARACTER_SHEET = """\
【人物卡】
姓名:沈清禾(女,28岁)
身份:江城古籍修复师,性格沉静,嘴硬心软
口头禅:“先别急,东西不会跑。”
说话方式:短句,少用感叹号,偶尔引用旧书里的句子
关系:与顾远舟(男,31岁,旧书商)是多年好友,彼此有未说出口的好感
禁忌:不提及她离开出版社的真正原因(第40章才揭晓)
"""

STYLE = """\
【文风】第三人称限知视角,贴近沈清禾;节奏舒缓,多写物件与天气的细节;
对话占比约四成;每章 2500 到 3000 字;结尾留一个小悬念。"""

Schreibe diese auf Chinesisch. Sprechgewohnheiten, die in chinesischen Beispielen ausgedrückt werden, wie ein Catchphrase oder eine Satzlänge, übertragen sich zuverlässiger als eine englische Beschreibung davon. Halte jedes Sheet unter ein paar hundert Token und gib jedem wiederkehrenden Charakter eines; eine Besetzung von zehn ist immer noch nur ein paar tausend Token. Wenn sich die Situation eines Charakters ändert, aktualisiere das Sheet selbst, statt dich auf die Historie zu verlassen, um die Änderung zu tragen.

Langer Kontext für serialisierte Kapitel

Die Versuchung ist groß, jedes vorherige Kapitel in den Prompt einzufügen. Rechne zuerst. Bei einem 100.000-Token-Kontextfenster und Kapiteln zu etwa 4.500 Token fasst das gesamte Fenster etwa vierzehn Kapitel, ohne noch Platz für die Ausgabe zu lassen, und eine Serie läuft über Hunderte von Kapiteln. Das praktikable Muster ist geschichtetes Gedächtnis:

  1. Das Character-Sheet und der Style-Block, immer vorhanden.
  2. Eine laufende Story-Zusammenfassung, ein paar hundert Zeichen pro Kapitel, zusammengeführt in einen laufenden Recap, den du alle paar Kapitel aktualisierst.
  3. Der vollständige Text des vorherigen Kapitels, damit der Text an der Nahtstelle zusammenhängt.
  4. Der Entwurf für das gerade geschriebene Kapitel.

Frag nach jedem Kapitel das Modell nach einer kurzen Zusammenfassung, die Beziehungsänderungen und offene Handlungsfäden bewahrt, und hänge sie an die Zusammenfassung an. Der folgende Code schreibt ein Kapitel und erzeugt die nächste Zusammenfassung. Er gibt auch usage zurück, damit du echte Token-Anzahlen protokollieren kannst:

import os
from openai import OpenAI

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

def write_chapter(sheet, style, story_so_far, last_chapter, outline):
    messages = [
        {"role": "system", "content": "你是一位连载网络小说的作者,所有人物均为成年人。严格遵守人物卡和文风设定。\n" + sheet + "\n" + style},
        {"role": "user", "content": (
            "【前情提要】\n" + story_so_far +
            "\n\n【上一章全文】\n" + last_chapter +
            "\n\n【本章大纲】\n" + outline +
            "\n\n请直接写出本章正文,不要写标题以外的说明。")},
    ]
    r = client.chat.completions.create(
        model="uncensored",
        messages=messages,
        max_tokens=5000,       # ~3,000 characters needs roughly 4,500 tokens under our assumption
        temperature=0.9,
        top_p=0.95,
    )
    return r.choices[0].message.content, r.usage

def summarize(chapter_text):
    r = client.chat.completions.create(
        model="uncensored",
        messages=[{"role": "user", "content": "用 200 字以内概括下面这一章的剧情,保留人物关系的变化和未解的伏笔:\n" + chapter_text}],
        max_tokens=400,
        temperature=0.3,
    )
    return r.choices[0].message.content

Roleplay: Persona, Turn-Form und Stop-Sequenzen

Rollenspiel benötigt dieselbe Disziplin aus Charakterbogen und Stil sowie einige chat-spezifische Steuerungen. Setze die Persona in die Systemnachricht, lege fest, wer wen spielt, fixiere die Antwortlängenreichweite und weise das Modell an, nicht die Aktionen der Figur des Benutzers zu schreiben. Verwende stop, um die Ausgabe abzuschneiden, wenn das Modell beginnt, die nächste Zeile des Benutzers zu schreiben, und stream die Antwort, damit der Text erscheint, während er generiert wird.

import os
from openai import OpenAI

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

PERSONA = (
    "你扮演顾远舟,31岁的旧书商,说话随和,爱开玩笑,但在重要的事上很认真。"
    "用户扮演沈清禾。所有角色均为成年人。保持第一人称,每次回复 80 到 200 字,"
    "用(括号)写简短的动作描写,不要替用户的角色做决定。"
)

history = [{"role": "system", "content": PERSONA}]

def turn(user_text):
    history.append({"role": "user", "content": user_text})
    stream = client.chat.completions.create(
        model="uncensored",
        messages=history,
        max_tokens=400,
        temperature=1.0,
        stop=["\n用户:"],        # keep the model from writing the user's next line
        stream=True,
    )
    reply = ""
    for chunk in stream:
        if chunk.choices and chunk.choices[0].delta.content:
            piece = chunk.choices[0].delta.content
            reply += piece
            print(piece, end="", flush=True)
    print()
    history.append({"role": "assistant", "content": reply})

turn("(推开书店的门)这场雨下得真不是时候。")

Der Verlauf wächst pro Zug um eine Benutzer-Nachricht und eine Assistenten-Nachricht. Wenn er sich deinem Budget nähert, fasse den ältesten Teil in einer einzigen Nachricht zusammen und behalte die neuesten Züge wortwörtlich. Temperatur um 0,9 bis 1,0 ergibt lebhaften Dialog für Figuren; senke sie auf etwa 0,5, wenn die Persona strikt am Skript bleiben muss.

Style-Kontrolle, die eine lange Serie überlebt

Style-Drift ist das Versagen, über das Leser am meisten klagen: Der Erzähler wird langsam gesprächiger, der Dialog wird formeller, das Tempo beschleunigt sich. Bekämpfe es mit Spezifika. Statt "schreibe in einem eleganten Stil", beschreibe messbare Gewohnheiten: Satzlänge, wie oft Idiome verwendet werden sollen, wie viel Wetter- und Objektdetail einzubeziehen ist, ob Kapitel an einem Hook oder einem ruhigen Beat enden. Zwei oder drei kurze Beispielabsätze in der Zielstimme, platziert im Style-Block, sind mehr wert als eine Seite Adjektive.

Verschiedene Genres benötigen verschiedene Regler. Eine Cultivation- oder Fantasy-Serie profitiert von einem Glossar erfundener Begriffe, wie Reiche, Sekten und Techniken, damit derselbe Name nie auf zwei Arten geschrieben wird. Eine moderne Romance stützt sich auf Dialogrhythmus und kleine körperliche Details. Ein Krimi benötigt ein Hinweis-Ledger: eine Liste von Fakten, die der Leser gesehen hat, damit das Modell sie nicht widerspricht. Halte jede dieser Listen im System-Prompt und aktualisiere sie, während die Geschichte fortschreitet.

Halte schließlich Temperatur und top_p innerhalb einer Serie fest. Wenn du das Sampling zwischen Kapiteln änderst, ändert sich die Stimme. Erhöhe die Temperatur nur für Brainstorming-Entwürfe, nicht für den eigentlichen Text.

Kostenrechnung mit angegebenen Annahmen

Alle Zahlen basieren auf den veröffentlichten Sätzen von 0,25 $ pro Million Input-Token und 1,00 $ pro Million Output-Token sowie einer angenommenen Rate von 1,5 Token pro chinesischem Zeichen. Ersetze die Annahmen durch Zahlen aus deinen eigenen usage-Logs.

SzenarioAngenommene Input-TokenAngenommene Output-TokenKosten pro Anfrage
Serienkapitel (3.000 Zeichen Ausgabe)8.0004.500$0.0020 + $0.0045 = $0.0065
Roleplay-Turn, 20.000-Token-Historie20.000300$0.0050 + $0.0003 = $0.0053
Roleplay-Turn, volle 60.000-Token-Historie60.000500$0.0150 + $0.0005 = $0.0155

In der Kapitelzeile setzen sich die 8.000 Input-Token aus einem 1.200-Token-Charakterbogen und Stilblock, einem 2.000-Token-Zusammenfassung, einem 4.500-Token-Vorkapitel und einem 300-Token-Entwurf zusammen. Hundert solcher Kapitel würden etwa 0,65 $ kosten. Hundert Rollenspiel-Züge bei einer Verlaufgröße von 20.000 Token kosten etwa 0,53 $. Die Erkenntnis ist, dass die Verlaufslänge die Chat-Kosten bestimmt, daher amortisieren sich Kürzung und Zusammenfassung schnell.

Das Testguthaben von 0,50 $, gültig für sieben Tage, deckt unter den Annahmen der ersten Zeile etwa 76 Kapitel ab. Prüfe die Preise für aktuelle Raten und sieh dir die FAQ zum Testguthaben für Kontodetails an.

Betriebshinweise für die Produktion

Die Kapitelgenerierung ist eine lange Anfrage, also verwende großzügige Timeouts oder stream und setze den Text selbst zusammen. Behandle 429 mit einer kurzen Wartezeit, da jeder Schlüssel 300 Anfragen pro Minute erlaubt, und behandle 503 mit upstream_busy als Ereignis für einen Retry nach einigen Sekunden. Ein 402 bedeutet, dass das Prepaid-Guthaben aufgebraucht ist oder das Testguthaben abgelaufen ist, was dich alarmieren sollte, anstatt erneut zu versuchen.

Speichere jedes generierte Kapitel und seine Zusammenfassung in deiner eigenen Datenbank, bevor du das nächste generierst. Wenn eine Anfrage mitten in einer Nachtschicht fehlschlägt, kannst du vom letzten gespeicherten Kapitel fortsetzen, und du zahlst nie zweimal für denselben Text. Speichere die Prompt-Version und die Nutzungsfiguren neben jedem Kapitel, damit die Kosten pro Kapitel eine Abfrage statt einer Schätzung sind.

Halte für Rollenspiel-Produkte ein Budget pro Sitzung ein. Begrenze die Anzahl der Züge oder die Gesamt-Token, die eine einzelne Sitzung verbrauchen darf, und zeige den Nutzern eine klare Nachricht, wenn die Grenze erreicht ist. Da Prompts den Verlauf enthalten, kostet eine sehr lange Sitzung pro Zug weit mehr als eine frische, weshalb das Zusammenfassen alter Züge wichtig ist, nicht nur um das Fenster zu füllen. Prompts werden nicht zum Training verwendet, was du in den Datenschutzhinweisen deines Produkts neben deiner eigenen Speicherpolitik angeben kannst.

Fragen und Antworten

Wie lang kann ein Kapitel in einer Anfrage sein?

Die Ausgabe ist auf 32.000 Token pro Anfrage begrenzt und teilt sich das 100.000-Token-Kontextfenster mit dem Prompt. Ein 3.000-Zeichen-Kapitel passt bequem hinein, also setze max_tokens etwas über deine Schätzung hinaus.

Wie halte ich Figuren über hunderte von Kapiteln hinweg konsistent?

Behalte ein Figurenblatt und einen Stilblock im System-Prompt bei jeder Anfrage bei und führe die Handlung als fortlaufende Zusammenfassung plus das vorherige Kapitel fort.

Ist erwachsene Literatur erlaubt?

Reife Literatur für Erwachsene zwischen erwachsenen Charakteren wird nicht abgelehnt, und der Service richtet sich an Nutzer ab 18 Jahren. Sexuelle Inhalte, die Minderjährige einbeziehen, werden immer mit einem 403er-Status blockiert, sowohl in der Literatur als auch im Rollenspiel.

Kann ich Rollspiel-Antworten streamen?

Ja. Setze stream auf true, um Server-Sent-Events zu empfangen, und verwende Stop-Sequenzen, um zu verhindern, dass das Modell die Zeilen des Benutzers schreibt.

Dein Schlüssel ist nur ein Formular entfernt

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.

API-Schlüssel erhalten