Speaking Bots API

ミーティング向け会話AIエージェント

Speaking Bots APIを使用すると、Google Meet、Microsoft Teams、Zoomのミーティングに会話AIエージェント(ペルソナ)をdeployできます。これらのbotはPipecatとMeeting BaaSを基盤として、リアルタイムで会話・聴取・インタラクションを行うことができます。

  • カスタムの個性と音声を持つbotのdeploy
  • リアルタイム音声ストリーミングと音声認識
  • 複数プラットフォームおよびミーティングごとの複数bot対応
  • 簡単に統合できるOpenAPIとHTTP endpoint

このAPIはオープンソースであり、セルフホストまたはパブリックendpointを通じて利用できます。

主な機能

  • 会話AI: botはミーティング内で会話・聴取・インタラクションが可能
  • カスタムペルソナ: 独自の個性、音声、入室メッセージを定義
  • マルチプラットフォーム: Google Meet、Microsoft Teams、Zoom
  • WebSocket音声: PipecatによるリアルタイムWebSocket音声ストリーミング
  • オープンソース: カスタマイズ用の完全なコードベースを公開
  • 簡単なdeploy: シンプルなHTTP POSTでbotを起動

API Endpoint

  • POST /bots — ミーティングにspeaking botをdeploy
  • DELETE /bots/{bot_id} — ミーティングからbotを削除
  • GET /health — ヘルスチェック

詳細については、APIドキュメントおよびOpenAPI仕様をご参照ください。

セットアップとインストール

前提条件

  • Python 3.11以上
  • プロトコルバッファのコンパイルには grpc_tools が必要
  • ローカル開発にはNgrok
  • 依存関係管理にはPoetry

クイックセットアップ

  1. リポジトリをクローン:

    git clone https://github.com/Meeting-Baas/speaking-meeting-bot.git
    cd speaking-meeting-bot
  2. 依存関係をインストール:

    # Install Poetry
    curl -sSL https://install.python-poetry.org | python3 -
    
    # Configure Poetry and install dependencies
    poetry env use python3.11
    poetry install
    poetry shell
  3. 環境を設定:

    cp env.example .env

    .env をAPIキーで編集してください:

    • MEETING_BAAS_API_KEY: ミーティングプラットフォーム統合用
    • OPENAI_API_KEY: 会話LLM用
    • CARTESIA_API_KEY: テキスト読み上げ用
    • GLADIA_API_KEY または DEEPGRAM_API_KEY: 音声認識用
  4. サーバーを起動:

    poetry run uvicorn app:app --reload --host 0.0.0.0 --port 8766

詳細なセットアップ手順については、公式セットアップガイドをご参照ください。

API使用例

Speaking BotのDeploy

basic_speaking_bot.sh
curl -X POST https://speaking.meetingbaas.com/bots \
  -H "Content-Type: application/json" \
  -d '{
    "meeting_url": "https://us06web.zoom.us/j/123456789?pwd=example",
    "personas": ["baas_onboarder"],
    "meeting_baas_api_key": "your-api-key"
  }'
advanced_speaking_bot.sh
curl -X POST "https://speaking.meetingbaas.com/bots" \
  -H "x-meeting-baas-api-key: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "bot_image": "https://example.com/bot-avatar.png",
    "bot_name": "Meeting Assistant",
    "enable_tools": true,
    "entry_message": "Hello! I\'m here to assist with the meeting.",
    "extra": {
      "company": "ACME Corp",
      "meeting_purpose": "Weekly sync"
    },
    "meeting_url": "https://meet.google.com/abc-defg-hij",
    "personas": [
      "helpful_assistant",
      "meeting_facilitator"
    ],
    "prompt": "You are Meeting Assistant, a concise and professional AI bot that helps summarize key points and keep the meeting on track. Speak clearly and stay on topic."
  }'
speaking_bot.py
import requests
import json

def deploy_speaking_bot():
    url = "https://speaking.meetingbaas.com/bots"
    headers = {
        "Content-Type": "application/json",
        "x-meeting-baas-api-key": "your-api-key"
    }
    
    payload = {
        "meeting_url": "https://meet.google.com/abc-defg-hij",
        "bot_name": "AI Assistant",
        "personas": ["helpful_assistant"],
        "entry_message": "Hello! I'm your AI assistant for this meeting.",
        "bot_image": "https://example.com/bot-avatar.png",
        "enable_tools": True,
        "extra": {
            "company": "Your Company",
            "meeting_purpose": "Team sync"
        }
    }
    
    response = requests.post(url, headers=headers, json=payload)
    return response.json()

# Deploy the speaking bot
result = deploy_speaking_bot()
print(result)

ミーティングからBotを削除

remove_bot.sh
curl -X DELETE "https://speaking.meetingbaas.com/bots/{bot_id}" \
  -H "x-meeting-baas-api-key: your-api-key"

ペルソナ:カスタム会話エージェント

独自のプロンプト、音声、動作を持つペルソナを定義できます。サンプルについてはペルソナディレクトリをご参照ください。

  • 各ペルソナはプロンプト、コンテキスト、ルール用のMarkdownファイルを含むフォルダで構成
  • botを起動する際に名前でペルソナを指定
  • カスタム入室メッセージ、画像、音声IDに対応

ペルソナ設定の例

persona_config.yaml
# Example persona structure
personas/
├── helpful_assistant/
│   ├── prompt.md          # Main personality prompt
│   ├── context.md         # Background context
│   └── rules.md           # Behavioral rules
├── meeting_facilitator/
│   ├── prompt.md
│   ├── context.md
│   └── rules.md
└── interviewer/
    ├── prompt.md
    ├── context.md
    └── rules.md

利用可能なペルソナ

  • helpful_assistant: 一般的なミーティングのアシストとメモ取り
  • meeting_facilitator: ミーティングの進行とディスカッションの軌道維持をサポート
  • interviewer: 構造化されたインタビューの実施とフォローアップ質問
  • baas_onboarder: カスタマーオンボーディングミーティング専用

ローカル開発

ローカル開発とテスト用:

# Run in local development mode with ngrok auto-configuration
poetry run python run.py --local-dev

# Access interactive API docs
open http://localhost:8766/docs

# Test with CLI tools
poetry run python scripts/batch.py -c 1 --meeting-url YOUR_MEETING_URL
Meeting BaaS API Preview Features

はじめに

ミーティングに会話AIエージェントをdeployする準備はできましたか?以下の充実したリソースをご活用ください: