PT ▾

API de IA sem censura: erros comuns e como corrigi-los

A maioria dos desenvolvedores tem dificuldade para integrar APIs de IA sem censura não porque os modelos são complexos, mas porque aplicam as restrições padrão do OpenAI a endpoints sem censura. Este guia detalha os erros de configuração específicos, os limites de requisições e as peculiaridades estruturais que causam erros 400 ou falhas silenciosas ao migrar para uma API de LLM sem censura.

Atualizado

Pontos principais

  • A API sem censura segue a sintaxe padrão da OpenAI, mas não possui recursos avançados como embeddings ou roteamento de múltiplos modelos, portanto, seu cliente deve ser configurado para um único endpoint.
  • As respostas em streaming exigem tratamento específico de SSE; se o seu SDK padrão faz análise de JSON, você encontrará erros de análise em grandes saídas sem censura.
  • A chamada de funções funciona, mas exige aderência estrita ao esquema JSON, pois o modelo pode alucinar argumentos com mais frequência do que modelos ajustados por instrução.
  • Você está limitado a 300 requisições por minuto e um tamanho de corpo de 8MB, o que exige estratégias cuidadosas de agrupamento para aplicativos de alto volume.

Entendendo o endpoint da API de IA sem censura

Ao integrar uma API de IA sem censura, o primeiro erro é assumir que ela se comporta de forma idêntica aos modelos comerciais padrão. Nosso endpoint é um serviço de chat-completions hospedado e compatível com OpenAI. Ele oferece um único modelo de linguagem grande sem censura dedicado. Isso significa que você não precisa gerenciar roteamento de modelos ou versionamento. Você envia requisições para POST /v1/chat/completions e recebe texto em resposta.

Ao contrário de agregadores que agrupam imagens, vídeos e vários fornecedores, este serviço foca puramente na geração de texto de alto desempenho e sem restrições. O modelo é de pesos abertos e ajustado para responder sem recusas de conteúdo para uso adulto legal. No entanto, não é GPT, Claude, Gemini ou qualquer outro modelo de fornecedor. Ele roda em nossos próprios servidores GPU.

A URL base é https://api.uncensoredgptapi.com/v1. Para usá-la, você altera o base_url nos seus SDKs do OpenAI existentes ou em qualquer cliente compatível com OpenAI e fornece sua chave de API. O ID do modelo que você deve enviar é simplesmente "uncensored". Essa simplicidade reduz o tempo de integração, mas exige que você verifique se o seu cliente consegue lidar com um endpoint de modelo único sem esperar fallbacks.

Erros comuns de autenticação

Erros de autenticação geralmente decorrem de cabeçalhos mal configurados ou chaves expiradas. A API usa autenticação padrão com token Bearer. Você deve incluir sua chave de API no cabeçalho Authorization para cada requisição.

Um erro comum é armazenar a chave de API em cache sem verificar sua validade. Se você regenerar sua chave, a antiga é revogada imediatamente. Você deve atualizar a configuração do seu cliente para usar a nova chave. Se você receber um erro 401 Unauthorized, verifique duas coisas: primeiro, certifique-se de que a chave foi copiada corretamente, sem espaços em branco à esquerda ou à direita. Segundo, verifique se você está usando a URL base correta. Até um pequeno desvio no domínio ou no caminho resultará em falha de autenticação.

Outro problema frequente é usar o ID de modelo incorreto. O endpoint espera "uncensored". Se você enviar "gpt-4" ou outro ID de modelo padrão, o endpoint pode rejeitar a requisição ou retornar um erro porque ele serve apenas um modelo. Sempre verifique novamente o campo model no corpo da sua requisição.

curl https://api.uncensoredgptapi.com/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."}]
  }'

Tratamento correto de respostas em streaming

Respostas em streaming via Server-Sent Events (SSE) são suportadas, mas frequentemente mal tratadas por desenvolvedores acostumados com respostas JSON síncronas. Quando você define "stream": true em sua requisição, a API retorna um fluxo de objetos JSON parciais, não uma única resposta JSON completa.

