Skip to content

Latest commit

 

History

History
123 lines (88 loc) · 7.42 KB

File metadata and controls

123 lines (88 loc) · 7.42 KB

Architecture du Système

Ce projet présente une application web qui utilise une vérification de la sécurité du contenu avant de transmettre les requêtes utilisateur à un service de calcul via le Model Context Protocol (MCP).

Diagramme de l’Architecture Système

Fonctionnement

  1. Saisie Utilisateur : L’utilisateur saisit une requête de calcul dans l’interface web
  2. Filtrage de Sécurité du Contenu (Entrée) : La requête est analysée par l’API Azure Content Safety
  3. Décision de Sécurité (Entrée) :
    • Si le contenu est sûr (sévérité < 2 dans toutes les catégories), il est transmis au calculateur
    • Si le contenu est signalé comme potentiellement dangereux, le processus s’arrête et une alerte est renvoyée
  4. Intégration du Calculateur : Le contenu sûr est traité par LangChain4j, qui communique avec le serveur MCP du calculateur
  5. Filtrage de Sécurité du Contenu (Sortie) : La réponse du bot est analysée par l’API Azure Content Safety
  6. Décision de Sécurité (Sortie) :
    • Si la réponse du bot est sûre, elle est affichée à l’utilisateur
    • Si la réponse du bot est signalée comme potentiellement dangereuse, elle est remplacée par une alerte
  7. Réponse : Les résultats (si sûrs) sont affichés à l’utilisateur avec les deux analyses de sécurité

Utilisation du Model Context Protocol (MCP) avec les Services de Calcul

Ce projet montre comment utiliser le Model Context Protocol (MCP) pour appeler les services MCP de calcul depuis LangChain4j. L’implémentation utilise un serveur MCP local sur le port 8080 pour fournir les opérations de calcul.

Configuration du Service Azure Content Safety

Avant d’utiliser les fonctionnalités de sécurité du contenu, vous devez créer une ressource Azure Content Safety :

  1. Connectez-vous au Portail Azure
  2. Cliquez sur "Créer une ressource" et recherchez "Content Safety"
  3. Sélectionnez "Content Safety" puis cliquez sur "Créer"
  4. Entrez un nom unique pour votre ressource
  5. Sélectionnez votre abonnement et groupe de ressources (ou créez-en un nouveau)
  6. Choisissez une région prise en charge (vérifiez la disponibilité par région)
  7. Sélectionnez un niveau tarifaire approprié
  8. Cliquez sur "Créer" pour déployer la ressource
  9. Une fois le déploiement terminé, cliquez sur "Aller à la ressource"
  10. Dans le volet de gauche, sous "Gestion des ressources", sélectionnez "Clés et Point de terminaison"
  11. Copiez l’une des clés et l’URL du point de terminaison pour l’étape suivante

Configuration des Variables d’Environnement

Définissez la variable d’environnement GITHUB_TOKEN pour l’authentification des modèles GitHub :

export GITHUB_TOKEN=<your_github_token>

Pour les fonctionnalités de sécurité du contenu, définissez :

export CONTENT_SAFETY_ENDPOINT=<your_content_safety_endpoint>
export CONTENT_SAFETY_KEY=<your_content_safety_key>

Ces variables d’environnement sont utilisées par l’application pour s’authentifier auprès du service Azure Content Safety. Si elles ne sont pas définies, l’application utilisera des valeurs fictives à des fins de démonstration, mais les fonctionnalités de sécurité du contenu ne fonctionneront pas correctement.

Démarrage du Serveur MCP du Calculateur

Avant de lancer le client, vous devez démarrer le serveur MCP du calculateur en mode SSE sur localhost:8080.

Description du Projet

Ce projet illustre l’intégration du Model Context Protocol (MCP) avec LangChain4j pour appeler des services de calcul. Les points clés sont :

  • Utilisation de MCP pour se connecter à un service de calcul pour des opérations mathématiques basiques
  • Vérification de sécurité du contenu en double couche sur les requêtes utilisateur et les réponses du bot
  • Intégration avec le modèle gpt-4.1-nano de GitHub via LangChain4j
  • Utilisation des Server-Sent Events (SSE) pour le transport MCP

Intégration de la Sécurité du Contenu

Le projet intègre des fonctionnalités complètes de sécurité du contenu pour garantir que les entrées utilisateur comme les réponses système soient exemptes de contenu nuisible :

  1. Filtrage à l’Entrée : Toutes les requêtes utilisateur sont analysées pour détecter des contenus nuisibles tels que discours haineux, violence, automutilation et contenu sexuel avant traitement.

  2. Filtrage à la Sortie : Même avec des modèles potentiellement non censurés, toutes les réponses générées sont vérifiées par les mêmes filtres de sécurité avant d’être affichées à l’utilisateur.

Cette double vérification assure que le système reste sécurisé, quel que soit le modèle d’IA utilisé, protégeant les utilisateurs des entrées nuisibles et des réponses problématiques générées par l’IA.

Client Web

L’application comprend une interface web conviviale permettant aux utilisateurs d’interagir avec le système Content Safety Calculator :

Fonctionnalités de l’Interface Web

  • Formulaire simple et intuitif pour saisir les requêtes de calcul
  • Validation de sécurité du contenu en double couche (entrée et sortie)
  • Retour en temps réel sur la sécurité des requêtes et réponses
  • Indicateurs de sécurité colorés pour une interprétation facile
  • Design épuré et responsive, compatible avec divers appareils
  • Exemples de requêtes sûres pour guider les utilisateurs

Utilisation du Client Web

  1. Démarrez l’application :

    mvn spring-boot:run
  2. Ouvrez votre navigateur et allez à http://localhost:8087

  3. Saisissez une requête de calcul dans la zone de texte prévue (par exemple : "Calculate the sum of 24.5 and 17.3")

  4. Cliquez sur "Submit" pour lancer le traitement

  5. Consultez les résultats, qui incluront :

    • L’analyse de sécurité du contenu de votre requête
    • Le résultat calculé (si la requête était sûre)
    • L’analyse de sécurité du contenu de la réponse du bot
    • Les éventuels avertissements de sécurité si l’entrée ou la sortie ont été signalées

Le client web gère automatiquement les deux processus de vérification de la sécurité du contenu, garantissant que toutes les interactions sont sûres et appropriées, quel que soit le modèle d’IA utilisé.

Avertissement :
Ce document a été traduit à l'aide du service de traduction automatique Co-op Translator. Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant foi. Pour les informations critiques, il est recommandé de faire appel à une traduction professionnelle humaine. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de l'utilisation de cette traduction.