Skip to content

Chatbot IA

La fonctionnalité Chatbot vous permet de créer des assistants astrologiques alimentés par IA qui peuvent être intégrés dans votre site web ou utilisés via API. Les chatbots peuvent répondre à des questions sur les thèmes natals, les transits et fournir des informations astrologiques personnalisées.

Vue d'Ensemble

  • Alimenté par IA : Utilise des modèles de langage avancés pour une conversation naturelle
  • Conscient des données de naissance : Les chatbots peuvent accéder aux données de naissance des utilisateurs pour des lectures personnalisées
  • Widget intégrable : Widget de chat clé en main pour votre site web
  • Réponses en streaming : Streaming SSE en temps réel pour un retour instantané
  • Système de plugins : Activez des fonctionnalités astrologiques spécifiques par chatbot
  • Suivi d'utilisation : Surveillez l'utilisation des tokens et le nombre de messages

Créer un Chatbot

bash
curl -X POST "https://api.astroapi.cloud/api/chatbots" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "chatbots",
      "attributes": {
        "name": "My Astrology Bot",
        "description": "Personal astrology assistant",
        "enabledPlugins": ["natal", "transits"],
        "settings": {
          "greeting": "Hello! I can help you understand your birth chart."
        },
        "widgetConfig": {
          "theme": "light",
          "primaryColor": "#6366f1"
        },
        "allowedDomains": ["example.com", "www.example.com"]
      }
    }
  }'

Réponse

json
{
  "data": {
    "type": "chatbot",
    "id": "cb_abc123",
    "attributes": {
      "name": "My Astrology Bot",
      "description": "Personal astrology assistant",
      "enabledPlugins": ["natal", "transits"],
      "settings": {
        "greeting": "Hello! I can help you understand your birth chart."
      },
      "widgetConfig": {
        "theme": "light",
        "primaryColor": "#6366f1"
      },
      "allowedDomains": ["example.com", "www.example.com"],
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-01-15T10:30:00Z"
    }
  }
}

Endpoints de Chat

Chat de Base

Envoyez un message sans contexte de données de naissance :

bash
curl -X POST "https://api.astroapi.cloud/api/chat/{chatbotId}" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "What does it mean to have Sun in Aries?",
    "conversationId": null
  }'

Chat avec Données de Naissance

Envoyez un message avec des données de naissance en ligne pour des réponses personnalisées :

bash
curl -X POST "https://api.astroapi.cloud/api/chat/{chatbotId}/direct" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Tell me about my Sun sign",
    "birthData": {
      "date": "1990-06-15",
      "time": "14:30",
      "latitude": 51.5074,
      "longitude": -0.1278,
      "placeName": "London, UK",
      "timezone": "Europe/London"
    }
  }'

Chat avec Profil

Utilisez un profil sauvegardé pour des données de naissance cohérentes entre les conversations :

bash
curl -X POST "https://api.astroapi.cloud/api/chat/{chatbotId}/profile/{profileId}" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "What transits are affecting me this week?",
    "conversationId": "conv_xyz789"
  }'

Réponse en Streaming

Tous les endpoints de chat retournent des Server-Sent Events (SSE) pour le streaming en temps réel :

event: message
data: {"content": "Based on your birth chart, "}

event: message
data: {"content": "your Sun in Aries suggests..."}

event: done
data: {"conversationId": "conv_xyz789", "usage": {"inputTokens": 150, "outputTokens": 75}}

Profils de Chat

Les profils stockent les données de naissance des utilisateurs, permettant des réponses personnalisées sans renvoyer les données de naissance à chaque fois.

Créer un Profil

bash
curl -X POST "https://api.astroapi.cloud/api/chatbots/{chatbotId}/profiles" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "chat-profile",
      "attributes": {
        "externalUserId": "user_123",
        "birthDate": "1990-06-15",
        "birthTime": "14:30",
        "birthPlaceLat": 51.5074,
        "birthPlaceLng": -0.1278,
        "birthPlaceName": "London, UK",
        "timezone": "Europe/London",
        "metadata": {
          "name": "John Doe"
        }
      }
    }
  }'

Lister les Profils

bash
curl -X GET "https://api.astroapi.cloud/api/chatbots/{chatbotId}/profiles" \
  -H "X-Api-Key: your-api-key"

Intégration de Widget

Intégrez un widget de chat sur votre site web en utilisant les endpoints de widget.

INFO

Les endpoints de widget utilisent le chemin /widget/ (sans le préfixe /api/) et valident l'en-tête Origin pour les restrictions de domaine.

Obtenir la Configuration du Widget

bash
curl -X GET "https://api.astroapi.cloud/widget/config/{chatbotId}"

Chat du Widget

Le widget utilise la validation de domaine via l'en-tête Origin (appliqué par le navigateur) :

bash
curl -X POST "https://api.astroapi.cloud/widget/chat/{chatbotId}" \
  -H "X-Api-Key: your-widget-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "What is my horoscope for today?",
    "birthData": {
      "date": "1990-06-15",
      "time": "14:30",
      "latitude": 51.5074,
      "longitude": -0.1278,
      "timezone": "Europe/London"
    }
  }'

Widget avec Profils Utilisateur

Pour les utilisateurs récurrents, utilisez l'endpoint d'ID utilisateur externe. Le profil est créé automatiquement lors de la première utilisation :

bash
curl -X POST "https://api.astroapi.cloud/widget/chat/{chatbotId}/user/{externalUserId}" \
  -H "X-Api-Key: your-widget-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "What are my current transits?",
    "birthData": {
      "date": "1990-06-15",
      "time": "14:30",
      "latitude": 51.5074,
      "longitude": -0.1278,
      "timezone": "Europe/London"
    }
  }'

TIP

Les données de naissance ne sont requises que pour le premier message d'un nouvel utilisateur. Les messages suivants peuvent les omettre.

Restrictions de Domaine

Pour la sécurité, vous pouvez restreindre quels domaines peuvent accéder à votre widget :

json
{
  "allowedDomains": ["example.com", "www.example.com", "app.example.com"]
}

Si allowedDomains est vide, tous les domaines sont autorisés.

Plugins Disponibles

Les plugins déterminent les fonctionnalités astrologiques auxquelles le chatbot peut accéder :

PluginDescriptionModule Requis
natalCalculs et interprétations de thèmes natalsmodule:natal
transitInformations sur les transits actuelsmodule:transit
synastryAnalyse de compatibilité relationnellemodule:synastry
compositeAnalyse de thème compositemodule:composite
progressionsProgressions secondairesmodule:progression
solar_returnThèmes de retour solairemodule:solar-return
lunar_returnThèmes de retour lunairemodule:lunar-return
retrogradeInformations sur les périodes de rétrogrademodule:retrograde
numerologyCalculs de numérologiemodule:numerology
compatibilityCompatibilité astrologiquemodule:compatibility
chinese_zodiacInformations sur le zodiaque chinoismodule:chinese-horoscope
daily_insightAperçus astrologiques quotidiensmodule:transit
moonDonnées de phase lunaire et de calendriermodule:moon
daily_horoscopeContenu d'horoscope quotidienmodule:daily-report

TIP

Utilisez GET /api/chatbots/plugins pour lister tous les plugins disponibles, ou GET /api/chatbots/available-plugins pour voir quels plugins sont disponibles selon les modules de votre organisation.

Historique des Conversations

Obtenir une Conversation

Récupérez l'historique complet des messages :

bash
curl -X GET "https://api.astroapi.cloud/api/chat/{chatbotId}/conversation/{conversationId}" \
  -H "X-Api-Key: your-api-key"

Supprimer une Conversation

bash
curl -X DELETE "https://api.astroapi.cloud/api/chat/{chatbotId}/conversation/{conversationId}" \
  -H "X-Api-Key: your-api-key"

Suivi d'Utilisation

Surveillez l'utilisation de votre chatbot :

bash
curl -X GET "https://api.astroapi.cloud/api/chatbots/usage" \
  -H "X-Api-Key: your-api-key"

Réponse

json
{
  "data": {
    "type": "chatbot-usage",
    "id": "org_abc-2024-01",
    "attributes": {
      "month": "2024-01",
      "totalInputTokens": 15000,
      "totalOutputTokens": 45000,
      "totalMessages": 250
    }
  }
}

Gestion des Chatbots

Lister les Chatbots

bash
curl -X GET "https://api.astroapi.cloud/api/chatbots" \
  -H "X-Api-Key: your-api-key"

Mettre à Jour un Chatbot

bash
curl -X PATCH "https://api.astroapi.cloud/api/chatbots/{id}" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "chatbots",
      "attributes": {
        "name": "Updated Bot Name",
        "enabledPlugins": ["natal", "transits", "synastry"]
      }
    }
  }'

Supprimer un Chatbot

bash
curl -X DELETE "https://api.astroapi.cloud/api/chatbots/{id}" \
  -H "X-Api-Key: your-api-key"

Gestion des Erreurs

Réponses d'erreur courantes :

StatutDescription
400Requête invalide (champs manquants, erreurs de validation)
401Clé API requise ou invalide
403Domaine non autorisé (widget) ou aucune organisation active
404Chatbot, profil ou conversation non trouvé

Exemple de réponse d'erreur :

json
{
  "errors": [{
    "status": "403",
    "title": "Domain not allowed"
  }]
}

AstroAPI Documentation