Ajouter de l'intelligence artificielle à votre SaaS n'est plus réservé aux grandes entreprises. Avec les bonnes APIs, vous pouvez intégrer la génération de texte, le SEO automatisé et la génération de code en quelques minutes. Ce tutoriel vous montre exactement comment faire, avec du code copiable.
Prérequis
- Un projet Next.js 14+ (App Router)
- Une clé API NeuraAPI (gratuite sur /register)
- Node.js 18+ installé
Étape 1 — Créer votre compte et obtenir une clé API
Rendez-vous sur /register et créez un compte gratuit. Vous recevez immédiatement une clé API commençant par napi_. 100 crédits mensuels sont offerts.
Conservez cette clé en lieu sûr. Elle sera utilisée dans tous vos appels API.
Étape 2 — Installer le SDK
Le SDK TypeScript rend l'intégration ultra-simple. Une seule dépendance, zéro configuration.
npm install @neuraapi/sdk
Étape 3 — Créer un service IA côté serveur
Créez un fichier lib/ai.ts qui encapsule les appels API. C'est le point central de votre intégration.
// lib/ai.ts
import { NeuraAPI } from '@neuraapi/sdk'
const ai = new NeuraAPI(process.env.NEURA_API_KEY!)
export async function generateContent(prompt: string) {
const result = await ai.generate({
prompt,
maxTokens: 1000,
})
return result.content
}
export async function generateSEO(topic: string, keywords: string[]) {
const result = await ai.seo({
topic,
keywords,
maxTokens: 2000,
})
return {
title: result.title,
metaDescription: result.metaDescription,
content: result.content,
}
}
export async function generateCode(description: string, language = 'typescript') {
const result = await ai.code({
description,
language,
})
return result.code
}Étape 4 — Créer une route API Next.js
Exposez une route API dans votre SaaS. Cette route sera appelée par votre frontend pour générer du contenu.
// app/api/generate/route.ts
import { NextResponse } from 'next/server'
import { generateContent } from '@/lib/ai'
import { auth } from '@/lib/auth'
export async function POST(req: Request) {
const session = await auth()
if (!session) {
return NextResponse.json({ error: 'Non autorisé' }, { status: 401 })
}
const { prompt } = await req.json()
if (!prompt || typeof prompt !== 'string') {
return NextResponse.json({ error: 'Prompt requis' }, { status: 400 })
}
try {
const content = await generateContent(prompt)
return NextResponse.json({ content })
} catch (error) {
return NextResponse.json({ error: 'Erreur de génération' }, { status: 500 })
}
}Étape 5 — Appeler depuis le frontend
Côté client, appelez votre route API avec un simple fetch. Voici un composant React complet.
// components/AIGenerator.tsx
'use client'
import { useState } from 'react'
export function AIGenerator() {
const [prompt, setPrompt] = useState('')
const [result, setResult] = useState('')
const [loading, setLoading] = useState(false)
const handleGenerate = async () => {
if (!prompt.trim()) return
setLoading(true)
setResult('')
const res = await fetch('/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt }),
})
const data = await res.json()
setResult(data.content || data.error)
setLoading(false)
}
return (
<div className="space-y-4">
<textarea
value={prompt}
onChange={(e) => setPrompt(e.target.value)}
placeholder="Décrivez ce que vous voulez générer..."
className="w-full rounded-lg border p-3"
rows={3}
/>
<button
onClick={handleGenerate}
disabled={loading}
className="rounded-lg bg-indigo-600 px-6 py-2 text-white"
>
{loading ? 'Génération...' : 'Générer'}
</button>
{result && (
<div className="rounded-lg bg-gray-50 p-4">
<p>{result}</p>
</div>
)}
</div>
)
}Étape 6 — Ajouter un rate limiting
Protégez votre API contre les abus. Voici un middleware simple qui limite les appels par utilisateur.
// lib/rate-limit.ts
const requests = new Map<string, number[]>()
export function rateLimit(key: string, limit = 10, windowMs = 60000) {
const now = Date.now()
const timestamps = requests.get(key) || []
const recent = timestamps.filter(t => now - t < windowMs)
if (recent.length >= limit) {
return false
}
recent.push(now)
requests.set(key, recent)
return true
}
// Utilisation dans la route API :
// if (!rateLimit(session.user.id)) {
// return NextResponse.json({ error: 'Trop de requêtes' }, { status: 429 })
// }Bonnes pratiques
Ne jamais exposer la clé API côté client
Utilisez toujours un proxy serveur (route API Next.js) pour les appels à l'API IA. La clé API ne doit jamais figurer dans le code JavaScript envoyé au navigateur.
Valider les entrées utilisateur
Sanitisez et validez toujours le prompt envoyé par l'utilisateur. Limitez la longueur, filtrez les caractères dangereux, et utilisez zod ou joi pour la validation.
Mettre en cache les réponses
Pour les prompts similaires, mettez en cache les réponses IA. Un cache Redis avec un TTL de 24h réduit considérablement les coûts sans impacter la qualité.
Monitorer les coûts
Trackez la consommation de crédits par utilisateur et par fonctionnalité. Les APIs IA peuvent coûter cher si elles ne sont pas optimisées.
Conclusion
En 6 étapes simples, vous avez intégré l'IA dans votre SaaS. La génération de contenu, le SEO automatisé et la génération de code sont maintenant accessibles à vos utilisateurs. Le tout en moins de 30 minutes.
NeuraAPI simplifie cette intégration : une seule clé API, un SDK TypeScript, des endpoints documentés. Vous vous concentrez sur votre produit, nous gérons l'infrastructure IA.
Prêt à intégrer l'IA ?
Obtenez votre clé API gratuite et commencez à construire en quelques minutes.