ES ▾

Chinese LLM APIFicción

Obtener clave de API

Actualizado

Novelas web chinas y aplicaciones de roleplay: contexto, personajes y costos

La ficción web china serializada y el chat con personaje son dos de las cargas de trabajo de texto más exigentes: miles de caracteres por capítulo, un elenco que debe mantenerse consistente durante meses y lectores que notan cada fallo. Esta guía muestra cómo estructurar prompts, gestionar la ventana de 100,000 tokens y estimar el coste a partir de supuestos declarados.

Aspecto de estas cargas de trabajo

Los serials de ficción web se escriben en capítulos de 2,000 a 4,000 caracteres, a menudo publicados a diario, con una trama que abarca cientos de capítulos. Las apps de roleplay son el primo conversacional: una personalidad, un escenario y un historial largo. Ambas necesitan las mismas tres cosas de la API del modelo: suficiente contexto para recordar, suficiente presupuesto de salida para escribir a largo y un estilo que no se desvíe.

El servicio ofrece un endpoint de chat compatible con OpenAI en https://api.chinesellmapi.com/v1 con un único modelo de texto, id uncensored. La ventana de contexto es de 100.000 tokens compartidos entre prompt y completion, max_tokens tiene un valor predeterminado de 2.048 y puede llegar a 32.000, y los campos de muestreo estándar como temperature, top_p y stop se pasan directamente. Se admite streaming, lo que es adecuado para chat. La configuración básica y las notas de codificación están en el inicio rápido de la app.

Reglas de contenido, declaradas de entrada

Este es un servicio solo para adultos. No se rechazan per se la ficción adulta legal, los temas maduros ni los temas controvertidos, y el servicio está dirigido a usuarios de 18 años o más. El contenido sexual que involucra a menores siempre se bloquea y devuelve un error 403 content_blocked, incluso cuando se presenta como ficción o roleplay. No hay ninguna configuración que cambie esto.

Construye para ello desde el inicio. Indica en tus fichas de personaje que todos los personajes son adultos y da edades explícitas. Añade un control de edad a tu propio producto. Trata un 403 como una respuesta final para esa petición: muestra un mensaje neutro y no reintentes con prompts reformulados. Estos pasos son una buena higiene de producto independientemente de las reglas de la plataforma.

Fichas de personaje y bloques de estilo

La consistencia proviene de poner hechos estables en un solo lugar y repetirlos en cada llamada. Una ficha de personaje es un registro compacto de nombre, edad, rol, hábitos de habla, relaciones y restricciones estrictas, incluyendo secretos que el personaje no debe revelar aún. Un bloque de estilo separado fija el punto de vista, el ritmo, la proporción de diálogo, la longitud del capítulo y el hábito de finalización. Ambos van en el mensaje del sistema para que se sitúen al principio de cada petición.

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

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

Escribe esto en chino. Los hábitos de habla expresados en ejemplos en chino, como un lema o la longitud de la frase, se transfieren de forma mucho más fiable que una descripción en inglés de los mismos. Mantén cada ficha por debajo de unos pocos cientos de tokens y asigna una a cada personaje recurrente; un elenco de diez personajes sigue siendo solo unos pocos miles de tokens. Cuando la situación de un personaje cambie, actualiza la ficha en sí en lugar de depender de la historia para transmitir el cambio.

Contexto largo para capítulos serializados

La tentación es pegar todos los capítulos anteriores en el prompt. Haz la aritmética primero. Con una ventana de 100.000 tokens y capítulos de unos 4.500 tokens, la ventana completa contiene unos catorce capítulos sin dejar espacio para la salida, y un serial dura cientos. El patrón viable es memoria en capas:

  1. La ficha de personaje y el bloque de estilo, siempre presentes.
  2. Un resumen continuo de la historia, unos pocos cientos de caracteres por capítulo, fusionado en un resumen corrido que actualizas cada pocos capítulos.
  3. El texto completo del capítulo anterior, para que la prosa se conecte en la unión.
  4. El esquema del capítulo que se está escribiendo.

Después de cada capítulo, pide al modelo un breve resumen que preserve los cambios en las relaciones y los hilos de la trama abiertos, y añádelo al resumen. El código siguiente escribe un capítulo y produce el siguiente resumen. También devuelve usage para que puedas registrar los recuentos reales de tokens:

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: personalidad, forma de turno y secuencias de parada

El roleplay necesita la misma disciplina de fichas y estilo más algunos controles específicos del chat. Pon la personalidad en el mensaje del sistema, indica quién interpreta a quién, fija el rango de longitud de respuesta y dile al modelo que no escriba las acciones del personaje del usuario. Usa stop para cortar la salida si el modelo empieza a escribir la siguiente línea del usuario, y activa el streaming de la respuesta para que el texto aparezca a medida que se genera.

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("(推开书店的门)这场雨下得真不是时候。")

El historial crece con un mensaje de usuario y un mensaje de asistente por turno. Una vez que se acerca a tu presupuesto, resume la parte más antigua en un solo mensaje y conserva los turnos más recientes literalmente. Una temperatura alrededor de 0.9 a 1.0 da un diálogo animado para los personajes; bájala hacia 0.5 cuando necesites que la personalidad se mantenga estrictamente en el guion.

Control de estilo que sobrevive a un serial largo

