Skip to content

Chatbot con IA

La funzionalità Chatbot ti consente di creare assistenti astrologici alimentati dall'IA che possono essere incorporati nel tuo sito web o utilizzati tramite API. I chatbot possono rispondere a domande sui temi natali, i transiti e fornire intuizioni astrologiche personalizzate.

Panoramica

  • Alimentato dall'IA: Utilizza modelli linguistici avanzati per conversazioni naturali
  • Consapevole dei dati di nascita: I chatbot possono accedere ai dati di nascita dell'utente per letture personalizzate
  • Widget incorporabile: Widget di chat drop-in per il tuo sito web
  • Risposte in streaming: Streaming SSE in tempo reale per feedback istantaneo
  • Sistema di plugin: Abilita funzionalità astrologiche specifiche per chatbot
  • Monitoraggio dell'utilizzo: Monitora l'utilizzo dei token e il conteggio dei messaggi

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

Risposta

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

Endpoint di Chat

Chat di Base

Invia un messaggio senza contesto dei dati di nascita:

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 Dati di Nascita

Invia un messaggio con dati di nascita inline per risposte personalizzate:

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 Profilo

Usa un profilo salvato per dati di nascita coerenti tra le conversazioni:

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

Risposta in Streaming

Tutti gli endpoint di chat restituiscono Server-Sent Events (SSE) per lo streaming in tempo reale:

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

Profili di Chat

I profili memorizzano i dati di nascita degli utenti, abilitando risposte personalizzate senza dover reinviare i dati di nascita ogni volta.

Crea un Profilo

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

Elenca i Profili

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

Integrazione del Widget

Incorpora un widget di chat nel tuo sito web usando gli endpoint del widget.

INFO

Gli endpoint del widget usano il percorso /widget/ (senza il prefisso /api/) e validano l'intestazione Origin per le restrizioni di dominio.

Ottieni la Configurazione del Widget

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

Chat del Widget

Il widget usa la validazione del dominio tramite l'intestazione Origin (applicata dal browser):

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 Profili Utente

Per gli utenti di ritorno, usa l'endpoint con ID utente esterno. Il profilo viene creato automaticamente al primo utilizzo:

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

I dati di nascita sono richiesti solo nel primo messaggio per un nuovo utente. I messaggi successivi possono ometterli.

Restrizioni di Dominio

Per sicurezza, puoi limitare i domini che possono accedere al tuo widget:

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

Se allowedDomains è vuoto, tutti i domini sono consentiti.

Plugin Disponibili

I plugin determinano le funzionalità astrologiche a cui il chatbot può accedere:

PluginDescrizioneModulo Richiesto
natalCalcoli e interpretazioni del tema natalemodule:natal
transitInformazioni sui transiti attualimodule:transit
synastryAnalisi della compatibilità relazionalemodule:synastry
compositeAnalisi del tema compositomodule:composite
progressionsProgressioni secondariemodule:progression
solar_returnTemi di rivoluzione solaremodule:solar-return
lunar_returnTemi di rivoluzione lunaremodule:lunar-return
retrogradeInformazioni sui periodi di retrogradazionemodule:retrograde
numerologyCalcoli numerologicimodule:numerology
compatibilityCompatibilità astrologicamodule:compatibility
chinese_zodiacInformazioni sullo zodiaco cinesemodule:chinese-horoscope
daily_insightIntuizioni astrologiche giornalieremodule:transit
moonDati sulla fase lunare e il calendariomodule:moon
daily_horoscopeContenuto dell'oroscopo giornalieromodule:daily-report

TIP

Usa GET /api/chatbots/plugins per elencare tutti i plugin disponibili, o GET /api/chatbots/available-plugins per vedere quali plugin sono disponibili in base ai moduli della tua organizzazione.

Cronologia delle Conversazioni

Ottieni una Conversazione

Recupera l'intera cronologia dei messaggi:

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

Elimina una Conversazione

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

Monitoraggio dell'Utilizzo

Monitora l'utilizzo del tuo chatbot:

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

Risposta

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

Gestione dei Chatbot

Elenca i Chatbot

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

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

Elimina un Chatbot

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

Gestione degli Errori

Risposte di errore comuni:

StatoDescrizione
400Richiesta non valida (campi mancanti, errori di validazione)
401Chiave API richiesta o non valida
403Dominio non consentito (widget) o nessuna organizzazione attiva
404Chatbot, profilo o conversazione non trovati

Esempio di risposta di errore:

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

AstroAPI Documentation