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
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
{
"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 :
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 :
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 :
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
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
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
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) :
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 :
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 :
{
"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 :
| Plugin | Description | Module Requis |
|---|---|---|
natal | Calculs et interprétations de thèmes natals | module:natal |
transit | Informations sur les transits actuels | module:transit |
synastry | Analyse de compatibilité relationnelle | module:synastry |
composite | Analyse de thème composite | module:composite |
progressions | Progressions secondaires | module:progression |
solar_return | Thèmes de retour solaire | module:solar-return |
lunar_return | Thèmes de retour lunaire | module:lunar-return |
retrograde | Informations sur les périodes de rétrograde | module:retrograde |
numerology | Calculs de numérologie | module:numerology |
compatibility | Compatibilité astrologique | module:compatibility |
chinese_zodiac | Informations sur le zodiaque chinois | module:chinese-horoscope |
daily_insight | Aperçus astrologiques quotidiens | module:transit |
moon | Données de phase lunaire et de calendrier | module:moon |
daily_horoscope | Contenu d'horoscope quotidien | module: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 :
curl -X GET "https://api.astroapi.cloud/api/chat/{chatbotId}/conversation/{conversationId}" \
-H "X-Api-Key: your-api-key"Supprimer une Conversation
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 :
curl -X GET "https://api.astroapi.cloud/api/chatbots/usage" \
-H "X-Api-Key: your-api-key"Réponse
{
"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
curl -X GET "https://api.astroapi.cloud/api/chatbots" \
-H "X-Api-Key: your-api-key"Mettre à Jour un Chatbot
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
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 :
| Statut | Description |
|---|---|
| 400 | Requête invalide (champs manquants, erreurs de validation) |
| 401 | Clé API requise ou invalide |
| 403 | Domaine non autorisé (widget) ou aucune organisation active |
| 404 | Chatbot, profil ou conversation non trouvé |
Exemple de réponse d'erreur :
{
"errors": [{
"status": "403",
"title": "Domain not allowed"
}]
}