selective photo of a cars character toy

Utiliser l’API DUST en PHP : Guide rapide et pratique

Ce qu’il faut retenir

  • Dust API est gratuit et propose une tarification plus avantageuse que les services concurrents, sans frais cachés.
  • Elle donne accès à plusieurs modèles d’IA, notamment Claude et GPT‑4, ainsi qu’à la création d’assistants personnalisés.
  • Bien qu’il n’existe pas de client PHP officiel, l’API peut être consommée simplement avec Guzzle en suivant la documentation Swagger/OpenAPI fournie.
  • Les limites d’utilisation sont généreuses : 100 messages par jour et par utilisateur, 10 000 requêtes quotidiennes pour les applications Dust.
  • Les conversations créées via l’API ne sont pas affichées dans l’interface web ; il faut donc enregistrer leurs ID ou initier la discussion depuis le web pour les garder accessibles.

Résumé généré par IA

🎯 Pourquoi choisir l’API DUST pour vos projets PHP ?

Après avoir vu l’intégration de l’API OpenAI en PHP, explorons aujourd’hui l’API DUST PHP. Cette alternative gratuite permet d’intégrer facilement plusieurs modèles IA (Claude, GPT-4) dans vos projets PHP avec une approche simplifiée.

🤔 Pourquoi s’intéresser à Dust ? C’est simple :

  • Une tarification plus avantageuse (l’API est Free 🔥 et directement disponible avec votre compte)
  • Des modèles variés (Claude, GPT-4, etc.)
  • Une approche centrée sur la personnalisation des assistants

Dans cet article, on va voir comment mettre en place cette API en PHP, étape par étape. Pas de panique, si tu as déjà utilisé l’API OpenAI, tu vas te sentir en terrain connu !

Bon, première nouvelle : il n’y a pas (encore) de client officiel PHP pour Dust. Mais t’inquiète, c’est pas un problème !

Leur documentation est une petite pépite de clarté : https://docs.dust.tt/reference/openapi Tu y trouves tout ce qu’il faut :

  • Une collection Postman toute prête
  • Un fichier Swagger aux petits oignons
  • Des exemples clairs et directs

Franchement, avec ça, pas besoin de plus. C’est tellement bien foutu qu’on peut facilement créer nos propres requêtes HTTP.

⚙️ Configuration et prérequis pour l’API DUST PHP

💰 Côté tarification :

  • Pas de frais supplémentaires pour l’API
  • Tu paies juste l’utilisation normale des modèles
  • Pas de mauvaise surprise à la fin du mois !

🔑 Pour ton token d’API :

  • Direction ton espace membre
  • Onglet « Developers »
  • Section « API keys »
  • Et hop, tu génères ton sésame !

⚡ Les limites d’utilisation sont plutôt généreuses :

Pour les conversations :

  • Par jour : 100 messages × nombre d’utilisateurs
  • Par minute : 10 messages × nombre d’utilisateurs

Pour les documents :

  • 120 mises à jour par minute par workspace

Pour les apps Dust :

  • 10 000 requêtes par jour

Autant dire que pour un usage normal, t’as de la marge !

⚠️ ATTENTION SPOILER ALERT !

Un petit piège à éviter avec les conversations créées via l’API : elles jouent un peu à cache-cache… Impossible de les retrouver dans l’interface web !

Du coup, t’as deux options pour pas perdre tes précieuses conversations :

Option 1 – Mode « Prudent » :

  • Tu notes/stockes religieusement chaque ID de conversation
  • Genre dans ta BDD, un fichier, où tu veux
  • Comme ça, tu peux toujours y accéder via l’API

Option 2 – Mode « Malin » 😏 :

  • Tu créés ta conversation depuis l’interface web
  • Ensuite tu la continues via l’API
  • Et pouf ! Elle reste visible dans ton interface

J’ai retourné la doc dans tous les sens 🙃 mais pas trouvé d’endpoint pour lister les conversations créées via l’API. Si quelqu’un trouve une meilleure solution, les commentaires sont ouverts !

(Dust, si tu nous lis, un petit endpoint de listing serait le bienvenu… 🙏)

🔍 Petit décryptage de l’URL des conversations Dust :

https://dust.tt/w/[workspace_id]/assistant/[conversation_id]

Pour les curieux, c’est découpé comme ça :

  • dust.tt : le domaine (logique !)
  • /w/[workspace_id] : l’ID de ton espace de travail
  • /assistant/[conversation_id] : l’ID unique de ta conversation

Du coup, en mode malin, tu peux :

  1. Créer ta conversation sur le web
  2. Choper l’ID directement dans l’URL
  3. L’utiliser dans tes appels API

C’est propre, c’est simple, c’est efficace ! 👌

💻 Intégration API DUST PHP : exemple de code complet