Se o seu cliente tentar analisar toda a resposta como JSON de uma vez, ela falhará. Você deve ler o fluxo linha por linha. Cada linha começa com data: e contém um objeto JSON parcial. A linha final é data: [DONE]. Seu código deve agregar esses fragmentos para reconstruir o texto final.

Alguns SDKs lidam com isso automaticamente, mas implementações personalizadas precisam de análise explícita de SSE. Certifique-se de que o buffer do seu cliente possa lidar com saídas grandes sem estourar o tempo limite. O modelo sem censura pode gerar respostas longas, e o streaming ajuda a gerenciar o uso de memória. Se você tiver conexões interrompidas, considere implementar backoff exponencial para a lógica de nova tentativa.

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)

Erros de configuração de chamada de funções

A chamada de funções é suportada, mas o modelo sem censura pode alucinar argumentos com mais frequência do que modelos ajustados por instrução. Isso exige validação mais rigorosa por sua parte. Ao definir ferramentas, certifique-se de que seu esquema JSON seja preciso. O modelo tentará preencher os argumentos, mas pode omitir campos obrigatórios ou fornecer tipos incorretos.

Sempre valide os argumentos da chamada de função antes de executar a função. Se o modelo retornar JSON inválido para os argumentos, você deve lidar com o erro de forma elegante. Não assuma que a saída será perfeitamente estruturada. Você pode precisar implementar um mecanismo de nova tentativa ou uma etapa de pós-processamento para limpar os argumentos.

Além disso, esteja ciente de que o modelo sem censura pode ignorar definições de ferramentas se o prompt for complexo. Se você encontrar problemas, simplifique as descrições das ferramentas e certifique-se de que o prompt do sistema instrua claramente o modelo a usar as ferramentas quando apropriado. Teste com algumas entradas de exemplo para verificar o comportamento.

Limites da Janela de Contexto (100k Tokens)

A API sem censura suporta uma janela de contexto de 100.000 tokens, combinando tanto o prompt quanto a conclusão. Isso é significativamente maior que muitos modelos padrão, permitindo conversas extensas ou processamento de grandes documentos. No entanto, não é infinito. Se sua entrada exceder esse limite, a API retornará um erro.

Para evitar atingir esse limite, monitore o uso de tokens. A maioria dos SDKs fornece utilitários para contar tokens. Acompanhe os tokens cumulativos no histórico de conversas. Se você estiver processando documentos grandes, considere fragmentá-los ou resumir partes anteriores da conversa para liberar espaço de contexto.

Lembre-se de que a janela de contexto inclui todas as mensagens no array messages. Cada mensagem contribui para o total. Se você está enviando muitas mensagens pequenas, a sobrecarga pode se acumular. Otimize a estrutura do seu prompt para minimizar tokens desnecessários. Por exemplo, evite repetir instruções do sistema em cada turno se elas permanecerem constantes.

Explicação dos Limites de Requisições (300 RPM)

A API impõe um limite de requisições de 300 requisições por minuto por chave. Este é um limite rígido para garantir uso justo entre todos os usuários. Se você exceder esse limite, receberá um erro 429 Too Many Requests. Seu cliente deve lidar com isso implementando uma estratégia de retry.

Um erro comum é não considerar o tráfego em rajada. Se você enviar 300 requisições em rápida sucessão, pode atingir o limite mesmo que sua taxa média seja menor. Distribua suas requisições uniformemente ao longo do minuto. Se você está processando um grande conjunto de dados, considere agrupar requisições ou usar uma fila para gerenciar o fluxo.

Os limites de requisições são aplicados por chave de API. Se você tiver vários serviços usando a mesma chave, eles compartilham o limite. Para aumentar a capacidade, você pode gerar uma nova chave, mas observe que apenas uma chave está ativa por conta. Você pode regenerar a chave a qualquer momento, mas isso revoga a antiga, portanto, certifique-se de que todos os clientes sejam atualizados.

Limites do Tamanho do Corpo da Requisição (8MB)

