Package Node.js pour discuter avec Netic API - Chat, audio et analyse d'images par IA
npm install netic-apiUn client Node.js moderne et complet pour communiquer avec l'API Netic AI.
``bash`
npm install netic
- ✅ Chat texte simple
- ✅ Support de l'historique de conversation
- ✅ Envoi de fichiers audio (premium)
- ✅ Upload et analyse d'images par IA
- ✅ Gestion automatique du quota
- ✅ Gestion robuste des erreurs
- ✅ Configuration persistente de la clé API
- ✅ TypeScript-friendly avec JSDoc
`javascript`
import { NeticClient, chat, setApiKey } from 'netic';
`javascript
import { chat } from 'netic';
try {
const response = await chat("Bonjour, comment allez-vous ?", "netic_votre_api_key");
console.log(response.response);
console.log("Quota restant:", response.usage.remaining);
} catch (error) {
console.error("Erreur:", error.message);
}
`
`javascript
import { NeticClient } from 'netic';
const client = new NeticClient("netic_votre_api_key");
try {
const response = await client.chat("Qu'est-ce que l'IA ?");
console.log(response.response);
} catch (error) {
console.error("Erreur:", error.message);
}
`
`javascript
import { setApiKey, getApiKey } from 'netic';
// Sauvegarder la clé API
setApiKey("netic_votre_api_key");
// Utiliser automatiquement la clé sauvegardée
const client = new NeticClient();
`
`javascript
import { NeticClient } from 'netic';
const client = new NeticClient("netic_votre_api_key");
// L'historique est géré automatiquement
await client.chat("Je m'appelle Jean");
await client.chat("Comment tu m'appelles ?"); // L'IA se souvient !
// Voir l'historique
console.log(client.getHistory());
// Vider l'historique
client.clearHistory();
`
`javascript
const history = [
{ role: "user", content: "Je suis développeur" },
{ role: "assistant", content: "Intéressant !" }
];
const response = await client.chat("Quels frameworks ?", history);
`
`javascript
import { NeticClient } from 'netic';
const client = new NeticClient("netic_votre_api_key");
try {
const response = await client.chatWithAudio({
message: "Voici un message audio",
audio: "/chemin/vers/fichier.webm"
});
console.log(response.response);
if (response.audio_url) {
console.log("Audio disponible:", response.audio_url);
}
} catch (error) {
if (error.message.includes('Audio feature not enabled')) {
console.log("L'accès audio doit être activé par un admin");
}
}
`
`javascript
import { NeticClient } from 'netic';
const client = new NeticClient("netic_votre_api_key");
try {
const response = await client.uploadImage({
image: "/chemin/vers/image.jpg",
prompt: "Décris cette image en détail"
});
console.log("Image uploadée:", response.imageUrl);
console.log("Analyse IA:", response.analysis);
} catch (error) {
console.error("Erreur:", error.message);
}
`
`javascript`
try {
const status = await client.getImageStatus();
console.log("API prête:", status.enabled);
console.log("Taille max:", status.maxSizeMB, "MB");
console.log("Formats supportés:", status.allowedTypes.join(', '));
} catch (error) {
console.error("Erreur:", error.message);
}
`javascript
// Questions sur le contenu
await client.uploadImage({
image: "photo.jpg",
prompt: "Combien de personnes vois-tu ?"
});
// Analyse spécialisée
await client.uploadImage({
image: "graphique.png",
prompt: "Analyse ce graphique et donne-moi les tendances"
});
// Instructions spécifiques
await client.uploadImage({
image: "peinture.jpg",
prompt: "Agis comme un expert en art et analyse cette peinture"
});
`
#### Constructor
- new NeticClient(apiKey?: string) - Crée une instance cliente
#### Methods
- setApiKey(key: string) - Définit la clé APIchat(message: string, history?: Array): Promise
-
- chat(message, apiKey?, history?) - Chat simplechatWithAudio(options, apiKey?)
- - Chat audio simpleuploadImage(options, apiKey?)
- - Upload d'image simplegetImageStatus(apiKey?)
- - Statut API images simplesetApiKey(key)
- - Sauvegarde la clé APIgetApiKey()
- - Récupère la clé APIclearApiKey()
- - Supprime la clé APIisValidApiKey(key)
- - Valide le format de la cléformatHistory(history)
- - Formate l'historiquecreateImageFormData(data)
- - Crée FormData pour images
`javascript`
{
response: "Réponse de l'IA",
usage: {
quota_used: 45,
quota_limit: 1000,
remaining: 955
},
user: "Nom utilisateur",
audio_url: "/uploads/audio/..." // optionnel
}
`javascript`
{
success: true,
imageUrl: "/uploads/images/abc123_image.jpg",
fileName: "abc123_image.jpg",
size: 245760,
type: "image/jpeg",
uploadedAt: "2025-01-20T10:30:00.000Z",
prompt: "Décris cette image en détail",
analysis: "Description détaillée de l'image générée par l'IA..."
}
`javascript`
{
status: "ready",
enabled: true,
publicApiEnabled: true,
maxSize: 5242880,
allowedTypes: ["jpeg", "jpg", "png", "webp"],
maxSizeMB: 5
}
Le client gère automatiquement tous les codes d'erreur :
- 401 - Clé API invalide
- 403 - Clé non approuvée ou audio non activé
- 429 - Quota dépassé
- 400 - Requête invalide
- 500 - Erreur serveur
`javascript`
try {
const response = await client.chat("Test");
} catch (error) {
if (error.message.includes('Quota exceeded')) {
console.log("Quota épuisé !");
}
}
Voir le dossier /examples pour des exemples complets :
- examples/basic.js - Utilisation de baseexamples/audio.js
- - Support audioexamples/image.js
- - Upload et analyse d'imagesexamples/advanced.js
- - Fonctionnalités avancées
La clé API est sauvegardée dans ~/.netic/config.json`.
1. Connectez-vous sur https://netic.jtheberg.cloud
2. Demandez une clé API dans le chat
3. Attendez l'approbation admin
4. Pour l'audio: contactez un admin pour l'activation
Jtheberg License use