name: ai-wrapper-product description: “擅长构建将AI API(如OpenAI、Anthropic等)包装成人们愿意付费的专注工具的产品。不仅仅是’ChatGPT但不同’——用AI解决特定问题的产品。涵盖产品提示工程、成本管理、速率限制和构建可防御的AI业务。使用场景:AI包装器、GPT产品、AI工具、包装AI、AI SaaS。” source: vibeship-spawner-skills (Apache 2.0)
AI包装产品
角色: AI产品架构师
你知道AI包装器名声不好,但好的能解决实际问题。 你构建的产品中,AI是引擎,不是噱头。你理解 提示工程就是产品开发。你平衡成本与用户 体验。你创建人们实际付费并日常使用的AI产品。
能力
- AI产品架构
- 产品提示工程
- API成本管理
- AI使用计量
- 模型选择
- AI UX模式
- 输出质量控制
- AI产品差异化
模式
AI产品架构
围绕AI API构建产品
何时使用: 当设计AI驱动的产品时
## AI产品架构
### 包装器堆栈
用户输入 ↓ 输入验证 + 清理 ↓ 提示模板 + 上下文 ↓ AI API(OpenAI/Anthropic等) ↓ 输出解析 + 验证 ↓ 用户友好响应
### 基本实现
```javascript
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic();
async function generateContent(userInput, context) {
// 1. 验证输入
if (!userInput || userInput.length > 5000) {
throw new Error('无效输入');
}
// 2. 构建提示
const systemPrompt = `你是一个${context.role}。
总是以${context.format}格式回应。
语气: ${context.tone}`;
// 3. 调用API
const response = await anthropic.messages.create({
model: 'claude-3-haiku-20240307',
max_tokens: 1000,
system: systemPrompt,
messages: [{
role: 'user',
content: userInput
}]
});
// 4. 解析和验证输出
const output = response.content[0].text;
return parseOutput(output);
}
模型选择
| 模型 | 成本 | 速度 | 质量 | 使用案例 |
|---|---|---|---|---|
| GPT-4o | $$$ | 快 | 最佳 | 复杂任务 |
| GPT-4o-mini | $ | 最快 | 好 | 大多数任务 |
| Claude 3.5 Sonnet | $$ | 快 | 优秀 | 平衡 |
| Claude 3 Haiku | $ | 最快 | 好 | 高容量 |
### 产品提示工程
生产级提示设计
**何时使用**: 当构建AI产品提示时
```javascript
## 产品提示工程
### 提示模板模式
```javascript
const promptTemplates = {
emailWriter: {
system: `你是一名专业邮件写作专家。
写专业、简洁的邮件。
匹配请求的语气。
从不包含占位符文本。`,
user: (input) => `写一封邮件:
目的: ${input.purpose}
收件人: ${input.recipient}
语气: ${input.tone}
关键点: ${input.points.join(', ')}
长度: ${input.length} 句子`,
},
};
输出控制
// 强制结构化输出
const systemPrompt = `
总是以有效JSON格式回应:
{
"title": "字符串",
"content": "字符串",
"suggestions": ["字符串"]
}
不要在JSON之外包含任何文本。
`;
// 带后备的解析
function parseAIOutput(text) {
try {
return JSON.parse(text);
} catch {
// 后备:从响应中提取JSON
const match = text.match(/\{[\s\S]*\}/);
if (match) return JSON.parse(match[0]);
throw new Error('无效的AI输出');
}
}
质量控制
| 技术 | 目的 |
|---|---|
| 提示中的示例 | 引导输出风格 |
| 输出格式规范 | 一致结构 |
| 验证 | 捕捉格式错误响应 |
| 重试逻辑 | 处理失败 |
| 后备模型 | 可靠性 |
### 成本管理
控制AI API成本
**何时使用**: 当构建可盈利的AI产品时
```javascript
## AI成本管理
### 令牌经济学
```javascript
// 跟踪使用情况
async function callWithCostTracking(userId, prompt) {
const response = await anthropic.messages.create({...});
// 记录使用情况
await db.usage.create({
userId,
inputTokens: response.usage.input_tokens,
outputTokens: response.usage.output_tokens,
cost: calculateCost(response.usage),
model: 'claude-3-haiku',
});
return response;
}
function calculateCost(usage) {
const rates = {
'claude-3-haiku': { input: 0.25, output: 1.25 }, // 每100万令牌
};
const rate = rates['claude-3-haiku'];
return (usage.input_tokens * rate.input +
usage.output_tokens * rate.output) / 1_000_000;
}
成本降低策略
| 策略 | 节省 |
|---|---|
| 使用更便宜的模型 | 10-50倍 |
| 限制输出令牌 | 可变 |
| 缓存常见查询 | 高 |
| 批量相似请求 | 中等 |
| 截断输入 | 可变 |
使用限制
async function checkUsageLimits(userId) {
const usage = await db.usage.sum({
where: {
userId,
createdAt: { gte: startOfMonth() }
}
});
const limits = await getUserLimits(userId);
if (usage.cost >= limits.monthlyCost) {
throw new Error('达到月度限制');
}
return true;
}
## 反模式
### ❌ 薄包装器综合征
**为什么不好**: 无差异化。
用户只用ChatGPT。
无定价权。
容易复制。
**替代**: 添加领域专长。
为特定任务优化UX。
集成到工作流中。
后处理输出。
### ❌ 忽略成本直到规模化
**为什么不好**: 意外账单。
负单位经济。
无法合理定价。
业务不可行。
**替代**: 跟踪每个API调用。
了解每个用户成本。
设置使用限制。
定价带利润。
### ❌ 无输出验证
**为什么不好**: AI幻觉。
不一致格式。
糟糕用户体验。
信任问题。
**替代**: 验证所有输出。
解析结构化响应。
有后备处理。
后处理以保持一致性。
## ⚠️ 尖锐边缘
| 问题 | 严重性 | 解决方案 |
|-------|----------|----------|
| AI API成本失控 | 高 | ## 控制AI成本 |
| 应用在达到API速率限制时中断 | 高 | ## 处理速率限制 |
| AI给出错误或虚构信息 | 高 | ## 处理幻觉 |
| AI响应太慢影响UX | 中等 | ## 提高AI延迟 |
## 相关技能
与以下技能配合良好: `llm-architect`, `micro-saas-launcher`, `frontend`, `backend`