Installation
Quick Start
Configuration
ChatSDKConfig Interface
Configuration Options
- baseUrl: L’URL de base de votre point de terminaison API
- projectId: Votre identifiant de projet unique
- apiKey & apiSecret: Pour l’authentification côté serveur
- accessToken: Pour l’authentification côté client (applications web)
Authentication
Le ChatSDK supporte deux méthodes d’authentification :API Key Authentication (Côté serveur)
Access Token Authentication (Côté client)
Core Methods
Chat Management
createChat(name?, documentKeys?)
Crée une nouvelle conversation de chat.
listChats(cursor?, limit?)
Récupère une liste paginée de chats dans le projet.
getChatHistory(chatId)
Récupère un chat avec son historique de messages complet.
deleteChat(chatId)
Supprime un chat et tous ses messages de manière permanente.
updateChatName(chatId, newName)
Met à jour le nom d’affichage d’un chat existant.
Message Handling
sendMessage(message, options?)
Envoie un message et reçoit la réponse de l’IA.
sendFeedback(messageId, chatId, feedback)
Fournit des retours sur une réponse d’IA.
Streaming Support
sendMessageStream(message, options)
Envoie un message avec une réponse en streaming en temps réel.
Error Handling
Le SDK lance des objetsAPIError pour les défaillances liées à l’API :
Examples
Basic Chat Application
Dans cet exemple, vous apprendrez comment créer une application de chat basique à l’aide du SDK EKB avec des échanges de messages simples et non diffusés. Vous commencez par créer une classeSimpleChatApp qui initialise le ChatSDK avec vos credentials API extraits des variables d’environnement (URL de base, ID de projet, clé API et secret). La classe suit votre session de chat actuelle avec currentChatId et fournit trois méthodes principales : startNewChat() crée une nouvelle conversation de chat avec un nom personnalisé, sendMessage() envoie un message à l’IA et retourne la réponse complète (créant automatiquement un nouveau chat s’il n’en existe pas), et getChatList() récupère toutes vos conversations de chat existantes. Contrairement aux implémentations en streaming, cette approche attend la réponse complète de l’IA avant de l’afficher, ce qui la rend parfaite pour les cas d’usage simples où vous n’avez pas besoin de mises à jour en temps réel token par token. L’exemple utilise le modèle GPT-4o-mini et inclut la gestion des erreurs tout au long, avec journalisation en console pour vous aider à suivre le flux de la conversation—vous donnant une base directe pour créer une fonctionnalité de chatbot basique sans la complexité des callbacks de streaming.
Streaming Chat with Real-time Updates
Dans cet exemple, vous apprendrez comment créer une interface de chat en streaming qui se connecte à l’API EKB et affiche les réponses de l’IA en temps réel. Vous commencez par créer une classeStreamingChat qui initialise le ChatSDK avec vos credentials API et une référence à un élément HTML où les messages apparaîtront. Lorsque vous envoyez un message à l’aide de sendStreamingMessage(), vous configurerez des gestionnaires de callbacks qui traitent la réponse en streaming au fur et à mesure qu’elle arrive : le callback onChunk ajoute chaque morceau de texte à votre UI immédiatement (créant cet effet « saisie » caractéristique), tandis que onMessageObject vous permet de gérer du contenu riche comme les images. Vous implémenterez également la gestion des erreurs avec onError, mettrez à jour le titre de votre chat avec onChatNameUpdate, et utiliserez onComplete pour ajouter des boutons de retours pouce vers le haut/bas une fois que le message a fini de diffuser. Cet exemple vous montre comment afficher des images dynamiquement, collecter les retours des utilisateurs sur les réponses de l’IA, et configurer le chat pour utiliser GPT-4o avec l’intégration de la Base de Connaissances—vous donnant tout ce dont vous avez besoin pour créer une interface de type ChatGPT avec des réponses en streaming en temps réel et des fonctionnalités interactives.
Knowledge Base Integration
Dans cet exemple, vous découvrirez comment créer une application de chat alimentée par la Base de Connaissances qui peut répondre aux questions en fonction de documents spécifiques que vous téléchargez dans votre Base de Connaissances. La classeKnowledgeBasedChat initialise le ChatSDK avec vos credentials API à partir des variables d’environnement, puis utilise deux méthodes principales pour interagir avec vos documents : createDocumentChat() configure une nouvelle session de chat liée à des documents spécifiques en passant un tableau de documentKeys (identifiants uniques pour vos documents téléchargés), et askDocumentQuestion() envoie des questions à l’IA avec les fonctionnalités de la Base de Connaissances activées. Lorsque vous posez des questions, vous configurerez le chat pour utiliser useKnowledgebase: true et spécifier agentType: 'document_agent' pour vous assurer que l’IA récupère les informations pertinentes de vos documents, tandis que formatInstructions indique à l’IA d’inclure les citations de ses sources. La réponse inclut une propriété sources qui vous montre quels documents l’IA a référencés lors de la génération de sa réponse, ce qui la rend parfaite pour construire des systèmes Q&A de documents, des assistants de recherche, ou toute application où vous avez besoin de réponses d’IA ancrées dans du contenu spécifique plutôt que dans des connaissances générales. Cela permet une transparence totale dans la façon dont l’IA est arrivée à ses réponses.
Best Practices
Error Handling
Implémentez toujours une gestion appropriée des erreurs pour toutes les méthodes du SDK :Streaming for Better UX
Utilisez le streaming pour les réponses plus longues afin de fournir des retours en temps réel :Optimize API Calls
- Réutilisez les ID de chat au lieu de créer de nouveaux chats pour chaque message
- Utilisez la pagination pour les listes de chats
- Implémentez la mise en cache pour les données fréquemment consultées