require_once('vendor/autoload.php');

// Configuration
$config = [
    'workspace_id' => 'xxxxx',
    'conversation_id' => 'yyyyy',
    'api_base_url' => 'https://dust.tt/api/v1',
];

$token = 'DUST_API_TOKEN';

// Context utilisateur
$userContext = [
    'username' => 'Samy'
    'email' => 'mail@ici.com',
    'timezone' => 'Europe/Paris',
    'fullName' => 'Samy',
    'profilePictureUrl' => 'https://emoji.aranja.com/static/emoji-data/img-apple-160/1f916.png',
    'origin' => 'api'
];

try {
    $client = new \GuzzleHttp\Client();
    
    $payload = [
        'context' => $userContext,
        'content' => 'Coucou Claude, Faut arrêter ces conneries de nord et de sud ! Une fois pour toutes, le nord, suivant comment on est tourné, ça change tout !',
        'mentions' => [
            ['configurationId' => 'claude-3-sonnet']
        ]
    ];

    $response = $client->request('POST', 
        sprintf('%s/w/%s/assistant/conversations/%s/messages', 
            $config['api_base_url'],
            $config['workspace_id'],
            $config['conversation_id']
        ),
        [
            'json' => $payload,
            'headers' => [
                'accept' => 'application/json',
                'authorization' => 'Bearer ' . $token,
                'content-type' => 'application/json',
            ],
        ]
    );

    $result = json_decode($response->getBody(), true);
    echo json_encode($result, JSON_PRETTY_PRINT);

} catch (\GuzzleHttp\Exception\GuzzleException $e) {
    // Gestion des erreurs
    error_log("Erreur API Dust : " . $e->getMessage());
    http_response_code(500);
    echo json_encode(['error' => 'Une erreur est survenue']);
}

En gros, voilà comment ça marche :

  1. Guzzle, notre allié
    • On l’utilise pour faire nos appels API proprement
    • Plus besoin de gérer les détails chiants des requêtes HTTP
  2. Le contexte utilisateur
    • On dit à Dust qui on est
    • Ça permet de tracer qui fait quoi
    • Utile pour les logs et la personnalisation
  3. La config de base
    • Token d’API pour l’authentification
    • ID de workspace pour savoir où on cause
    • ID de conversation si on continue une discussion existante
  4. Le message
    • On précise à qui on parle (ex: @claude-3)
    • On envoie notre question/prompt

Et hop ! La réponse arrive directement dans ton code et apparaît aussi sur l’interface web (si t’as initialisé la conv via le web). Magique, non ? 🎩✨

🎯 Pro-tip : L’endpoint des assistants

Super pratique : tu peux lister TOUS les assistants disponibles via l’API !

https://dust.tt/api/v1/w/{workspace_id}/assistant/agent_configurations

Ce que ça te donne :

  • Les modèles standards (Claude, GPT-4…)
  • Tes assistants personnalisés
  • Leurs IDs (« sId »)

Pourquoi c’est cool ? 🤔

  • Tu peux utiliser tes assistants custom via l’API
  • Avec leurs réglages spécifiques (modèle, créativité…)
  • Leur prompt système personnalisé
  • Tout ce que t’as configuré sur l’interface !

Pour l’utiliser, remplace juste le configurationId dans les mentions :

'mentions' => [
    ['configurationId' => 'sId']
]

Pourquoi Dust déchire ? 🚀

Dust, c’est comme OpenAI, mais en plus simple, moins cher, et avec tous les bons modèles sous la main – bref, c’est la solution que t’aurais voulu trouver plus tôt ! 🚀

📊 Comparatif API DUST vs OpenAI

CritèreAPI DUSTAPI OpenAI
Tarification API✅ Gratuite❌ Payante
Modèles disponibles✅ Claude, GPT-4, etc.⚠️ GPT uniquement
Client PHP officiel❌ Non✅ Oui
Documentation✅ Excellente✅ Excellente
Assistants personnalisés✅ Oui⚠️ Limité
Samy Kantari - Expert WordPress + IA

Kantari Samy

Expert WordPress + IA

👨‍💻 10 ans dans le game WordPress, chez Whodunit, à bricoler du code, à dompter des bugs et à faire tourner des projets de toutes tailles.
Puis l’IA est arrivée… et là, révélation 💡 !
J’ai switché de mindset, réinventé ma façon de coder et avec le vibe coding : une nouvelle ère où je ne suis plus limité par le temps ni par les outils.

Aujourd’hui ? Je code toujours… Mais avec mon copilote IA.
On forme une team de choc. Lui, c’est la puissance. Moi, c’est la vision. Ensemble, on déverrouille ce qui semblait impossible hier. 🚀

10+ Années d'expérience
+++ Projets réalisés
80% code par IA
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires