Démarrer avec le SDK JavaScript Swiftask
Écrit par Stanislas
Dernière mise à jour Il y a 16 jours
Intégrez les agents IA dans vos applications en utilisant l'API Swiftask Public Bot. Vous contrôlez l'interface utilisateur ; Swiftask gère l'agent IA, la base de connaissances et le traitement des messages.
Aperçu
L'API Swiftask Public Bot vous permet d'intégrer directement le chat alimenté par l'IA dans vos applications. Vous contrôlez l'interface utilisateur ; Swiftask gère l'agent IA, la base de connaissances et le traitement des messages.
Ce que vous pouvez construire :
Interfaces de chat personnalisées alimentées par vos agents Swiftask
Conversations multi-sessions (support, ventes, support technique, etc.)
Réponses en streaming en temps réel, caractère par caractère
Surveiller ce que fait votre agent (appels d'outils, analyse de données)
Applications web, applications mobiles ou widgets intégrés
Prérequis
Avant de commencer, vous avez besoin de :
Un compte Swiftask (inscrivez-vous sur swiftask.ai)
Un agent IA créé dans votre espace de travail
Votre jeton client d'agent (depuis la section Développeur)
Node.js 14+ ou un navigateur moderne
Apollo Client installé (
npm install @apollo/client graphql)Connaissances de base en JavaScript (async/await, promesses)
Installation et configuration
Étape 1 : Obtenir votre jeton client
Cliquez sur Agents dans la barre latérale gauche
Trouvez votre agent et cliquez sur le bouton éditer (icône stylo)
Dans le menu de gauche, cliquez sur Développeur
Vous verrez le panneau Développeur avec :
Client token de l'agent — Copiez ceci
Slug unique de l'agent
Options d'intégration ci-dessous
Gardez votre jeton client sécurisé ; il identifie votre agent à l'API.
Étape 2 : Installer les dépendances
npm install @apollo/client graphql L'API Swiftask utilise Apollo Client (un client GraphQL) pour les requêtes, les mutations et les abonnements en temps réel.
Étape 3 : S'authentifier en 30 secondes
// Générer un identifiant unique pour cet utilisateur/cette session
const clientUuid = crypto.randomUUID();
localStorage.setItem('swiftask_client_uuid', clientUuid);
// Authenticate using your client token from Developer panel
const clientToken = '88576b1c-f933-4679-99b8-3f95e27ef46e';// Remplacez par votre jeton
const response = await fetch(
`https://graphql.swiftask.ai/public/widget-bot/${clientToken}`,
{
method: 'GET',
headers: { 'x-client-uuid': clientUuid },
}
);
const { data } = await response.json();
const { accessToken, workspaceId, starterSessionId } = data;
//Vous avez maintenant tout ce qu'il vous faut pour discuter.
console.log('✅ Authentifié ! Prêt à envoyer des messages.');Étape 4 : Envoyer votre premier message
import { ApolloClient, InMemoryCache, createHttpLink, gql } from '@apollo/client';
import { setContext } from '@apollo/client/link/context';
// Configuration Apollo Client
const httpLink = createHttpLink({
uri: 'https://graphql.swiftask.ai/graphql',
});
const authLink = setContext((_, { headers }) => ({
headers: {
...headers,
authorization: `Bearer ${accessToken}`,
'x-workspace-id': workspaceId,
'x-client': 'widget',
},
}));
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache(),
});
const SEND_MESSAGE = gql`
mutation SendNewMessage($newMessageData: NewMessageInput!) {
sendNewMessage(newMessageData: $newMessageData) {
id
message
createdAt
}
}
`;
// Enoyer un message
const result = await client.mutate({
mutation: SEND_MESSAGE,
variables: {
newMessageData: {
message: 'Bonjour, agent !',
sessionId: starterSessionId,
isForAiReply: true,
},
},
});
console.log('L\'agent répondra :', result.data.sendNewMessage);C'est tout ! Vous vous êtes authentifié et avez envoyé un message.
Concepts clés
REST vs. GraphQL
REST :
GET /public/widget-bot/:clientToken— AuthentificationGraphQL :
https://graphql.swiftask.ai/graphql— Messages, sessions, mises à jourWebSocket :
wss://graphql.swiftask.ai/graphql— Streaming en temps réel
Sessions et messages
Imaginez des dossiers :
Utilisateur (authentifié)
└── Session 1 (fil de conversation)
├── Message 1 (utilisateur)
├── Message 2 (réponse de l'agent)
└── Message 3 (utilisateur)
└── Session 2 (une autre conversation)Vous obtenez automatiquement un identifiant de session de démarrage (starterSessionId). Vous pouvez également créer de nouvelles sessions pour différentes conversations (assistance, ventes, etc.).
Diffusion en temps réel
Au lieu d'attendre la réponse complète, vous pouvez la diffuser caractère par caractère grâce aux abonnements WebSocket. Idéal pour les interfaces de chat.
Intégrations de frameworks
React
Utilisez un hook personnalisé pour gérer l'authentification et les sessions :
import { useState, useEffect } from 'react';
export function useSwiftaskChat(clientToken) {
const [messages, setMessages] = useState([]);
const [streamingMessage, setStreamingMessage] = useState('');
const [session, setSession] = useState(null);
useEffect(() => {
// Initialiser le client, créer une session, configurer les abonnements
}, [clientToken]);
const sendMessage = async (text) => {
// Envoyer un message et écouter la réponse
};
return { messages, streamingMessage, sendMessage };
}Modèles courants
Plusieurs sessions
const supportSession = await chat.createSession('Support');
const salesSession = await chat.createSession('Ventes');
await sendMessage(supportSession.id, 'Ma commande est cassée');
await sendMessage(salesSession.id, 'Parlez-moi de votre tarif');Diffuser les réponses en temps réel
chat.subscribeToStream(
sessionId,
(fullMessage) => {
console.log('Diffusion :', fullMessage);
},
() => {
console.log('Réponse terminée');
}
);Gérer les erreurs avec élégance
try {
await chat.authenticate();
} catch (error) {
if (error.message.includes('Invalid client token')) {
console.error('Check your token in Agents → Edit → Developer');
} else if (error.message.includes('Agent not found')) {
console.error('Agent does not exist or is not public');
}
}
Dépannage
Erreur "Invalid client token"
Vérifiez que votre jeton est copié correctement depuis Agents → Éditer → Développeur
Assurez-vous de copier la chaîne complète
N'ajoutez pas d'espaces supplémentaires
"Agent not found"
Vérifiez que votre agent existe et est visible dans le menu Agents
L'agent doit être dans le même espace de travail
La connexion WebSocket échoue
Utilisez
wss://(WebSocket sécurisé), pasws://Incluez
authorizationetworkspaceIddans les paramètresVérifiez que votre réseau autorise les connexions WebSocket
Bonnes pratiques
Stocker l'UUID client de manière persistante — Enregistrez-le dans localStorage
Gérer l'expiration des jetons — Les jetons durent environ 1 heure
Utiliser des blocs try-catch — Toujours envelopper les appels API
Diffuser les réponses — Meilleure UX qu'attendre les réponses complètes
Organiser les sessions — Utilisez des noms clairs ("Support", "Ventes")
Valider l'entrée — Vérifier le texte du message avant d'envoyer
Points de terminaison API
REST (auth) :
https://graphql.swiftask.ai/public/widget-bot/:clientTokenGraphQL :
https://graphql.swiftask.ai/graphqlWebSocket :
wss://graphql.swiftask.ai/graphql
Prêt à construire ? Commencez par l'authentification, puis explorez les guides plus approfondis. Vous aurez une intégration de chat fonctionnelle en quelques minutes. 🚀