Guide d’intégration · SDK CERVEAU
Embarquer ELYSÉA.
Six étapes. Rien à configurer côté éthique.
Votre LLM, votre infrastructure, votre UX. ELYSÉA s’intercale comme couche de protection relationnelle : les quatre interdits et la conformité AI Act sont hérités automatiquement, sans règle éthique à coder ni couche supplémentaire à maintenir.
Ce que vous n’écrirez pas
Hérité du pipeline.
Pas recodé dans votre app.
Guardian SDK
Détection et blocage des 4 interdits — actif à chaque appel pipeline.run().
Orientation crise
Orientation crise (numéros d'urgence, désescalade) — non désactivable, firm_safety intégré.
Journaux AI Act
Logs horodatés signés HMAC-SHA256 émis automatiquement. Rétention 6 mois par architecture.
Mémoire utilisateur
M1–M6 persistées côté Core. Votre app lit la synthèse consentie — pas les items bruts.
Intégration pas à pas
01Clé constructeur
Créez votre app dans le portail développeur. Vous recevez une clé sk_test_ instantanément — sans revue, sans engagement. La clé sk_live_ demande une revue individuelle (24–72h) : c'est ce qui garantit l'intégrité de l'écosystème.
Portail développeur → 02Installation
Un seul paquet. Node.js 18+ ou navigateur (ESM).
bash
npm install @elysea/sdk
# ou
yarn add @elysea/sdk
03Initialisation du client
Trois paramètres : votre clé, votre appId, la région EU (obligatoire — hébergement souverain). BYOK : les tokens LLM restent à votre charge — ELYSÉA n'a pas accès à vos clés de modèle.
typescript
import { ElyseaClient } from '@elysea/sdk';
const elysea = new ElyseaClient({
apiKey: process.env.ELYSEA_API_KEY, // clé constructeur
appId: process.env.ELYSEA_APP_ID, // identifiant app
region: 'EU', // obligatoire — souveraineté EU
});
04Résolution d'identité
ELYSÉA dérive un coreUserId anonymisé depuis votre JWT. Vous ne transmettez jamais l'email ni les données réelles de l'utilisateur. La mémoire et la continuité cross-app fonctionnent sur ce coreUserId.
typescript
// Depuis votre middleware auth
const { coreUserId } = await elysea.identity.resolve({
userJwt: req.headers.authorization,
});
// coreUserId → identifiant interne anonymisé
// Jamais l'email, jamais les données PII
05Premier appel pipeline
Un appel — le pipeline complet : interprétation du signal, vérification Guardian, génération, post-traitement éthique. Les 4 interdits sont actifs. Vous n'avez rien à configurer.
typescript
const result = await elysea.pipeline.run({
userInput: userMessage,
coreUserId,
conversationHistory: previousMessages, // optionnel
});
// result.response → réponse conforme, prête à afficher
// result.posture → posture appliquée (present_neutral, firm_safety…)
// result.signal → signal interprété (besoin, détresse, factuel…)
// result.guardianLog → trace Guardian pour votre audit
06Trust-mark
Dès que votre app est active, le badge « Powered by ELYSÉA » est disponible. Il indique à vos utilisateurs que les 4 interdits sont actifs et que la conformité AI Act est héritée. Affichage obligatoire — non-supprimable par configuration.
Comprendre le trust-mark →
Exemple complet
Intégration en 30 lignes.
Copiez ce fichier dans votre projet — c’est une intégration fonctionnelle complète.
typescript
// elysea.ts — intégration ELYSÉA CERVEAU
import { ElyseaClient, type PipelineResult } from '@elysea/sdk';
const elysea = new ElyseaClient({
apiKey: process.env.ELYSEA_API_KEY!,
appId: process.env.ELYSEA_APP_ID!,
region: 'EU',
});
type Message = { role: 'user' | 'assistant'; content: string };
export async function chat(
userJwt: string,
message: string,
history: Message[] = [],
): Promise<PipelineResult> {
// 1. Identité anonymisée — jamais l'email
const { coreUserId } = await elysea.identity.resolve({ userJwt });
// 2. Pipeline cognitif — 4 interdits actifs, rien à configurer
const result = await elysea.pipeline.run({
userInput: message,
coreUserId,
conversationHistory: history,
});
// result.response → réponse prête à afficher
// result.posture → posture runtime appliquée
// result.signal → signal interprété
// result.guardianLog → trace Guardian pour votre audit
return result;
}
// Dans votre handler API :
// const result = await chat(req.headers.authorization, req.body.message, history);
// res.json({ reply: result.response });
Monotonicité SDK
Vous pouvez durcir.
Jamais affaiblir.
Si votre cas d’usage l’exige — secteur médical, utilisateurs mineurs, contexte professionnel — vous pouvez ajouter des contraintes supplémentaires via les extensions SDK. Toute tentative de désactiver un interdit de base (clés disableDominationCheck, suppressSafety, etc.) déclenche immédiatement une SdkProhibitionError — la requête est rejetée avant exécution.
typescript
// Extension — ajout de contrainte sectorielle (médical)
const elysea = new ElyseaClient({
apiKey: process.env.ELYSEA_API_KEY!,
appId: process.env.ELYSEA_APP_ID!,
region: 'EU',
extensions: [{
checkOutput: (text, ctx) => {
// Contrainte supplémentaire : bloquer tout claim médical
if (containsMedicalDiagnosis(text)) {
return [{ pilier: 'substitution', action: 'block', detail: 'medical_claim' }];
}
return [];
}
}]
// Les 4 interdits de base restent actifs — non modifiables
});
// Interdit — déclenche SdkProhibitionError :
// disableDominationCheck: true → P1_D0_OVERRIDE_ATTEMPT
// suppressSafety: true → P3_SAFETY_GATE_BYPASS_ATTEMPT
// bypassGuardian: true → P4_NON_CONFORM_LLM_SIGNATURE
sk_test_ disponible maintenant.
Pipeline actif dès le premier appel.