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 :

  1. SDK OpenAI (recommandé) – Voir Accéder aux agents Swiftask via le SDK OpenAI.

  2. 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

  1. Inscrivez-vous pour créer un compte sur le site web de Swiftask si vous n'en avez pas déjà un.

  2. Cliquez sur l'icône Paramètres en bas à gauche, puis sélectionnez Paramètres du compte.

  3. Naviguez vers la section API et cliquez pour créer une nouvelle clé.

  4. 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/json

    • Authorization: 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

Champ

Type

Requis

Valeurs autorisées

Description

sessionId

number

Non

Un identifiant de session optionnel pour le suivi.

input

string

Oui

Le texte du message d'entrée requis.

files

array (de BotFileSchema)

Non

Un tableau optionnel d'objets de fichiers suivant la structure BotFileSchema.

documentAnalysisMode

string

Non

SIMPLE, ADVANCED

Mode optionnel pour spécifier le niveau d'analyse du document.

messageHistory

array of objects

Non

Un tableau optionnel représentant l'historique de la conversation. Chaque entrée respecte le schéma d'objet ci-dessous.

Schéma de l'objet messageHistory

Champ

Type

Requis

Valeurs autorisées

Description

role

string

Oui

user, assistant, system

Le rôle de l'expéditeur du message.

content

string

Oui

Le contenu textuel du message.

files

array

Non

Un tableau optionnel d'objets de fichiers suivant le BotFileSchema.

Schéma des fichiers (BotFileSchema )

Détails des champs

Champ

Type

Requis

Valeurs autorisées / Format

Description

url

string

Oui

URI valide

L'URL du fichier. Doit être une URI valide.

type

string

Non

Le type ou type MIME du fichier (ex : "image/png", "application/pdf").

size

number

Non

La taille du fichier en octets.

name

string

Non

Le nom du fichier.

id

number

Non

Un identifiant pour le fichier.

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_ici par 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.