每个 AI 会议助手背后的架构:会议 bot 录制通话,webhook 传递转写内容,LLM 生成摘要。这里是完整的 pipeline 及代码。

LLazare Rossillon
··2 min read
在一个下午构建一个 AI 会议记录助手

每个 AI 会议助手——记录笔记的、分析销售通话的、合规录音的——都建立在相同的三阶段 pipeline 上:

  1. 采集:bot 加入会议并进行录制
  2. 转写:语音转换为带说话人标注的文本
  3. 推理:LLM 将转写内容转化为摘要、待办事项或 CRM 更新

第 1 和第 2 阶段是基础设施,第 3 阶段才是你的产品。本指南介绍如何将第 1 和第 2 阶段压缩为一次 API 调用,让你把时间集中在第 3 阶段。

录制和转写是你从 Meeting BaaS 购买的基础设施;基于转写内容的推理才是你构建的产品

录制层是最难的部分——bot 需要在 Zoom、Google Meet 和 Microsoft Teams 上应对等待室、布局变化以及长达四小时的会议。这部分你应该购买,而不是自己构建。

录制层:一个 POST 请求

import { createBaasClient } from "@meeting-baas/sdk";

const client = createBaasClient({
  api_key: process.env.MEETING_BAAS_API_KEY,
  api_version: "v2"
});

const { success, data, error } = await client.createBot({
  bot_name: "Acme Notetaker",
  meeting_url: meetingUrl // Zoom, Google Meet or Microsoft Teams
});

同一个请求适用于三个平台。启用日历集成后,你甚至可以跳过这一步——bot 会自动为用户安排即将到来的会议。

转写内容通过 webhook 送达

会议结束后,你的 webhook 会收到包含说话人归属的转写内容、参会者列表以及录像 URL。一个简单的处理示例:

export async function POST(req: Request) {
  const rawBody = await req.text();

  // Verify the webhook signature over the raw body before parsing —
  // see the webhooks documentation for the signing scheme
  if (!verifySignature(req.headers, rawBody)) {
    return new Response("invalid signature", { status: 401 });
  }

  const event = JSON.parse(rawBody);

  if (event.event === "complete") {
    const { bot_id, transcript, participants } = event.data;
    // Deduplicate on bot_id so replayed deliveries don't re-run the LLM
    if (await alreadyProcessed(bot_id)) return new Response("ok");
    await summarize(bot_id, transcript, participants);
  }

  return new Response("ok");
}

每次录制都包含说话人分离功能,且片段会与真实参与者姓名对齐——你的 LLM prompt 收到的是「Sarah:我们周五发布」,而不是「Speaker 2:我们周五发布」。这一差异正是行动项提取真正有效的关键所在。

推理层:你的产品

有了清晰的说话人归属转写内容,LLM 这一步只是一个 prompt,而不是一个项目:

async function summarize(botId: string, transcript: Segment[], participants: Participant[]) {
  const text = transcript
    .map((segment) => `${segment.speaker}: ${segment.text}`)
    .join("\n");

  const summary = await llm.complete({
    prompt: `Summarize this meeting. Extract decisions and action items with owners.\n\n${text}`
  });

  await saveNotes(botId, summary);
}

从这里开始,差异化就是产品工作:为每位参与者发送跟进邮件、CRM 数据补全、跨多次会议的主题追踪,或者实时回答问题的发言 bot——speaking bots API 覆盖了最后一项。

运行成本

录制费用为每小时 1 个 token,已包含说话人分离;转写额外收取每小时 0.25 个 token。按照 token 包 0.35–0.50 美元/token 的价格,完整转写一小时会议的费用为 0.44–0.63 美元——不含 LLM 费用,而一小时会议转写内容的 LLM 费用通常只需几美分。

下一步

相关博客tutorial