AIチャットボット
チャットボット機能を使用すると、ウェブサイトに埋め込んだり、APIで使用したりできるAI駆動の占星術アシスタントを作成できます。チャットボットはネイタルチャート、トランジットに関する質問に答え、パーソナライズされた占星術的な洞察を提供できます。
概要
- AI駆動:自然な会話のための高度な言語モデルを使用
- 出生データ対応:チャットボットはパーソナライズされた読み取りのためにユーザーの出生データにアクセスできる
- 埋め込みウィジェット:ウェブサイト用のドロップインチャットウィジェット
- ストリーミングレスポンス:即時フィードバックのためのリアルタイムSSEストリーミング
- プラグインシステム:チャットボットごとに特定の占星術機能を有効化
- 使用状況追跡:トークン使用量とメッセージ数を監視
チャットボットの作成
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"]
}
}
}'レスポンス
{
"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"
}
}
}チャットエンドポイント
基本チャット
出生データコンテキストなしでメッセージを送信する:
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
}'出生データ付きチャット
パーソナライズされたレスポンスのためにインラインの出生データとともにメッセージを送信する:
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"
}
}'プロファイル付きチャット
会話全体で一貫した出生データのために保存されたプロファイルを使用する:
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}}チャットプロファイル
プロファイルはユーザーの出生データを保存し、毎回出生データを再送信することなくパーソナライズされたレスポンスを可能にします。
プロファイルの作成
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"
}
}
}
}'プロファイルの一覧
curl -X GET "https://api.astroapi.cloud/api/chatbots/{chatbotId}/profiles" \
-H "X-Api-Key: your-api-key"ウィジェット統合
ウィジェットエンドポイントを使用してウェブサイトにチャットウィジェットを埋め込む。
INFO
ウィジェットエンドポイントは /widget/ パス(/api/ プレフィックスなし)を使用し、ドメイン制限のためにOriginヘッダーを検証します。
ウィジェット設定の取得
curl -X GET "https://api.astroapi.cloud/widget/config/{chatbotId}"ウィジェットチャット
ウィジェットはOriginヘッダー(ブラウザが強制)によるドメイン検証を使用します:
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エンドポイントを使用してください。プロファイルは最初の使用時に自動的に作成されます:
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
出生データは新しいユーザーの最初のメッセージにのみ必要です。後続のメッセージでは省略できます。
ドメイン制限
セキュリティのために、ウィジェットにアクセスできるドメインを制限できます:
{
"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 を使用して組織のモジュールに基づいて利用可能なプラグインを確認してください。
会話履歴
会話の取得
完全なメッセージ履歴を取得する:
curl -X GET "https://api.astroapi.cloud/api/chat/{chatbotId}/conversation/{conversationId}" \
-H "X-Api-Key: your-api-key"会話の削除
curl -X DELETE "https://api.astroapi.cloud/api/chat/{chatbotId}/conversation/{conversationId}" \
-H "X-Api-Key: your-api-key"使用状況追跡
チャットボットの使用状況を監視する:
curl -X GET "https://api.astroapi.cloud/api/chatbots/usage" \
-H "X-Api-Key: your-api-key"レスポンス
{
"data": {
"type": "chatbot-usage",
"id": "org_abc-2024-01",
"attributes": {
"month": "2024-01",
"totalInputTokens": 15000,
"totalOutputTokens": 45000,
"totalMessages": 250
}
}
}チャットボットの管理
チャットボットの一覧
curl -X GET "https://api.astroapi.cloud/api/chatbots" \
-H "X-Api-Key: your-api-key"チャットボットの更新
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"]
}
}
}'チャットボットの削除
curl -X DELETE "https://api.astroapi.cloud/api/chatbots/{id}" \
-H "X-Api-Key: your-api-key"エラー処理
一般的なエラーレスポンス:
| ステータス | 説明 |
|---|---|
| 400 | 無効なリクエスト(フィールドの欠如、バリデーションエラー) |
| 401 | APIキーが必要または無効 |
| 403 | ドメインが許可されていない(ウィジェット)またはアクティブな組織がない |
| 404 | チャットボット、プロファイル、または会話が見つからない |
エラーレスポンスの例:
{
"errors": [{
"status": "403",
"title": "Domain not allowed"
}]
}