- Nsfwchat
- Chat NSFW: Início rápido: integre o LLM sem censura
Chat NSFW: Início rápido: integre o LLM sem censura
Integre nossa API de LLM sem censura usando endpoints padrão compatíveis com OpenAI. Este guia de início rápido cobre autenticação, formatos de requisição e streaming para geração de texto em alta escala.
URL base e autenticação
Use a URL base dedicada para todas as requisições. A autenticação depende de uma única chave de API gerada durante o cadastro. Inclua a chave no cabeçalho Authorization como um token Bearer. Sua chave é exibida imediatamente após a criação. Cada conta possui uma chave ativa; gerar uma nova substitui a anterior.
A URL base é: https://api.nsfwchat.cc/v1. Não são necessárias camadas adicionais de roteamento ou proxy. Esta configuração funciona com qualquer cliente compatível com OpenAI ajustando a URL base e a chave de API.
Completions de chat
Envie prompts de texto para o endpoint POST /v1/chat/completions. O ID do modelo é uncensored. Este endpoint aceita mensagens de chat padrão e retorna texto gerado. Não suporta embeddings, imagens ou áudio. O modelo é ajustado para respostas sem censura a conteúdo adulto lícito.
Certifique-se de que seu payload inclua o ID do modelo e o histórico de mensagens. A API processa entrada de texto e retorna saída de texto diretamente.
curl https://api.nsfwchat.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
SDK Python
Use o SDK Python oficial da OpenAI para integração. Defina o base_url para o endpoint da nossa API e forneça sua chave de API. O SDK lida com serialização e análise de erros automaticamente. Configure parâmetros como temperature e top_p para controlar a aleatoriedade da saída.
Inicialize o cliente com sua chave e URL base. Chame chat.completions.create() com o ID do modelo e as mensagens. Esta abordagem reduz código boilerplate para tarefas simples de geração de texto.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchat.cc/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)
SDK Node.js
O SDK OpenAI para Node.js funciona de forma idêntica à versão Python. Configure o cliente com a URL base personalizada e sua chave de API. Use o método chat.completions.create para enviar requisições.
Este método é ideal para integrações do lado do servidor. O SDK gerencia o pool de conexões e as novas tentativas. Defina o modelo como uncensored para garantir respostas sem censura. Passe as mensagens como uma matriz de objetos de role e content.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchat.cc/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);
Respostas em streaming
Ative o streaming definindo stream: true na sua requisição. A API retorna Server-Sent Events (SSE). Cada fragmento contém texto parcial. Os detalhes de uso de token aparecem no fragmento final.
O streaming reduz a latência percebida para saídas longas. Processe cada fragmento sequencialmente para reconstruir a resposta completa. Este método é essencial para atualizações de UI em tempo real. Lidere os erros dentro dos eventos de streaming para manter a estabilidade da conexão.
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)
Limites de taxa e erros
Respeite os limites de taxa para evitar interrupção do serviço. A API permite 300 requisições por minuto e 8 requisições simultâneas por chave. O tamanho máximo do corpo da requisição é 8 MB. Um status 401 indica uma chave de API inválida ou ausente. Um status 429 indica que você excedeu o limite de taxa.
A janela de contexto é de 100.000 tokens para prompt e conclusão combinados. Se você exceder este limite, a requisição será rejeitada. Não há truncamento; certifique-se de que sua entrada caiba na janela. Um status 402 indica saldo pré-pago insuficiente. Erros e recusas não consomem crédito.
Recursos e limites
Todos os limites e recursos reais da API em um só lugar — confira antes de recarregar.
| Item | Valor |
|---|---|
| Formato | compatível com OpenAI: qualquer SDK da OpenAI funciona trocando a base URL e a chave |
| ID do modelo | uncensored |
| Autenticação | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.nsfwchat.cc/v1 |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Modo JSON | response_format: {"type": "json_object"} |
| Janela de contexto | 100.000 tokens (entrada + saída) |
| Streaming | sim — server-sent events; o último bloco traz o uso de tokens |
| Parâmetros | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Chamada de funções | sim — tools, tool_choice; resposta com tool_calls, inclusive em streaming; resultados como role: tool |
| Saída máxima | até o restante da janela de 100.000 tokens; max_tokens opcional (sem limite separado) |
| Tamanho | até 8 MB por requisição |
| Cabeçalhos | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Concorrência | 8 requisições ao mesmo tempo por chave |
| Limite de taxa | 300 requisições por minuto por chave |
| Validade | crédito pago não expira, sem assinatura |
| Cobrança | crédito pré-pago pelo uso real; erros e recusas são grátis |
| Recarga | USDT (TRC20) ou USDC (Base), qualquer valor inteiro de $10 a $500 |
| Teste grátis | $0,50 por 7 dias, sem cartão · Chave de teste: 2 requisições paralelas, 60 por minuto; limites totais (8 e 300) após a primeira recarga |
| Bônus | +5% a partir de $50, +10% a partir de $100 |
| Preço | $0,25 por 1M tokens de entrada · $1,00 por 1M de saída |
| Chaves | uma chave ativa por conta; uma nova substitui a anterior |
| Login | Google ou e-mail e senha |
| Conteúdo | conteúdo adulto permitido; conteúdo sexual com menores é recusado |
Códigos de erro
Erros chegam em JSON com um type fixo; requisições com falha ou recusadas não são cobradas.
| Código | Tipo | Significado |
|---|---|---|
400 | bad_request | JSON inválido, mensagens vazias, parâmetro errado ou contexto longo demais |
401 | missing_key · invalid_key · key_revoked | chave ausente, errada ou substituída |
402 | no_credit | sem crédito — recarregue e continue na hora |
403 | content_blocked | conteúdo sexual com menores — recusado, sem cobrança |
404 | not_found | endpoint desconhecido |
413 | request_too_large | corpo acima de 8 MB |
429 | rate_limited · concurrency | acima de 300/min ou 8 em paralelo — aguarde e tente de novo |
503 | upstream_busy | modelo ocupado — tente em alguns segundos |
Perguntas e respostas
A API suporta chamada de funções?
Sim, a API suporta chamada de funções por meio dos parâmetros <code>tools</code> e <code>tool_choice</code>. Você pode definir ferramentas na sua requisição e o modelo retornará JSON estruturado para uso de ferramentas. Este recurso funciona com clientes compatíveis com OpenAI padrão.
Qual é o tamanho da janela de contexto?
A janela de contexto é de 100.000 tokens, combinando prompt e conclusão. A saída máxima por requisição é de 32.000 tokens, ou 2.048 se <code>max_tokens</code> não estiver definido. Requisições que excedam essa janela são rejeitadas.
Como os erros são tratados?
As respostas de erro incluem um código de status e uma mensagem. Um <code>401</code> significa que a chave de API é inválida. Um <code>429</code> significa que você atingiu o limite de requisições. Um <code>402</code> indica saldo pré-pago insuficiente. Erros não consomem seu crédito de token.
Sua chave está a um formulário de distância
Crie uma conta, copie a chave, altere a URL base. Essa é toda a configuração.