Pourquoi utiliser une API Uncensored.chat ?
Les APIs LLM standard appliquent souvent des filtres de contenu rigides qui refusent le contenu adulte légal, la fiction créative ou les sujets controversés. Une API de chat sans censure supprime ces garde-fous, permettant au modèle de répondre aux prompts en fonction de la pertinence plutôt que de la conformité aux politiques. Cela est crucial pour les applications nécessitant la capacité brute du modèle sans contraintes artificielles.
Notre API sert un modèle à poids ouverts unique, spécifiquement ajusté pour ce comportement. Il ne fait pas de routage entre fournisseurs et n'offre pas de choix multiples de modèles. Vous obtenez des sorties cohérentes et prévisibles à partir d'un seul moteur ajusté. Cela simplifie le débogage et l'optimisation des performances car vous ne gérez pas de personnalités de modèles variables ou de couches de filtrage cachées.
Contrairement aux fournisseurs généralistes, nous ne proposons pas d'embeddings, de génération d'images ou de traitement audio. Cela garde l'API légère et rapide. Si votre application nécessite des capacités multimodales, vous devez les intégrer séparément et utiliser cette API uniquement pour la génération de texte. L'objectif ici est purement une sortie de texte de haute qualité et sans restriction avec une fenêtre de contexte de 100 000 tokens.
Configuration de votre environnement
L'intégration commence par la configuration de votre environnement de développement pour pointer vers notre URL de base. Il s'agit d'un endpoint standard compatible OpenAI, vous pouvez donc utiliser n'importe quel SDK OpenAI officiel ou bibliothèque cliente compatible. Vous devez uniquement changer l'URL de base et fournir une clé API.
L'URL de base est https://api.nofilteraichat.com/v1. L'ID de modèle à envoyer dans vos requêtes est uncensored. Ce modèle est exécuté sur nos propres serveurs et n'est pas GPT, Claude ou le modèle d'un autre fournisseur. C'est un modèle à poids ouverts ajusté pour des réponses sans censure.
Assurez-vous que votre environnement prend en charge le streaming via les Server-Sent Events (SSE) si vous prévoyez d'utiliser des sorties en temps réel. L'API prend en charge des paramètres standard comme temperature, top_p, stop et seed. Vous pouvez également activer le mode JSON en définissant response_format sur {"type": "json_object"}.
Fenêtre de contexte : 100 000 tokens au total (prompt + complétion). Il n'y a pas de limite de sortie séparée, et si max_tokens n'est pas défini, la réponse peut s'étendre jusqu'à la fin de la fenêtre.
Authentification avec des clés API
L'authentification est gérée via une clé API passée dans l'en-tête Authorization. Vous pouvez vous inscrire en utilisant Continuer avec Google ou un e-mail et mot de passe sur la page Obtenir une clé API. Aucun numéro de téléphone n'est requis.
Lors de la création d'un compte, vous recevez une clé API active. Cette clé est affichée immédiatement après sa création. Si vous générez une nouvelle clé, l'ancienne est remplacée ; nous ne supportons pas plusieurs clés simultanées par compte. Cela simplifie la gestion des clés, mais vous ne pouvez pas avoir de clés distinctes pour différents environnements sur le même compte.
La clé est utilisée pour autoriser les requêtes vers l'endpoint /v1/chat/completions. Les erreurs et les refus (sauf pour la limite stricte sur le contenu sexuel mineur) ne consomment pas votre crédit prépayé. Le crédit n'est facturé que pour l'utilisation réelle des tokens.
Confidentialité : Les prompts ne sont pas utilisés pour l'entraînement. Un compte n'a besoin que d'une adresse e-mail.
Effectuer votre première requête
Votre première requête doit être une complétion de chat simple pour vérifier la connectivité. Utilisez l'endpoint POST /v1/chat/completions avec l'ID de modèle uncensored.
Voici un exemple de requête basique :
curl https://api.nofilteraichat.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."}]
}'Cette requête envoie un prompt et reçoit une réponse textuelle. Le modèle répondra sans filtrer le contenu adulte légal. Si vous devez imposer un ton ou un format spécifique, utilisez le message system pour définir des instructions.
Rappelez-vous que l'API a une limite de 300 requêtes par minute par clé et autorise 8 requêtes simultanées. Si vous dépassez ces limites, vous recevrez une erreur de limite de débit. La taille du corps de la requête est limitée à 8 Mo. Assurez-vous que votre client gère ces limites correctement en implémentant une rétroaction exponentielle pour les nouvelles tentatives.
Implémentation des réponses en streaming
Le streaming est pris en charge via les Server-Sent Events (SSE). Cela vous permet de recevoir les tokens au fur et à mesure de leur génération, offrant une meilleure expérience utilisateur pour les réponses longues. Chaque chunk contient un delta partiel de la réponse.
Important : les statistiques d'utilisation des tokens (tokens d'entrée et de sortie) ne sont incluses que dans le dernier chunk du flux. Vous devez agréger les deltas puis traiter le dernier chunk pour obtenir des données d'utilisation précises à des fins de facturation.
Voici un exemple de gestion du streaming dans votre code :
from openai import OpenAI
client = OpenAI(base_url="https://api.nofilteraichat.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)Cette approche garantit que vous pouvez afficher le texte en temps réel tout en suivant précisément la consommation de tokens. Si une erreur se produit pendant le streaming, le flux peut se terminer prématurément. Consultez le dernier chunk ou le statut d'erreur pour plus de détails.
Utilisation de l'appel de fonctions
L'appel de fonctions est pris en charge via les paramètres tools et tool_choice. Cela permet au modèle de générer des données structurées que votre application peut exécuter. Définissez vos fonctions dans le tableau tools, et le modèle retournera un champ tool_calls dans la réponse si nécessaire.
Définissez tool_choice sur "auto" pour laisser le modèle décider quand appeler une fonction, ou spécifiez un ID de fonction spécifique pour forcer un appel. Le modèle retournera le nom de la fonction et les arguments au format JSON.
Structure d'exemple :
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nofilteraichat.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);Assurez-vous que votre client analyse le tableau tool_calls et exécute les fonctions. Le modèle n'exécute pas les fonctions lui-même ; il génère uniquement les instructions d'appel. C'est un modèle standard compatible OpenAI, donc toute bibliothèque qui prend en charge l'appel de fonctions avec OpenAI devrait fonctionner ici.
Gestion du mode JSON
Le mode JSON garantit que le modèle produit strictement du JSON valide. Cela est utile pour les applications nécessitant des données structurées, comme des réponses API ou des fichiers de configuration. Définissez response_format sur {"type": "json_object"} dans votre requête.
Lorsque le mode JSON est activé, le modèle tentera de produire un seul objet JSON valide. Si la sortie est invalide, l'API peut retourner une erreur ou une réponse malformée. Validez toujours le JSON côté client.
Exemple :
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)Ce mode est particulièrement utile pour construire des agents ou des applications nécessitant des formats de sortie déterministes. Il réduit le besoin de post-traitement pour extraire des données structurées à partir de texte libre. Notez que le mode JSON peut légèrement augmenter la latence en raison de la contrainte supplémentaire sur la sortie du modèle.
Gestion des limites de débit et des erreurs
Les limites de débit sont appliquées à 300 requêtes par minute par clé et 8 requêtes simultanées par clé. Le corps de la requête est limité à 8 Mo. Si vous dépassez ces limites, vous recevrez un code d'état 429. Implémentez une rétroaction exponentielle dans votre client pour gérer les nouvelles tentatives.
Les erreurs telles que des paramètres invalides ou des problèmes de serveur ne consomment pas de crédit. Les refus pour du contenu adulte légal ne consomment pas non plus de crédit. La seule limite stricte qui s'applique toujours est le refus du contenu sexuel impliquant des mineurs, qui consommera des tokens si la requête est traitée.
La tarification est transparente : 0,15 $ par 1M de tokens d'entrée et 0,50 $ par 1M de tokens de sortie. Le crédit est prépayé et n'expire jamais. Les erreurs sont gratuites, vous pouvez donc expérimenter sans vous soucier des coûts. Si vous rencontrez un problème de facturation, utilisez la page Support pour obtenir de l'aide.
