PT ▾
Obter chave de API

NsfwAiApiGuia

Melhor LLM local para RP ou uma API hospedada?

O melhor LLM local para RP é o maior modelo sem censura que sua GPU comporta na qualidade que você aceita, e essa resposta muda a cada poucos meses. Se preferir pular o hardware, um endpoint hospedado oferece o mesmo fluxo de chat com uma mudança de URL.

Atualizado

Ilustração isométrica comparando uma caixa de GPU local e um cluster de servidor hospedado unidos por balões de chat

Local ou hospedado: a decisão rápida

Escolha local se você já possui uma GPU capaz, quer tudo offline ou gosta de ajustar modelos. Escolha hospedado se quer memória longa em uma história, usa laptop ou celular, ou prefere gastar minutos em vez de fins de semana na configuração. Muitas pessoas usam os dois: um modelo local para experimentos privados e um hospedado para campanhas longas.

FatorModelo localAPI Hospedada
Modelo de custoHardware e energia, sem taxa por tokenPague por token a partir de crédito pré-pago
Tamanho do modeloLimitado pela memória da GPUO que o provedor executa
Comprimento do contextoLimitado pela memória, já que contexto maior precisa de mais dela100.000 tokens aqui
PrivacidadeNada sai da sua máquinaPrompts viajam para o provedor; aqui não são usados para treinamento
ConfiguraçãoTempo de execução, pesos, quantização, atualizaçõesUma base URL e uma chave
Funciona em qualquer dispositivoApenas se você expor sua própria máquinaSim

O que realmente define o melhor modelo local

Rankings do melhor LLM local para RP ficam desatualizados rápido, e nenhum nome único é certo para todos. Em vez disso, avalie candidatos pelo que aparece em uma sessão real.

  • Comportamento de recusa. Muitos modelos base e instruct foram ajustados para recusar certos temas. Modelos fine-tuned para ficção ou marcados como sem censura geralmente recusam menos, mas a qualidade varia, então teste-os com suas próprias cenas.
  • Permanecer no personagem. Observe um modelo que desvia para narrar as ações do seu personagem, repete as mesmas frases a cada turno ou esquece quem está na sala.
  • Qualidade da prosa. Leia dez respostas seguidas. Alguns modelos são bons para um turno e cansativos no décimo.
  • Manipulação de contexto. Um modelo pode anunciar uma janela longa e ainda perder detalhes do meio dela. Execute um teste onde um fato do início da conversa importa mais tarde.
  • Tamanho e quantização. Um modelo maior espremido em quantização pesada pode perder mais que um menor executado em alta precisão. Compare, não assuma.

Os tópicos da comunidade e os cartões de modelo para o runtime que você usa são o lugar certo para recomendações atuais. Baixe dois ou três candidatos, execute a mesma cena em cada um e mantenha aquele que faz você querer continuar a história.

Onde as execuções locais ficam sem espaço

A barreira que a maioria dos roleplayers encontra é a memória, e ela aparece em dois lugares. O primeiro é o próprio modelo: um modelo maior escreve melhor, mas precisa de mais memória GPU. O segundo é o contexto. Cada mensagem em uma história longa é enviada novamente a cada novo turno, e o cache que a contém também cresce com o comprimento, então uma campanha longa pode apertar uma GPU que lida bem com conversas curtas.

As soluções alternativas habituais resumem as conversas anteriores, usam livros de lore que injetam apenas fatos relevantes e reduzem o tamanho do contexto. Elas funcionam e também são trabalho. Um endpoint hospedado com janela de contexto de 100.000 tokens permite manter muito mais da história em evidência, o que é ideal para campanhas longas, mundos compartilhados com muitos personagens e histórias que duram semanas.

A compensação é o custo, então ajuda medi-la. Suponha que um chat tenha 30.000 tokens de histórico e o modelo escreva 300 tokens por resposta. Uma rodada custa 30.000 tokens de entrada a $0,15 por 1M, o que dá $0,0045, mais 300 tokens de saída a $0,50 por 1M, o que dá $0,00015. Isso é $0,00465 por rodada, ou $0,465 para 100 rodadas. Uma longa noite de jogo custa bem menos de um dólar. A página de preços lista as taxas e os níveis de bônus para recargas maiores.

Uma configuração hospedada funcional em Python

O endpoint é compatível com OpenAI, então o pacote oficial openai funciona sem alterações, exceto pela URL base e chave. O ID do modelo é uncensored. Primeiro, obtenha uma chave na página de chaves de API; novas contas podem reivindicar um crédito de teste de $0,50 lá com um clique, sem necessidade de detalhes de pagamento.

Este script mantém um histórico rolante, transmite a resposta e remove turnos antigos para manter o prompt pequeno. O system prompt é a parte que vale seu tempo: define o cenário, as regras e o estilo.

import os
from openai import OpenAI

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

SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving minors under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''

history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40  # keep the last 40 messages besides the system prompt

def say(user_text):
    history.append({"role": "user", "content": user_text})
    trimmed = [history[0]] + history[1:][-MAX_TURNS:]
    stream = client.chat.completions.create(
        model="uncensored",
        messages=trimmed,
        temperature=0.9,
        top_p=0.95,
        frequency_penalty=0.3,
        max_tokens=600,
        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})

say("I push open the door of the Gull and Anchor and look for the harbor master.")