Cada corpo de requisição é limitado a 8 MB. Esse limite se aplica ao payload JSON, incluindo a matriz messages e quaisquer definições de ferramentas. Se o seu corpo de requisição exceder esse tamanho, a API o rejeitará com o erro 413 Payload Too Large.

Esse limite é importante ao enviar arquivos grandes como dados codificados em base64 ou ao incluir históricos de conversas extensos. Se você está trabalhando com documentos grandes, considere compactar o texto ou remover espaços em branco desnecessários antes de enviar. Você também pode usar streaming para reduzir o uso de memória, mas o corpo da requisição inicial ainda deve caber no limite de 8 MB.

Monitore o tamanho das suas requisições durante o desenvolvimento. Se você encontrar esse erro, revise a estrutura do seu prompt e remova informações redundantes. Por exemplo, se você estiver incluindo todo o prompt do sistema em cada mensagem, mova-o para o role system uma vez e faça referência a ele.

Gerenciamento e regeneração de chave de API

Cada conta é limitada a uma chave de API. Essa chave é gerada durante o cadastro e é exibida imediatamente. Você pode regenerar a chave a qualquer momento no seu painel. Quando você regenera, a chave antiga é revogada instantaneamente. Qualquer cliente usando a chave antiga receberá um erro 401 Unauthorized.

Para gerenciar isso efetivamente, atualize todos os seus clientes antes de regenerar a chave. Se você tiver vários serviços ou dispositivos usando a chave, certifique-se de que todos sejam atualizados simultaneamente. Você pode gerar uma nova chave quantas vezes precisar, mas apenas uma estará ativa por vez.

A chave de API está vinculada ao seu e-mail e senha. Se você perder sua chave, pode regenerá-la. Não há limite para o número de regenerações. No entanto, regenerações frequentes podem indicar uma preocupação de segurança, portanto, use-a quando necessário. Mantenha sua chave segura e não a compartilhe publicamente.

Solução de problemas com filtros de conteúdo

O modelo sem censura não recusa tópicos adultos legais, ficcionais, de pesquisa de segurança ou controversos. No entanto, há um limite de conteúdo rígido que sempre se aplica: nenhum conteúdo sexual envolvendo menores. Requisições contendo esse conteúdo são bloqueadas.

Se você encontrar recusas inesperadas, verifique seu prompt para indicadores sutis de conteúdo proibido. O modelo é ajustado para uso irrestrito, mas ainda pode aplicar filtros de segurança básicos. Se você estiver testando com casos extremos, documente o comportamento para entender os limites do modelo.

Outro problema comum é a alucinação. O modelo sem censura pode gerar informações plausíveis, mas incorretas. Sempre verifique saídas críticas, especialmente ao usar chamadas de funções ou gerar código. O modelo prioriza a fluidez em vez da precisão factual estrita em alguns casos.

Perguntas e respostas

A API sem censura é compatível com os SDKs da OpenAI?

Sim, é totalmente compatível. Você simplesmente altera a URL base para https://api.uncensoredgptapi.com/v1 e define o ID do modelo como "uncensored". Todos os parâmetros padrão, como streaming, chamada de funções e mensagens, funcionam conforme o esperado.

Como lidar com os limites de requisições?

Você está limitado a 300 requisições por minuto por chave. Se você exceder isso, receberá um erro 429. Implemente backoff exponencial no seu cliente para tentar novamente após a reinicialização do limite. Considere agrupar requisições se você estiver processando grandes conjuntos de dados.

Posso usar várias chaves de API?

Não, cada conta está limitada a uma única chave de API. Você pode regenerar a chave a qualquer momento, mas isso revoga a anterior. Certifique-se de atualizar todos os seus clientes com a nova chave imediatamente após a regeneração.

Qual é o tamanho da janela de contexto?

A janela de contexto é de 100.000 tokens, o que inclui tanto o prompt quanto a conclusão. Isso permite conversas longas ou processamento de grandes documentos. Monitore o uso de tokens para evitar exceder esse limite.

Sua chave está a um formulário de distância

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

Obter chave de API