Aller au contenu principal
Version: 3.2.1

Spécifications Techniques

Aperçu

L'Assistant Optave pour Salesforce intègre les capacités IA dans Salesforce via les Lightning Web Components (LWC). La solution établit une connexion entre la Console de Service Salesforce et les services IA d'Optave via des intégrations API sécurisées et des connexions WebSocket. L'architecture suit un design modulaire où les composants communiquent via le Service de Messages Lightning et des connexions WebSocket partagées. Les composants LWC légers travaillent ensemble pour fournir une expérience d'assistant IA transparente.

Technologies Utilisées

  • Lightning Web Components (LWC) : Framework moderne pour construire des composants Salesforce
  • Lightning Message Service : Mécanisme de communication entre les composants LWC
  • Platform Utility Bar API : Gère le comportement et les interactions du panneau utilitaire
  • Apex : Langage côté serveur pour la logique métier personnalisée dans Salesforce
  • Named Credentials : Stockage sécurisé pour les identifiants d'authentification
  • Custom Metadata Types : Stockage de configuration pour les paramètres spécifiques à l'environnement
  • SDK JavaScript Optave : Alimente la communication entre Salesforce et les services IA d'Optave
  • Authentification JWT : Authentification sécurisée basée sur des tokens pour les appels API
  • ChartJS : Bibliothèque de visualisation pour afficher les métriques et analyses

Structure du Projet

├── OCOClient
│ ├── .husky/
| |── .vscode/
| |── config/
| |── force-app/
| | └── main/default/
| | ├── lwc/
| | ├── classes/
| | ├── messageChannels/
| | └── staticresources/
| |── scripts/
│ ├── .eslintignore
│ ├── .forceignore
│ ├── .prettierignore
│ ├── jest.config.js
│ ├── package.json
│ ├── sfdx-project.json
├── README.md
├── contributing.md
└── .gitignore

Structure des Répertoires

L'Assistant Optave pour Salesforce suit une organisation structurée des fichiers et répertoires :

Configuration

  • /config/ - Fichiers de configuration Salesforce DX incluant project-scratch-def.json pour définir les environnements de développement d'org scratch

Code de l'Application

  • /force-app/main/default/ - Composants principaux de l'application :
    • /classes/ - Classes Apex pour la logique côté serveur :

      • NamedCredentials.cls - Gère l'authentification vers les APIs et services externes, gérant les identifiants de manière sécurisée
      • OCOSecretController.cls - Gère l'accès à la configuration des métadonnées personnalisées
    • /lwc/ - Composants Lightning Web :

      • agentUI - Interface agent principale rassemblant les données client, la gestion des conversations et les suggestions alimentées par IA
        • helpers/optaveAssistant.js - Fonctionnalité principale qui coordonne la communication avec l'API Conversation Toolkit de Salesforce et les services Optave
      • adjustModal - Fournit une interface modale pour que les utilisateurs demandent un réglage fin ou des ajustements de contenu pour optimiser les réponses générées par IA
      • elevateModal - Offre une interface modale pour réviser et escalader les réponses générées par IA pour un contrôle qualité supplémentaire ou une intervention
      • feedback - Collecte et affiche les commentaires de qualité pour les réponses générées par IA avec notation sur plusieurs critères (empathie, réactivité, efficacité, etc.)
      • insights - Affichage en temps réel des analyses client, analyse de sentiment et métriques de conversation
      • lightningFooter - Composant de pied de page sophistiqué avec plusieurs sections configurables
      • loadingBar - Indicateur de progression visuel pour le chargement des données
      • settings - Interface de configuration pour contrôler le comportement IA, les paramètres de langue et les options de réponse, intégrée avec platformUtilityBarApi pour la gestion du panneau utilitaire
      • sourceModal - Affichage des sources d'information avec attribution et évaluations de confiance
      • sources - Gère et affiche le contenu de référence et les citations utilisées par l'IA pour générer des réponses, supporte le filtrage et la mise en évidence du contenu pertinent
      • translation - Fournit des capacités de détection de langue et de traduction en temps réel pour les interactions opérateur-client
    • /messageChannels/ - Canaux Lightning Message Service :

      • SettingsUpdateChannel - Facilite la communication entre composants pour les mises à jour de paramètres
    • /staticresources/ - Bibliothèques externes et ressources :

      • Chart.js - Bibliothèque JavaScript de graphiques pour les tableaux de bord de visualisation de données
      • OptaveJavascriptSDK.js - SDK principal côté client fournissant la fonctionnalité de la plateforme Optave
      • Ressources UI - Diverses images, icônes et éléments visuels incluant les indicateurs de sentiment et boutons d'action

Tests

  • /force-app/test/jest-mocks/ - Implémentations mock pour les tests de composants

Utilitaires

  • /scripts/ - Utilitaires de développement et maintenance :
    • /apex/ - Scripts de développement Apex
    • /soql/ - Scripts de requêtes de base de données

Fichiers de Configuration Clés

  • /jest.config.js - Configuration pour le framework de test Jest, définissant les patterns de test et implémentations mock.

  • /lwc.config.json - Configuration des Lightning Web Components.

  • /package.json - Configuration NPM définissant les dépendances du projet, scripts et métadonnées.

  • /sfdx-project.json - Configuration du projet Salesforce DX définissant les répertoires de packages et paramètres.

Structure des Composants

Les Lightning Web Components (LWC) suivent une structure standard :

  • /tests/ - Fichiers de test Jest
  • .html - Balisage du composant
  • .js - Logique JavaScript du composant
  • .css - Style du composant
  • .js-meta.xml - Métadonnées et configuration du composant
  • helpers/ - Répertoire optionnel contenant les fichiers d'aide pour les composants complexes (ex. agentUI/helpers)

Connexion SDK

Le SDK JavaScript Optave établit une connexion sécurisée entre Salesforce et les services IA d'Optave. Il gère les sessions sécurisées, gère les erreurs avec élégance et implémente des politiques de reconnexion automatique pour assurer une fonctionnalité continue.

Note : La connexion sécurisée est initiée par le composant agentUI dans les Lightning Web Components. Les identifiants pour la connexion SDK sont récupérés depuis les classes Apex telles que NamedCredentials.cls et OCOSecretController.cls.

Communication entre Composants

  • Lightning Message Service (LMS) : Méthode principale pour la communication entre composants
    • SettingsUpdateChannel : Diffuse les changements de configuration à tous les composants abonnés
  • Système d'Événements LWC : Événements personnalisés JavaScript intégrés pour la communication parent-enfant entre composants
  • API Conversation Toolkit : Intégrée avec optaveAssistant.js pour gérer les conversations de la Console de Service Salesforce
  • API Platform Utility Bar :
    • EnclosingUtilityId : Utilisé pour identifier le panneau utilitaire contenant le composant de paramètres
    • minimize : Fournit un contrôle programmatique de l'état du panneau utilitaire (utilisé dans le composant settings)
  • Contrôleurs Apex : Opérations côté serveur pour l'accès aux données et l'authentification
  • WebSockets : Mises à jour en temps réel depuis les services IA d'Optave