两周前产品突发奇想:"我们能不能做一个会议记录自动生成待办事项的工具?"
搁以前,这种需求从想法到可演示的原型,至少要一周:搭后端、接大模型 API、写前端页面、部署……但这次我决定换一种方式——完全基于 AI 开发平台来做。
目标是:在 4 小时内跑通一个可交互的原型。
我选择了 阿里百炼 作为主平台,原因:
原型要实现的功能:
用户上传会议录音/文字 → AI 提取会议内容 →
识别待办事项 → 按负责人归类 → 输出结构化列表在百炼的控制台里,我创建了一个"应用",配置如下:
配置项 | 设置 |
|---|---|
应用类型 | 对话型应用 |
基础模型 | 通义千问-max |
Prompt 模板 | 见下方 |
知识库 | 不需要 |
插件 | 不需要 |
Prompt 模板我写了这个:
你是一个会议纪要处理助手。
输入:用户提供的会议文本(可能是完整的会议记录、对话录音转文字、或者要点笔记)
输出格式示例:负责人:张三
负责人:李四
未明确负责人
要求:
1. 仔细阅读会议内容,区分"讨论"和"决策"和"待办"
2. 只提取明确或暗示有后续行动的待办事项
3. 如果能从上下文中推断出负责人,就归类到对应人名下
4. 如果能推断出截止时间,标注在括号里
5. 如果待办不明确,归类到"待确认"
6. 对于无法提取待办的会议,回复"本次会议未发现明确的待办事项"整个配置过程大概 30 分钟——主要是把 Prompt 调到满意花了些时间。
百炼提供了"应用发布"功能,可以直接生成一个 H5 页面。但对于原型来说,默认界面太简陋了——没有上传功能,只能打字输入。
我需要一个能上传录音文件的界面。我选择用 Vercel + Next.js 搭一个简单的页面,后端调用百炼的 API。
核心代码其实很少:
// 前端页面(简化版)
export default function MeetingPage() {
const [transcript, setTranscript] = useState('')
const [result, setResult] = useState('')
const handleSubmit = async () => {
const res = await fetch('/api/analyze', {
method: 'POST',
body: JSON.stringify({ text: transcript })
})
const data = await res.json()
setResult(data.result)
}
return (
<div>
<textarea value={transcript} onChange={...} placeholder="粘贴会议文字记录" />
<button onClick={handleSubmit}>提取待办</button>
<div dangerouslySetInnerHTML={{ __html: result }} />
</div>
)
}后端 API(在 Next.js 的 API Route 里):
// /pages/api/analyze.ts
export default async function handler(req, res) {
const response = await fetch(
'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.DASHSCOPE_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'qwen-max',
input: {
prompt: `${SYSTEM_PROMPT}\n\n用户输入:${req.body.text}`
},
parameters: {
temperature: 0.3,
top_p: 0.5
}
})
}
)
const data = await response.json()
res.json({ result: data.output.text })
}前端写完 + 样式调整 + 部署到 Vercel,一共用了 2 小时。说实话,大部分时间花在了让页面好看一点上面——功能逻辑 30 分钟就写完了。
原型做出来后,产品说:"能不能直接上传录音文件?用户不想先转文字。"
这就需要接入语音识别了。我看了看百炼的平台能力——它内置了语音识别(Paraformer 模型),可以直接通过 API 调用。
改动如下:
核心代码:
// 语音转文字
async function speechToText(audioFile: File): Promise<string> {
// 调用百炼的语音识别 API
const formData = new FormData()
formData.append('file', audioFile)
formData.append('model', 'paraformer-v2')
const response = await fetch(
'https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcriptions',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.DASHSCOPE_API_KEY}`
},
body: formData
}
)
const result = await response.json()
return result.output.transcription
}这个改动花了大约 1 小时——主要调了一下录音文件格式兼容的问题(百炼对 mp3、wav、m4a 支持较好,但 ogg 格式不太行)。
4 小时后,我有了一个可以演示的原型:
给产品演示的时候,他愣了 3 秒:"这你周末加班做的?" "没,就今天下午写的。"
如果是传统开发方式,做一个类似的原型需要:
环节 | 传统方式 | AI开发平台 | 省了 |
|---|---|---|---|
大模型选型与部署 | 研究模型、申请 API 或部署 | 平台内选一个模型 | ~半天 |
后端接口开发 | 写接口、处理鉴权、错误重试 | 平台 SDK 直接调用 | ~半天 |
语音识别 | 集成第三方 SDK 或自训练 | 平台内置,一行配置 | ~1天 |
应用部署 | 配置服务器/容器/CDN | 平台内置部署 | ~半天 |
总计 | 约 2-3 天 | 约 4 小时 | 省 75%+ |
AI 开发平台最大的价值不是让你"不会写代码也能做应用",而是让会写代码的人省去大量基础设施的搭建时间。
你可以把精力集中在"应用的业务逻辑"和"Prompt 的质量"上,而不需要关心模型部署在哪里、语音识别用什么 SDK、API 鉴权怎么做。
对于想快速验证 AI 产品想法的团队,我的建议很简单:别犹豫,直接用平台做原型。一个可演示的原型比十页 PPT 方案都更有说服力。