在一个下午构建一个 AI 会议记录助手
每个 AI 会议助手背后的架构:会议 bot 录制通话,webhook 传递转写内容,LLM 生成摘要。这里是完整的 pipeline 及代码。
每个 AI 会议助手——记录笔记的、分析销售通话的、合规录音的——都建立在相同的三阶段 pipeline 上:
- 采集:bot 加入会议并进行录制
- 转写:语音转换为带说话人标注的文本
- 推理:LLM 将转写内容转化为摘要、待办事项或 CRM 更新
第 1 和第 2 阶段是基础设施,第 3 阶段才是你的产品。本指南介绍如何将第 1 和第 2 阶段压缩为一次 API 调用,让你把时间集中在第 3 阶段。
采集层是最难的部分——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 套餐 每 token $0.35–0.50 计算,一小时完整转写会议的成本为 $0.44–0.63——不含 LLM 成本,而一小时会议的转写内容对应的 LLM 成本通常仅需一两美分。
下一步
- 会议 bot API 概览——采集层详解
- 会议转写 API——语言支持、说话人分离、BYOK
- 平台指南:Zoom · Google Meet · Microsoft Teams
- API 文档