Inicio rápido para usuarios de MiniCpm
Conecta tu cliente compatible con OpenAI a nuestra API sin censura en menos de un minuto. Reemplaza tu base URL, establece tu clave y comienza a generar texto con el modelo "sin censura".
Base URL y Autenticación
Para usar esta API, necesitas una clave de API y la base URL correcta. Nuestro servicio es totalmente compatible con las bibliotecas cliente estándar de OpenAI. No necesitas instalar nuevas dependencias ni aprender un nuevo SDK. Simplemente apunta tu cliente existente a nuestro endpoint.
Genera una clave en la página Obtener clave de API. Puedes iniciar sesión con Google o usar un correo electrónico y contraseña. La clave se muestra inmediatamente. Guárdala de forma segura. Cada petición debe incluir esta clave en el encabezado Authorization.
La base URL para todas las peticiones es: https://api.minicpm.cc/v1. Esta URL maneja finalizaciones de chat, listado de modelos y respuestas en streaming. No hay endpoints separados para embeddings o visión. Esta es una API solo de texto.
Primera Petición
Envía una petición estándar de finalización de chat para comenzar a generar texto. El ID del modelo es siempre uncensored. Este modelo es un modelo de lenguaje grande de pesos abiertos ajustado para responder sin rechazos de contenido para uso adulto lícito. No es GPT, Claude ni ningún otro modelo de proveedor.
Establece el campo model a uncensored. Proporciona tus mensajes en el formato de array estándar. La API devuelve una respuesta de texto. Puedes controlar la longitud de la salida con max_tokens. Si no lo estableces, la salida máxima predeterminada es de 2.048 tokens.
Integración con SDK de Python
Usa la biblioteca oficial de Python de OpenAI para interactuar con la API. Solo necesitas configurar la base URL y la clave de API. El resto de la biblioteca funciona como se espera. Esto incluye soporte para streaming, llamadas a funciones y modo JSON.
Instala la biblioteca con pip install openai. Inicializa el cliente con tu base URL y clave. Envía mensajes al endpoint de finalizaciones de chat. El objeto de respuesta contiene el texto generado, el uso de tokens y la razón de finalización. Puedes acceder a estos campos directamente en tu código Python.
Integración con SDK de Node.js
El SDK de Node.js funciona de manera idéntica a la versión de Python. Instala el paquete y configura la base URL. El cliente maneja la autenticación y el formato de las peticiones automáticamente. Esto te permite integrar la API en tus servicios backend rápidamente.
Pasa la base URL y la clave de API al constructor del cliente de OpenAI. Usa el método chat.completions.create. La estructura de la respuesta coincide con el estándar de OpenAI. Puedes manejar errores, verificar el uso de tokens y procesar el contenido. Este enfoque garantiza la compatibilidad con bases de código existentes que ya usan OpenAI.
Respuestas en Streaming
Habilita el streaming estableciendo stream: true en tu petición. La API devuelve una secuencia de Eventos Enviados por el Servidor (SSE). Cada evento contiene un fragmento de la respuesta. Esto te permite mostrar texto al usuario a medida que se genera.
El último fragmento incluye las estadísticas de uso de tokens. Esto es útil para rastrear costos. El streaming reduce la latencia percibida para los usuarios. Se recomienda para interfaces de chat. Puedes analizar los eventos en tu código cliente para construir la respuesta final o mostrar tokens en tiempo real.
Límites, Errores y Contexto
El modelo admite una ventana de contexto de 100.000 tokens. Esto incluye tanto el prompt como la finalización. La salida máxima por petición es de 32.000 tokens. Puedes ajustar el parámetro max_tokens para controlarlo.
Los límites de peticiones están establecidos en 300 peticiones por minuto por clave. Puedes tener 8 peticiones simultáneas. El cuerpo de la petición debe ser inferior a 8 MB. Si la clave no es válida, recibirás un error 401. Si no tienes crédito, recibirás un error 402. Si excedes el límite de peticiones, recibirás un error 429. Los errores y rechazos no consumen crédito.
cURL
curl https://api.minicpm.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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.minicpm.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.minicpm.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);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)Funciones y límites
Una tabla con cada límite, función y precio.
| Elemento | Valor |
|---|---|
| Formato | compatible con OpenAI: cualquier SDK de OpenAI funciona cambiando la base URL y la clave |
| Base URL | https://api.minicpm.cc/v1 |
| ID del modelo | uncensored |
| Autenticación | Authorization: Bearer YOUR_KEY |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Parámetros | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Streaming | sí: server-sent events; el último fragmento incluye el uso de tokens |
| Llamadas a funciones | sí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool |
| Modo JSON | response_format: {"type": "json_object"} |
| Ventana de contexto | 100.000 tokens (entrada + salida) |
| Salida máxima | hasta el resto de la ventana de 100.000 tokens; max_tokens opcional (sin límite aparte) |
| Concurrencia | 8 peticiones a la vez por clave |
| Tamaño de petición | hasta 8 MB |
| Límite de peticiones | 300 por minuto por clave |
| Cabeceras | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Facturación | crédito prepago por uso real; errores y rechazos no se cobran |
| Recarga | USDT (TRC20) o USDC (Base), cualquier importe entero de $10 a $500 |
| Caducidad | el crédito pagado no caduca, sin suscripción |
| Precio | $0,25 por 1M tokens de entrada · $1,00 por 1M de salida |
| Prueba gratis | $0,50 durante 7 días, sin tarjeta · Clave de prueba: 2 solicitudes paralelas, 60 por minuto; límites completos (8 y 300) tras la primera recarga |
| Bono | +5 % desde $50, +10 % desde $100 |
| Acceso | Google o correo y contraseña |
| Contenido | contenido adulto permitido; se rechaza el contenido sexual con menores |
| Claves | una clave activa por cuenta; una nueva reemplaza a la anterior |
Códigos de error
Los errores llegan como JSON con un type fijo; las peticiones fallidas o rechazadas no se cobran.
| Código | Tipo | Significado |
|---|---|---|
400 | bad_request | JSON inválido, mensajes vacíos, parámetro incorrecto o contexto demasiado largo |
401 | missing_key · invalid_key · key_revoked | falta la clave, es incorrecta o fue reemplazada |
402 | no_credit | sin crédito: recarga y sigue al instante |
403 | content_blocked | contenido sexual con menores: rechazado, no se cobra |
404 | not_found | endpoint desconocido |
413 | request_too_large | cuerpo mayor de 8 MB |
429 | rate_limited · concurrency | más de 300/min o 8 en paralelo: espera y reintenta |
503 | upstream_busy | modelo ocupado: reintenta en unos segundos |
Preguntas y respuestas
¿Cuál es el tamaño de la ventana de contexto?
La ventana de contexto es de 100.000 tokens, lo que incluye tanto el prompt de entrada como la finalización de salida. La salida máxima por petición es de 32.000 tokens.
¿Cómo manejo los errores?
Un error 401 indica una clave de API inválida. Un error 402 indica que tu crédito prepago se ha agotado. Un error 429 significa que has excedido el límite de peticiones de 300 peticiones por minuto. Los errores no consumen tu crédito.
¿Puedo usar streaming?
Sí. Establece <code>stream: true</code> en tu petición. La API devuelve Server-Sent Events (SSE). El último fragmento contiene las estadísticas de uso de tokens.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave, cambia la base URL. Esa es toda la configuración.