Início rápido para desenvolvedores: API sem censura
Integre o LLM sem censura ao seu aplicativo usando um endpoint compatível com OpenAI. Este guia cobre autenticação, formatação de requisições, streaming e uso de ferramentas para a API hospedada.
Base URL e Autenticação
Comece definindo seu base_url para https://api.abliteratedmodels.cc/v1. Autentique cada requisição incluindo sua chave de API no cabeçalho Authorization como token Bearer. Você pode gerar uma chave imediatamente após se registrar via Google ou e-mail na página Obter chave de API. A chave é exibida uma vez; armazene-a com segurança nas variáveis de ambiente.
- Cabeçalho:
Authorization: Bearer YOUR_API_KEY - Nenhum parâmetro de consulta adicional é necessário para autenticação.
Certifique-se de que sua biblioteca cliente suporte URLs base personalizados. Isso permite que você substitua o endpoint padrão do OpenAI sem alterar a estrutura do seu código.
Primeira Requisição
Envie uma requisição POST para /v1/chat/completions com o ID do modelo uncensored. A API aceita parâmetros padrão de conclusão de chat. Texto entra, texto sai. Não há endpoints de embeddings ou geração de imagens.
- Modelo:
uncensored - Endpoint:
POST /v1/chat/completions
Use o seguinte comando curl para verificar a conectividade:
curl https://api.abliteratedmodels.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."}]
}'
Integração com SDK Python
O SDK Python oficial da OpenAI funciona diretamente com esta API. Inicialize o cliente com a URL base correta e sua chave. Essa abordagem abstrai os detalhes do HTTP enquanto mantém controle total sobre parâmetros como temperatura e top_p.
- Use
OpenAI(base_url=..., api_key=...) - Chame
client.chat.completions.create()
Aqui está um exemplo mínimo para uma tarefa de codificação com LLM:
from openai import OpenAI
client = OpenAI(base_url="https://api.abliteratedmodels.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)
Integração com SDK Node.js
Para ambientes Node.js, use o pacote npm openai. Configure o baseURL para apontar para nosso servidor. Este método é ideal para serviços backend ou funções serverless onde você precisa de acesso programático ao modelo sem censura.
- Instale o pacote
openai - Defina
baseURLparahttps://api.abliteratedmodels.cc/v1
Exemplo de implementação:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.abliteratedmodels.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 (SSE)
Ative o streaming definindo stream: true na sua requisição. A API retorna Server-Sent Events (SSE). As estatísticas de uso de tokens são incluídas no último fragmento. Isso reduz a latência percebida para usuários finais durante a geração de conteúdo.
- Defina
stream: true - Analise eventos SSE no cliente ou servidor
Trecho de código para streaming:
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 Requisição e Janela de Contexto
Cada chave de API permite 300 requisições por minuto e 8 requisições simultâneas. O corpo da requisição não deve exceder 8 MB. A janela de contexto é de 100,000 tokens no total. Não há um limite separado para a saída; se max_tokens não estiver definido, a resposta pode ir até o final da janela. Se você atingir o limite, suas requisições serão enfileiradas ou falharão. Gerencie a concorrência para permanecer dentro do limite de 8 requisições simultâneas. Verifique a página de Preços para detalhes sobre créditos.
Perguntas e respostas
Como o modelo sem censura lida com recusas de conteúdo?
O modelo é ajustado para responder sem recusas para uso adulto lícito, incluindo tópicos controversos ou fictícios. Ele não aplica os mesmos filtros corporativos de outros fornecedores. No entanto, um limite rígido bloqueia conteúdo sexual envolvendo menores, que é sempre recusado, independentemente do prompt.
O que acontece se eu exceder meu crédito pré-pago?
Quando seu crédito pré-pago se esgotar, as requisições subsequentes falharão. Você pode recarregar usando USDT (TRC20) ou USDC (Base) com valores entre $20 e $500. O crédito nunca expira, então você pode adicionar fundos a qualquer momento sem taxa de assinatura.
Esta API suporta chamada de funções?
Sim, você pode usar os parâmetros tools e tool_choice para chamada de funções. Você também pode forçar saída JSON usando response_format: {"type": "json_object"}. Isso é útil para gerar dados estruturados ou integrar com outros sistemas.
Sua chave está a um formulário de distância
Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.
Especificações técnicas
Uma tabela com cada limite, recurso e preço.
| Item | Valor |
|---|---|
| Formato | compatível com OpenAI: qualquer SDK da OpenAI funciona trocando a base URL e a chave |
| Base URL | https://api.abliteratedmodels.cc/v1 |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Autenticação | Authorization: Bearer YOUR_KEY |
| ID do modelo | uncensored |
| Modo JSON | response_format: {"type": "json_object"} |
| Saída máxima | até o restante da janela de 100.000 tokens; max_tokens opcional (sem limite separado) |
| Janela de contexto | 100.000 tokens (entrada + saída) |
| 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 |
| Streaming | sim — server-sent events; o último bloco traz o uso de tokens |
| Tamanho | até 8 MB por requisição |
| Limite de taxa | 300 requisições por minuto por chave |
| Concorrência | 8 requisições ao mesmo tempo por chave |
| Cabeçalhos | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| 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 |
| Recarga | cripto: USDT na TRON ou USDC na Base, $20–$500, qualquer valor inteiro |
| Preço | $0,15 por 1M tokens de entrada · $0,50 por 1M de saída |
| Validade | crédito pago não expira, sem assinatura |
| Bônus | +5% a partir de $50, +10% a partir de $100, +15% a partir de $200 |
| Cobrança | crédito pré-pago pelo uso real; erros e recusas são grátis |
| 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.
| HTTP | 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 |