AI 应用开发入门
Prompt Engineering(提示词工程)
什么是 Prompt?
Prompt 是与 AI 模型交互的输入文本,它指导 AI 模型生成期望的输出。好的 Prompt 设计可以显著提升 AI 模型的表现。
Prompt 设计原则
1. 明确性
❌ 模糊的 Prompt:
"写一个函数"
✅ 明确的 Prompt:
"请用 JavaScript 写一个函数,接收一个数字数组作为参数,返回数组中的最大值。函数应该包含错误处理和类型检查。"
2. 上下文丰富
❌ 缺少上下文:
"优化这段代码"
✅ 提供上下文:
"这是一个 React 组件的性能优化问题。当前组件在大量数据渲染时出现卡顿,请优化以下代码,重点考虑渲染性能和内存使用:"
3. 结构化格式
✅ 使用结构化格式:
## 任务描述
请实现一个用户认证系统
## 技术要求
- 使用 JWT 进行身份验证
- 支持登录、注册、密码重置功能
- 前端使用 React,后端使用 Node.js
## 输出格式
请提供完整的代码实现,包括:
1. 后端 API 接口
2. 前端组件代码
3. 数据库设计
4. 示例引导
✅ 提供示例:
请按照以下格式生成产品描述:
示例:
产品名称:智能手表 Pro
核心卖点:健康监测、运动追踪、智能提醒
目标用户:健身爱好者、商务人士
产品描述:这款智能手表集成了先进的健康监测功能...
现在请为以下产品生成描述:
产品名称:无线降噪耳机
核心卖点:主动降噪、高音质、长续航
目标用户:音乐爱好者、通勤族
高级 Prompt 技巧
Chain of Thought(思维链)
请逐步解决以下数学问题:
问题:一个商店的苹果价格是每斤5元,香蕉价格是每斤3元。如果小明买了2斤苹果和3斤香蕉,总共需要支付多少钱?
请按照以下步骤思考:
1. 计算苹果的总价
2. 计算香蕉的总价
3. 将两者相加得到总价
4. 给出最终答案
Few-shot Learning(少样本学习)
以下是一些情感分类的例子:
文本:"这个产品太棒了,我很满意!" → 情感:正面
文本:"服务态度很差,不推荐。" → 情感:负面
文本:"还可以,没有特别的惊喜。" → 情感:中性
现在请分类以下文本:
文本:"包装精美,物流快速,产品质量超出预期。" → 情感:
Agent 代理系统
什么是 AI Agent?
AI Agent 是能够自主感知环境、做出决策并执行动作的智能系统,通常包含以下组件:
核心组件
- 感知模块:获取环境信息
- 决策模块:基于信息做出决策
- 执行模块:执行具体动作
- 记忆模块:存储历史信息
Agent 架构模式
1. ReAct 模式
// Reasoning + Acting
async function* agentLoop(query: string): AsyncGenerator<string, void, unknown> {
let currentState = '';
let taskComplete = false;
while (!taskComplete) {
// 思考阶段
const thought = await llm(`分析当前情况并制定下一步计划:${currentState}`);
// 行动阶段
const action = selectAction(thought);
const result = await executeAction(action);
// 观察阶段
const observation = observeResult(result);
currentState = updateState(observation);
yield `思考:${thought}\n行动:${action}\n结果:${result}`;
if (currentState.includes('任务完成')) {
taskComplete = true;
}
}
}
2. Plan-and-Execute 模式
// 先规划后执行
interface Plan {
steps: string[];
requirements: string[];
}
async function planExecuteAgent(goal: string): Promise<void> {
// 规划阶段
const plan: Plan = await llm(`为以下目标制定详细执行计划:${goal}`);
// 执行阶段
for (const step of plan.steps) {
const result = await executeStep(step);
if (!result.success) {
// 重新规划
plan = await adjustPlan(plan, result.error);
}
}
}
实际应用场景
1. 客服 Agent
class CustomerServiceAgent {
private knowledgeBase: Map<string, string>;
private conversationHistory: string[];
constructor() {
this.knowledgeBase = loadKnowledgeBase();
this.conversationHistory = [];
}
async handleQuery(userQuery: string): Promise<string> {
// 意图识别
const intent = await classifyIntent(userQuery);
// 信息检索
let response: string;
switch (intent) {
case 'product_info':
response = await searchProductInfo(userQuery);
break;
case 'order_status':
response = await checkOrderStatus(userQuery);
break;
default:
response = await generateHelpfulResponse(userQuery);
}
return response;
}
}
2. 代码助手 Agent
class CodeAssistantAgent {
async generateCode(requirements: string): Promise<string> {
// 分析需求
const analysis = await analyzeRequirement(requirements);
// 生成代码
let code = await generateCodeSnippet(analysis);
// 代码审查
const review = await reviewCode(code);
if (review.issues.length > 0) {
// 修复问题
code = await fixIssues(code, review.issues);
}
return code;
}
}
MCP(Model Context Protocol)
什么是 MCP?
MCP 是一种标准化的协议,用于 AI 模型与外部工具和数据源的交互,提供统一的接口规范。
MCP 核心特性
1. 标准化接口
// MCP 标准接口定义
interface MCPTool {
name: string;
description: string;
parameters: MCPParameters;
execute: (params: MCPParameters) => Promise<MCPResult>;
}
interface MCPParameters {
[key: string]: MCPParameter;
}
interface MCPParameter {
type: 'string' | 'number' | 'boolean' | 'object';
description: string;
required?: boolean;
}