La deriva de estilo es el fallo de los que se quejan más los lectores: el narrador se vuelve lentamente más charlatán, el diálogo se vuelve formal, el ritmo se acelera. Lucha contra ello con especificidades. En lugar de "escribe en un estilo elegante", describe hábitos medibles: longitud de la oración, con qué frecuencia usar modismos, cuánto detalle de clima y objetos incluir, si los capítulos terminan con un gancho o un momento tranquilo. Dos o tres párrafos de muestra en la voz objetivo, colocados en el bloque de estilo, valen más que una página de adjetivos.

Diferentes géneros necesitan diferentes ajustes. Un serial de cultivo o fantasía se beneficia de un glosario de términos inventados, como reinos, sectas y técnicas, para que el mismo nombre nunca se escriba de dos formas. Una romance moderna se basa en el ritmo del diálogo y pequeños detalles físicos. Un misterio necesita un libro de pistas: una lista de hechos que el lector ha visto, para que el modelo no los contradiga. Mantén cada una de estas listas en el prompt del sistema y actualízala a medida que avanza la historia.

Por último, mantén la temperatura y top_p fijas dentro de un serial. Si cambias el muestreo entre capítulos, la voz cambia. Aumenta la temperatura solo para los esquemas de lluvia de ideas, no para la prosa en sí.

Matemáticas de coste con supuestos declarados

Todas las cifras utilizan las tarifas publicadas de $0.25 por millón de tokens de entrada y $1.00 por millón de tokens de salida, y una suposición de 1.5 tokens por carácter chino. Reemplaza los supuestos con números de tus propios registros de usage.

EscenarioTokens de entrada asumidosTokens de salida asumidosCoste por llamada
Capítulo de serial (3.000 caracteres de salida)8.0004.500$0.0020 + $0.0045 = $0.0065
Turno de roleplay, historial de 20,000 tokens20.000300$0.0050 + $0.0003 = $0.0053
Turno de roleplay, historial completo de 60,000 tokens60.000500$0.0150 + $0.0005 = $0.0155

En la fila de capítulo, los 8,000 tokens de entrada se desglosan en una ficha de personaje y bloque de estilo de 1,200 tokens, un resumen de 2,000 tokens, un capítulo anterior de 4,500 tokens y un esquema de 300 tokens. Cien de esos capítulos costarían unos $0.65. Cien turnos de roleplay con el tamaño de historial de 20,000 tokens cuestan unos $0.53. La conclusión es que la longitud del historial impulsa el coste del chat, por lo que recortar y resumir se pagan solos rápidamente.

El crédito de prueba de $0,50, válido durante siete días, cubre aproximadamente 76 capítulos bajo las suposiciones de la primera fila. Consulta pricing para ver las tarifas actuales y consulta el FAQ de la prueba para los detalles de la cuenta.

Notas operativas para producción

La generación de capítulos es una petición larga, así que usa tiempos de espera generosos o haz streaming y compila el texto tú mismo. Maneja 429 con una breve espera, ya que cada clave permite 300 peticiones por minuto, y trata 503 con upstream_busy como un evento de reintento en unos segundos. Un 402 significa que el saldo prepago se ha agotado o que la prueba ha caducado, lo que debería alertarte en lugar de reintentar.

Guarda cada capítulo generado y su resumen en tu propia base de datos antes de generar el siguiente. Si una llamada falla a mitad de un lote nocturno, puedes reanudar desde el último capítulo almacenado, y nunca pagas dos veces por el mismo texto. Almacena la versión del prompt y las cifras de uso junto a cada capítulo para que el coste por capítulo sea una consulta en lugar de una suposición.

Para productos de roleplay, mantén un presupuesto por sesión. Limita el número de turnos o los tokens totales que una sola sesión puede consumir, y muestra a los usuarios un mensaje claro cuando se alcance el límite. Como los prompts incluyen historial, una sesión muy larga cuesta mucho más por turno que una nueva, por eso es importante resumir los turnos antiguos más allá de simplemente ajustar la ventana. Los prompts no se usan para entrenamiento, lo que puedes indicar en las notas de privacidad de tu producto junto con tu propia política de almacenamiento.

Preguntas y respuestas

¿Qué longitud máxima puede tener un capítulo en una sola petición?

La salida está limitada a 32.000 tokens por petición y comparte la ventana de 100.000 tokens con el prompt. Un capítulo de 3.000 caracteres cabe cómodamente, así que establece max_tokens un poco por encima de tu estimación.

¿Cómo mantengo la coherencia de los personajes a lo largo de cientos de capítulos?

Mantén una ficha de personaje y un bloque de estilo en el prompt del sistema en cada llamada, y lleva la trama hacia adelante mediante un resumen continuo más el capítulo anterior.

¿Se permite la ficción para adultos?

No se rechaza la ficción adulta legal entre personajes adultos, y el servicio es para usuarios de 18 años o más. El contenido sexual que involucra a menores siempre se bloquea con un 403, incluyendo en ficción y roleplay.

¿Puedo hacer streaming de las respuestas de roleplay?

Sí. Establece stream a true para recibir eventos enviados por el servidor, y usa secuencias de parada para evitar que el modelo escriba las líneas del usuario.

Tu clave está a un formulario de distancia

Crea una cuenta, copia la clave y cambia la URL base. Ese es todo el proceso de configuración.

Obtener clave de API