Speaking Bots API

用于会议的对话式 AI 代理

Speaking Bots API 让你能够将对话式 AI 代理(角色)部署到 Google Meet、Microsoft Teams 和 Zoom 会议中。这些 bot 由 Pipecat 和 Meeting BaaS 驱动,能够实时发言、倾听和交互。

  • 部署具有自定义个性和声音的 bot
  • 实时音频流和语音转文字
  • 支持多个平台以及每次会议多个 bot
  • OpenAPI 和 HTTP endpoint,便于集成

该 API 是开源的,可以自托管,也可以通过公共 endpoint 使用。

主要功能

  • 对话式 AI: bot 能够在会议中发言、倾听和交互
  • 自定义角色: 定义独特的个性、声音和入场消息
  • 多平台支持: Google Meet、Microsoft Teams、Zoom
  • WebSocket 音频: 通过 Pipecat 实现实时音频流
  • 开源: 提供完整代码库供自定义使用
  • 轻松部署: 通过简单的 HTTP POST 启动 bot

API Endpoints

  • POST /bots — 将 speaking bot 部署到会议中
  • 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_KEYDEEPGRAM_API_KEY:用于语音转文字
  4. 启动服务器:

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

详细设置说明请参阅 官方设置指南

API 使用示例

部署 Speaking Bot

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 代理了吗?查看我们的综合资源: