Skip to content

Chatbot con IA

La funcionalidad de Chatbot os permite crear asistentes astrológicos impulsados por IA que se pueden incrustar en vuestro sitio web o usar a través de la API. Los chatbots pueden responder preguntas sobre cartas natales, tránsitos y proporcionar perspectivas astrológicas personalizadas.

Descripción General

  • Impulsado por IA: Usa modelos de lenguaje avanzados para conversaciones naturales
  • Conciencia de datos de nacimiento: Los chatbots pueden acceder a los datos de nacimiento del usuario para lecturas personalizadas
  • Widget embebible: Widget de chat listo para usar en vuestro sitio web
  • Respuestas en streaming: SSE en tiempo real para retroalimentación instantánea
  • Sistema de plugins: Activad funcionalidades astrológicas específicas por chatbot
  • Seguimiento de uso: Supervisad el uso de tokens y el recuento de mensajes

Crear 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"]
      }
    }
  }'

Respuesta

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 Básico

Enviad un mensaje sin contexto de datos de nacimiento:

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 con Datos de Nacimiento

Enviad un mensaje con datos de nacimiento en línea para respuestas personalizadas:

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 con Perfil

Usad un perfil guardado para datos de nacimiento consistentes en todas las conversaciones:

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"
  }'

Respuesta en Streaming

Todos los endpoints de chat devuelven Server-Sent Events (SSE) para streaming en tiempo real:

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}}

Perfiles de Chat

Los perfiles almacenan datos de nacimiento de los usuarios, permitiendo respuestas personalizadas sin reenviar los datos de nacimiento cada vez.

Crear un Perfil

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"
        }
      }
    }
  }'

Listar Perfiles

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

Integración del Widget

Incrustad un widget de chat en vuestro sitio web usando los endpoints del widget.

INFO

Los endpoints del widget usan la ruta /widget/ (sin el prefijo /api/) y validan la cabecera Origin para las restricciones de dominio.

Obtener Configuración del Widget

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

Chat del Widget

El widget usa la validación de dominio a través de la cabecera Origin (aplicada por el navegador):

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 con Perfiles de Usuario

Para usuarios recurrentes, usad el endpoint de ID de usuario externo. El perfil se crea automáticamente en el primer uso:

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

Los datos de nacimiento solo son necesarios en el primer mensaje para un nuevo usuario. Los mensajes posteriores pueden omitirlos.

Restricciones de Dominio

Por seguridad, podéis restringir qué dominios pueden acceder a vuestro widget:

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

Si allowedDomains está vacío, se permiten todos los dominios.

Plugins Disponibles

Los plugins determinan a qué funcionalidades astrológicas puede acceder el chatbot:

PluginDescripciónMódulo Requerido
natalCálculos e interpretaciones de carta natalmodule:natal
transitInformación de tránsitos actualesmodule:transit
synastryAnálisis de compatibilidad en relacionesmodule:synastry
compositeAnálisis de carta compuestamodule:composite
progressionsProgresiones secundariasmodule:progression
solar_returnCartas de retorno solarmodule:solar-return
lunar_returnCartas de retorno lunarmodule:lunar-return
retrogradeInformación sobre períodos retrógradosmodule:retrograde
numerologyCálculos de numerologíamodule:numerology
compatibilityCompatibilidad astrológicamodule:compatibility
chinese_zodiacInformación del zodiaco chinomodule:chinese-horoscope
daily_insightPerspectivas astrológicas diariasmodule:transit
moonDatos de fase lunar y calendario lunarmodule:moon
daily_horoscopeContenido de horóscopo diariomodule:daily-report

TIP

Usad GET /api/chatbots/plugins para listar todos los plugins disponibles, o GET /api/chatbots/available-plugins para ver qué plugins están disponibles basándose en los módulos de vuestra organización.

Historial de Conversaciones

Obtener Conversación

Recuperad el historial completo de mensajes:

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

Eliminar Conversación

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

Seguimiento de Uso

Supervisad el uso de vuestro chatbot:

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

Respuesta

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

Gestión de Chatbots

Listar Chatbots

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

Actualizar 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"]
      }
    }
  }'

Eliminar Chatbot

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

Gestión de Errores

Respuestas de error más comunes:

EstadoDescripción
400Solicitud no válida (campos faltantes, errores de validación)
401Clave de API requerida o no válida
403Dominio no permitido (widget) o sin organización activa
404Chatbot, perfil o conversación no encontrado

Ejemplo de respuesta de error:

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

AstroAPI Documentation