Início rápido para pipelines do Whisper
Integre nosso modelo de texto sem censura em seus pipelines de fala ou imagem com uma API de conclusões de chat compatível com OpenAI. Este guia cobre os passos essenciais para enviar requisições, lidar com streaming e gerenciar janelas de contexto para tarefas de pós-processamento.
Pré-requisitos
Antes de começar, certifique-se de ter uma conta ativa e uma chave de API. Cadastre-se na página Obter chave de API usando apenas seu e-mail e uma senha. A chave aparece imediatamente. Você recebe $0.50 em crédito de teste válido por 7 dias, sem necessidade de cartão de crédito. Para produção, recarregue a partir de $10 via criptoativos (USDT ou USDC). Nosso preço é direto: $0.25 por 1M de tokens de entrada e $1.00 por 1M de tokens de saída. Os créditos nunca expiram.
URL Base: https://api.whisperapis.com/v1. Este endpoint funciona com qualquer cliente compatível com OpenAI. Você só precisa configurar a URL base e fornecer sua chave de API no cabeçalho de autorização. Nenhum SDK especial é necessário para requisições HTTP básicas.
Inicializar Cliente
A maioria dos desenvolvedores usará o SDK oficial da OpenAI ou uma biblioteca compatível. Inicialize o cliente apontando-o para nossa URL base. Isso garante que todas as requisições sejam roteadas para nosso modelo sem censura, em vez dos servidores da OpenAI. O ID do modelo é sempre uncensored.
Certifique-se de que sua variável de ambiente OPENAI_API_KEY esteja definida com sua chave do painel. Se você estiver usando uma linguagem ou biblioteca diferente, verifique se ela suporta URLs base personalizadas. O SDK cuida da serialização JSON e da injeção de cabeçalhos para você, reduzindo o código repetitivo nos scripts do seu pipeline.
Enviar Conclusão de Chat
Envie uma requisição padrão de conclusão de chat para refinar a saída do seu pipeline. Por exemplo, extraia JSON estruturado de transcrições de fala-para-texto ou gere legendas para imagens sem filtros de conteúdo.
O endpoint é POST /v1/chat/completions. Inclua o ID do modelo, seu array de mensagens e opcionalmente seu prompt de sistema para definir o comportamento sem censura.
curl https://api.whisperapis.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."}]
}'Nosso modelo lida bem com dados de alto contexto, suportando até 100.000 tokens no total. Isso é ideal para processar transcrições longas ou descrições detalhadas de imagens em uma única passagem.
Respostas em Streaming
Para pós-processamento em tempo real ou pipelines interativos, ative o streaming. Defina o parâmetro stream como true em sua requisição. A API retorna Eventos Enviados pelo Servidor (SSE) em vez de um único objeto JSON.
Analise os campos delta conforme eles chegam. Isso reduz a latência percebida para grandes saídas, como gerar scripts detalhados ou extrair blocos longos de texto de resultados de OCR ruidosos. O formato de streaming é compatível com manipuladores de streaming padrão do SDK da OpenAI.
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)Certifique-se de que seu cliente lide corretamente com chunks parciais. Agregue os deltas para reconstruir a resposta de texto completa assim que o stream terminar com um finish_reason de stop ou length.
Suporte a Chamada de Funções
Nosso modelo sem censura suporta chamada de funções, permitindo que você defina saídas estruturadas para seus pipelines. Defina suas ferramentas no array tools com definições de esquema JSON.
O modelo retorna chamadas de ferramentas na resposta, que você pode executar para atualizar o contexto da conversa. Isso é útil para extrair pontos de dados específicos de texto não estruturado, como datas, nomes ou coordenadas de transcrições de fala.
from openai import OpenAI
client = OpenAI(base_url="https://api.whisperapis.com/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)Passe as chamadas de ferramentas de volta para a API em mensagens subsequentes. O modelo refinará sua saída com base nos resultados. Isso permite raciocínio complexo em múltiplas etapas sem sair da interface de chat. Certifique-se de que seu esquema seja estrito para evitar respostas JSON malformadas.
Limites, Erros e Contexto
Monitore seu uso para evitar interrupções. A API impõe um limite de 300 requisições por minuto por chave. Se você exceder isso, receberá um erro de limite de requisições 429. Implemente backoff exponencial no seu cliente.
Erros Comuns:
401: Chave de API inválida ou expirada. Regenerar sua chave no painel.402: Crédito insuficiente. Recarregue sua conta para continuar o processamento.429: Limite de requisições excedido. Reduza a frequência de requisições ou agrupe tarefas menores.
Janela de Contexto: O modelo suporta 100.000 tokens para prompt + conclusão. Se sua entrada exceder isso, trunque mensagens antigas ou divida os dados. Os corpos das requisições são limitados a 8 MB. Certifique-se de que suas cargas úteis se encaixem nessas restrições para desempenho confiável.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.whisperapis.com/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);Ficha técnica da API
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 |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Autenticação | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.whisperapis.com/v1 |
| Saída máxima | até o restante da janela de 100.000 tokens; max_tokens opcional (sem limite separado) |
| Streaming | sim — server-sent events; o último bloco traz o uso de tokens |
| Modo JSON | response_format: {"type": "json_object"} |
| 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 |
| Janela de contexto | 100.000 tokens (entrada + saída) |
| 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 |
| Recarga | USDT (TRC20) ou USDC (Base), qualquer valor inteiro de $10 a $500 |
| Bônus | +5% a partir de $50, +10% a partir de $100 |
| Cobrança | crédito pré-pago pelo uso real; erros e recusas são grátis |
| 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 |
| Validade | crédito pago não expira, sem assinatura |
| 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 |
Erros e o que fazer
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
Qual é o tamanho da janela de contexto?
O modelo suporta uma janela de contexto de 100.000 tokens, que inclui tanto o prompt quanto a conclusão. Isso permite processar transcrições longas ou descrições detalhadas em uma única requisição.
Esta API gera imagens ou áudio?
Não. Esta é uma API de conclusões de chat apenas para texto. Ela foi projetada para pós-processamento de saídas de texto de outras modalidades, como fala-para-texto ou geração de imagens. Ela não gera áudio, imagens ou vídeo.
Como lidar com erros de streaming?
As respostas em streaming retornam eventos SSE. Se ocorrer um erro, o stream geralmente termina com uma mensagem de erro no campo error do último chunk. Certifique-se de que seu cliente lide com quedas de conexão de forma elegante e tente novamente se necessário.
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.