Como a janela tem 100.000 tokens, você pode aumentar muito o MAX_TURNS antes que o corte faça diferença. O trim ainda é um bom hábito: prompts mais curtos custam menos e mantêm o modelo focado nos eventos recentes.

Configurações de cliente para SillyTavern e apps similares

A maioria das interfaces de roleplay tem uma tela de conexão para uma fonte de conclusão de chat compatível com OpenAI ou personalizada. O SillyTavern, por exemplo, permite adicionar um endpoint compatível com OpenAI. Os campos são os mesmos em todos os lugares:

  • URL base ou endpoint: https://api.nsfwaiapi.com/v1. Alguns apps querem o caminho completo terminando em /chat/completions; se o app pedir uma base, pare em /v1.
  • Chave de API: sua chave, enviada como token Bearer.
  • Modelo: uncensored. Se o app puder buscar uma lista de modelos, ele pode chamar GET /v1/models.
  • Streaming: ligado. As respostas aparecem conforme são escritas, e o app pode parar antecipadamente se você não gostar do rumo.

Para amostragem, uma temperatura em torno de 0,8 a 1,0 se adapta a texto narrativo, com top_p perto de 0,95. Uma pequena penalidade de frequência ou presença reduz as frases repetidas que conversas longas tendem a acumular. Aumente a penalidade apenas se vir repetição, já que valores altos tornam a prosa estranhamente evitativa. Sequências de parada são passadas pelo sistema, então adicionar o nome do jogador seguido por dois pontos como string de parada ajuda se um modelo tentar falar por você. Defina o tamanho do contexto do app para o que você quer pagar; você não precisa preencher todos os 100.000 tokens.

Tenha a concorrência em mente se você abrir várias abas de chat ou um bot para amigos. Uma chave completa permite 8 requisições simultâneas e 300 por minuto, e uma chave de teste permite 2 e 60. Uma resposta em streaming ocupa sua vaga até que o streaming termine, então uma aba travada pode consumir uma vaga. A documentação lista os limites e os cabeçalhos de resposta, incluindo X-Balance-USD, que mostra seu crédito restante.

Uma pequena rotina para manter histórias longas saudáveis

Sessões longas de roleplay falham de maneiras previsíveis, e alguns hábitos previnem a maioria dos problemas. Escreva um resumo curto da história a cada 20 ou 30 turnos e mantenha-o no topo do prompt, após a mensagem do sistema. Atualize-o manualmente ou peça ao modelo para produzi-lo, depois verifique se nomes, lugares e promessas sobreviveram. Fixe os fatos que nunca devem ser esquecidos, como relacionamentos e linhas abertas, no próprio prompt do sistema.

Se uma resposta for em uma direção que você não gosta, regenere-a em vez de argumentar com ela no chat. Argumentos poluem o histórico e ensinam ao modelo que a cena é sobre o argumento. Quando quiser direcionar, adicione uma linha clara entre colchetes, como uma nota sobre o humor da próxima cena, e deixe a próxima resposta carregá-la. Mantenha os nomes dos personagens consistentes e dê a cada personagem não jogador uma nota de voz de uma linha, porque modelos confundem personagens que soam parecidos.

Limites honestos deste modelo

É um único modelo de pesos abertos, executado por um provedor independente e ajustado para responder sem recusas de conteúdo para uso adulto legal. Não é a API oficial de nenhum fornecedor de modelo e não é um roteador entre vários. Você não pode escolher entre modelos, e não deve esperar que ele corresponda aos melhores modelos fechados em todas as tarefas.

Ele gera apenas texto. Não há imagens para seus personagens, nem voz nem embeddings para busca em livro de lore, então se você quer retratos ou fala, precisa adicionar um serviço separado para cada. Também não há fine-tuning. A qualidade também dependerá do seu prompt: um system prompt vago dá ficção vaga, e um bom perfil de personagem com diálogo de exemplo faz mais que qualquer ajuste de amostragem.

Uma regra é fixa. Conteúdo sexual envolvendo menores não é permitido, e uma configuração que tente produzi-lo não será suportada. Mantenha os personagens adultos e mantenha seu uso dentro da lei. Para ficção, aplicativos de companhia e bate-papo de personagens voltados para adultos, a combinação de menos recusas e uma janela longa é o que tem utilidade.

Perguntas e respostas

Um LLM local é melhor que uma API hospedada para roleplay?

Nenhum vence em todos os lugares. O local oferece privacidade offline e ausência de custo por token, enquanto o hospedado oferece uma janela de contexto maior e sem limites de hardware. Muitas pessoas usam ambos.

Posso usar o SillyTavern com esta API?

Sim. O SillyTavern e aplicativos semelhantes aceitam um endpoint compatível com OpenAI. Insira https://api.nsfwaiapi.com/v1 como URL, sua chave e o ID do modelo uncensored.

Quanto contexto uma sessão de roleplay pode usar?

A janela de contexto é de 100.000 tokens, contando o prompt e a resposta juntos. Conversas longas custam mais porque o histórico é enviado a cada turno.

Ele gera imagens ou voz para meus personagens?

Não. O serviço é apenas texto, sem geração de imagem, áudio ou vídeo e sem embeddings.

Sua chave está a um formulário de preenchimento

Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.

Obter chave de API

NsfwAiApiAPI de LLM sem censura para geração de texto NSFW