Skip to content

AIチャットボット

チャットボット機能を使用すると、ウェブサイトに埋め込んだり、APIで使用したりできるAI駆動の占星術アシスタントを作成できます。チャットボットはネイタルチャート、トランジットに関する質問に答え、パーソナライズされた占星術的な洞察を提供できます。

概要

  • AI駆動:自然な会話のための高度な言語モデルを使用
  • 出生データ対応:チャットボットはパーソナライズされた読み取りのためにユーザーの出生データにアクセスできる
  • 埋め込みウィジェット:ウェブサイト用のドロップインチャットウィジェット
  • ストリーミングレスポンス:即時フィードバックのためのリアルタイムSSEストリーミング
  • プラグインシステム:チャットボットごとに特定の占星術機能を有効化
  • 使用状況追跡:トークン使用量とメッセージ数を監視

チャットボットの作成

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

レスポンス

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

チャットエンドポイント

基本チャット

出生データコンテキストなしでメッセージを送信する:

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

出生データ付きチャット

パーソナライズされたレスポンスのためにインラインの出生データとともにメッセージを送信する:

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

プロファイル付きチャット

会話全体で一貫した出生データのために保存されたプロファイルを使用する:

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

ストリーミングレスポンス

すべてのチャットエンドポイントはリアルタイムストリーミングのためにServer-Sent Events(SSE)を返します:

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

チャットプロファイル

プロファイルはユーザーの出生データを保存し、毎回出生データを再送信することなくパーソナライズされたレスポンスを可能にします。

プロファイルの作成

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

プロファイルの一覧

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

ウィジェット統合

ウィジェットエンドポイントを使用してウェブサイトにチャットウィジェットを埋め込む。

INFO

ウィジェットエンドポイントは /widget/ パス(/api/ プレフィックスなし)を使用し、ドメイン制限のためにOriginヘッダーを検証します。

ウィジェット設定の取得

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

ウィジェットチャット

ウィジェットはOriginヘッダー(ブラウザが強制)によるドメイン検証を使用します:

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

ユーザープロファイル付きウィジェット

リピートユーザーには、外部ユーザーIDエンドポイントを使用してください。プロファイルは最初の使用時に自動的に作成されます:

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

出生データは新しいユーザーの最初のメッセージにのみ必要です。後続のメッセージでは省略できます。

ドメイン制限

セキュリティのために、ウィジェットにアクセスできるドメインを制限できます:

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

allowedDomains が空の場合、すべてのドメインが許可されます。

利用可能なプラグイン

プラグインはチャットボットがアクセスできる占星術機能を決定します:

プラグイン説明必要なモジュール
natalネイタルチャートの計算と解釈module:natal
transit現在のトランジット情報module:transit
synastry関係相性分析module:synastry
compositeコンポジットチャート分析module:composite
progressionsセカンダリプログレッションmodule:progression
solar_returnソーラーリターンチャートmodule:solar-return
lunar_returnルナーリターンチャートmodule:lunar-return
retrograde逆行期間情報module:retrograde
numerology数秘術計算module:numerology
compatibility占星術的相性module:compatibility
chinese_zodiac中国の干支情報module:chinese-horoscope
daily_insight毎日の占星術的洞察module:transit
moon月の満ち欠けとカレンダーデータmodule:moon
daily_horoscope毎日のホロスコープコンテンツmodule:daily-report

TIP

GET /api/chatbots/plugins を使用してすべての利用可能なプラグインを一覧表示するか、GET /api/chatbots/available-plugins を使用して組織のモジュールに基づいて利用可能なプラグインを確認してください。

会話履歴

会話の取得

完全なメッセージ履歴を取得する:

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

会話の削除

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

使用状況追跡

チャットボットの使用状況を監視する:

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

レスポンス

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

チャットボットの管理

チャットボットの一覧

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

チャットボットの更新

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

チャットボットの削除

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

エラー処理

一般的なエラーレスポンス:

ステータス説明
400無効なリクエスト(フィールドの欠如、バリデーションエラー)
401APIキーが必要または無効
403ドメインが許可されていない(ウィジェット)またはアクティブな組織がない
404チャットボット、プロファイル、または会話が見つからない

エラーレスポンスの例:

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

AstroAPI Documentation