Accéder à l'IA et aux Agents via l'API
Écrit par Stanislas
Dernière mise à jour Il y a 13 jours
Avant de commencer
Il existe deux façons d'interagir avec les agents Swiftask :
SDK OpenAI (recommandé) – Voir Accéder aux agents Swiftask via le SDK OpenAI.
Accès direct à l'API (ce guide) – Utilisez directement l'API Swiftask avec votre clé API.
Ce guide couvre l'accès direct à l'API pour les développeurs qui préfèrent travailler directement avec l'API REST.
Aperçu
Swiftask est une plateforme d'agrégation d'IA qui permet aux utilisateurs d'accéder aux capacités d'IA de plusieurs fournisseurs via une interface unifiée. Ce guide fournit aux développeurs les informations nécessaires pour interagir avec l'API Swiftask afin d'envoyer et de recevoir des réponses générées par l'IA.
Remarque: "AI", "Bot", et "Agent" font référence au même concept au sein de l'API Swiftask.Authentification
Toutes les requêtes vers l'API Swiftask nécessitent une authentification et une autorisation à l'aide d'une clé API. Incluez la clé API dans les en-têtes de la requête comme suit :
En-tête :
Authorization: Bearer <swiftask_api_key>
Obtenir une clé API
Inscrivez-vous pour créer un compte sur le site web de Swiftask si vous n'en avez pas déjà un.
Cliquez sur l'icône Paramètres en bas à gauche, puis sélectionnez Paramètres du compte.
Naviguez vers la section API et cliquez pour créer une nouvelle clé.
Conservez votre clé API en lieu sûr : la clé API ne s'affiche qu'une seule fois après sa génération. Assurez-vous de la copier et de la stocker de manière sécurisée. En cas de perte, vous devrez générer une nouvelle clé.
URL de base
L'URL de base pour l'API Swiftask est :
https://graphql.swiftask.ai/api
Point de terminaison de l'API (Endpoint)
POST /ai/:slug
Ce point de terminaison vous permet d'interagir avec un bot IA spécifique identifié par son slug unique.
Méthode HTTP : POST
Paramètre d'URL :
slug: Chaîne d'identifiant unique pour le bot IA (ex :chatpdf,gpt4).
Pour trouver le slug d'une IA spécifique, veuillez récupérer la liste à partir de ce point de terminaison : https://graphql.swiftask.ai/public/bots
En-têtes :
Content-Type: application/jsonAuthorization: Bearer <swiftask_api_key>
Détails de la Requête et de la Réponse
Corps de la requête (Request Body)
Spécification du corps de la requête API
Ce point de terminaison de l'API attend le corps de requête suivant. Le corps est défini à l'aide d'un schéma Joi, qui précise les champs obligatoires, les champs optionnels, les types de données et les contraintes.
Schéma du corps de la requête
Schéma de l'objet messageHistory
Schéma des fichiers (BotFileSchema )
Détails des champs
Exemple de JSON de requête
Voici un exemple de la structure que pourrait avoir le corps de la requête :
JSON
{
"sessionId": 12345,
"input": "Bonjour, comment puis-je vous aider?",
"files": [
{
"name": "example.txt",
"size": 1024,
"url": "http://example.com/file/example.txt"
}
],
"documentAnalysisMode": "SIMPLE",
"messageHistory": [
{
"role": "user",
"content": "Quel temps fait-il aujourd'hui?",
"files": []
},
{
"role": "assistant",
"content": "il fait beau aujoud'hui!",
"files": []
}
]
}Exemple CURL
Bash
curl -X POST 'https://graphql.swiftask.com/api/ai/{slug}' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <api_key>' \
-d '{
"input": "Bonjour, comment puis-je vous aider aujourd’hui?",
"documentAnalysisMode": "SIMPLE",
"files": [],
"messageHistory": [
{
"role": "user",
"content": "Bonjour, comment puis-je vous aider aujourd’hui?"
}
]
}'Remplacez
{slug}par le slug du bot IA et<api_key>par votre clé API.
Exemple Python
Python
import requests
import json
url = "https://graphql.swiftask.com/api/ai/{slug}"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <api_key>"
}
payload = {
"input": "Bonjour, comment puis-je vous aider aujourd’hui?",
"documentAnalysisMode": "SIMPLE",
"files": [],
"messageHistory": [
{
"role": "user",
"content": "Bonjour, comment puis-je vous aider aujourd’hui?"
}
]
}
response = requests.post(url.format(slug="your_slug_here"), headers=headers, data=json.dumps(payload))
print(response.status_code)
print(response.json())Remplacez votre_slug_ici par le slug du bot IA et <api_key> par votre clé API.
Remplacez
votre_slug_icipar le slug du bot IA et<api_key>par votre clé API.
Exemple Node.js (Utilisant Axios)
const axios = require('axios'); const url = "https://graphql.swiftask.ai/api/ai/{slug}"; const headers = { "Content-Type": "application/json", "Authorization": "Bearer <api_key>" }; const payload = { input: "Bonjour, comment puis-je vous aider aujourd’hui ?", documentAnalysisMode: "SIMPLE", files: [], messageHistory: [ { role: "user", content: "Bonjour, comment puis-je vous aider aujourd’hui ?" } ] }; axios.post(url.replace("{slug}", "votre_slug_ici"), payload, { headers }) .then(response => { console.log("Statut :", response.status); console.log("Données :", response.data); }) .catch(error => { console.error("Erreur :", error.response ? error.response.data : error.message); }); const axios = require('axios');
const url = "https://graphql.swiftask.ai/api/ai/{slug}";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <api_key>"
};
const payload = {
input: "Bonjour, comment puis-je vous aider aujourd’hui?",
documentAnalysisMode: "SIMPLE",
files: [],
messageHistory: [
{
role: "user",
content: "Bonjour, comment puis-je vous aider aujourd’hui?"
}
]
};
axios.post(url.replace("{slug}", "your_slug_here"), payload, { headers })
.then(response => {
console.log("Status:", response.status);
console.log("Data:", response.data);
})
.catch(error => {
console.error("Error:", error.response ? error.response.data : error.message);
});Remplacez
"votre_slug_ici"par le slug du bot IA et<api_key>par votre clé API.
JSON de réponse
Description des champs :
$text: Réponse générée par l'IA.$botSlug: Identifiant du bot IA utilisé.$files: Toutes les données de fichiers associées renvoyées par l'IA.$additionalMessages: Messages supplémentaires fournis par le bot.$isBotError: Indique si une erreur est survenue lors du traitement.$sessionId: Identifiant unique de session.$totalBotUsage: Nombre total d'utilisations pour la session.$usageDetail: Détails de l'utilisation des jetons (tokens), y compris les jetons d'entrée et de sortie.$isSubscriptionUsageLimitReachedMessage: Indique si les limites d'utilisation de l'abonnement sont atteintes.$sourceMetadatas: Métadonnées sur les sources d'information utilisées par le bot.