在这里插入图片描述

  【个人主页:玄同765

大语言模型(LLM)开发工程师中国传媒大学·数字媒体技术(智能交互与游戏设计)

深耕领域:大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调

技术栈:Python / LangChain/RAG(Dify+Redis+Milvus)| SQL/NumPy | FastAPI+Docker ️

工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案 

     

「让AI交互更智能,让技术落地更高效」

欢迎技术探讨/项目合作! 关注我,解锁大模型与智能交互的无限可能!


核心内容:本文将深入解析TRAE IDE中的6大实用提示词技巧,从产品设计到数据库建表、从前后端对接到业务逻辑表达,帮助你掌握与AI协作开发的最佳实践。


一、引言:提示词工程的重要性

1.1 什么是提示词工程

提示词工程(Prompt Engineering) 是指通过精心设计和优化输入给AI模型的指令,以获得更准确、更有用的输出结果的技术。在TRAE这样的AI原生IDE中,掌握提示词技巧可以大幅提升开发效率。

1.2 为什么提示词技巧很重要

┌─────────────────────────────────────────────────────────────┐
│                    提示词技巧的价值                          │
├─────────────────────────────────────────────────────────────┤
│  ✅ 提高AI输出质量      - 获得更准确、更完整的代码            │
│  ✅ 减少迭代次数        - 一次性获得满意的结果                │
│  ✅ 降低沟通成本        - 清晰表达需求,减少误解              │
│  ✅ 标准化开发流程      - 建立团队统一的AI协作规范            │
│  ✅ 提升开发效率        - 从需求到代码的端到端自动化          │
└─────────────────────────────────────────────────────────────┘

二、六大核心提示词技巧详解

2.1 技巧一:怎样写产品设计书?

2.1.1 技巧说明

通过结构化的提示词,让AI生成完整的产品设计文档,包含技术栈推荐、数据库设计、接口规范等核心内容。

2.1.2 标准提示词模板
请帮我生成一份产品设计书,包含以下内容:

1. 技术栈推荐(前端、后端、数据库)
2. 数据库设计(表、字段、关系)
3. 接口规范(统一请求/响应格式)
4. 模块及功能详细描述
5. 业务流程说明

项目背景:
- 项目名称:[你的项目名称]
- 目标用户:[目标用户群体]
- 核心功能:[主要功能点]
- 技术约束:[如有特殊要求请说明]
2.1.3 实际应用示例

示例:电商后台管理系统

请帮我生成一份产品设计书,包含以下内容:

1. 技术栈推荐(前端、后端、数据库)
2. 数据库设计(表、字段、关系)
3. 接口规范(统一请求/响应格式)
4. 模块及功能详细描述
5. 业务流程说明

项目背景:
- 项目名称:电商后台管理系统
- 目标用户:电商运营人员、管理员
- 核心功能:商品管理、订单管理、用户管理、数据统计
- 技术约束:使用Vue3 + Spring Boot + MySQL
2.1.4 AI输出示例
# 电商后台管理系统 - 产品设计书

## 1. 技术栈推荐

### 前端
- **框架**: Vue 3 + TypeScript
- **UI组件库**: Element Plus
- **状态管理**: Pinia
- **路由**: Vue Router 4
- **HTTP客户端**: Axios

### 后端
- **框架**: Spring Boot 3.x
- **数据库**: MySQL 8.0
- **缓存**: Redis
- **ORM**: MyBatis Plus
- **安全**: Spring Security + JWT

## 2. 数据库设计

### 核心表结构

#### 用户表 (users)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增 |
| username | VARCHAR(50) | 用户名 |
| email | VARCHAR(100) | 邮箱 |
| role | TINYINT | 角色:1-管理员 2-运营 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |

#### 商品表 (products)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增 |
| name | VARCHAR(200) | 商品名称 |
| price | DECIMAL(10,2) | 价格 |
| stock | INT | 库存 |
| status | TINYINT | 状态:0-下架 1-上架 |
| created_at | DATETIME | 创建时间 |

...(更多表结构)

## 3. 接口规范

### 统一响应格式
    ```json
    {
      "status": 200,
      "message": "操作成功",
      "data": {}
    }
    ```

### 标准HTTP状态码
- 200: 成功
- 400: 请求参数错误
- 401: 未授权
- 500: 服务器内部错误

## 4. 模块及功能详细描述

| 模块名称 | 功能点 | 功能描述 | 优先级 |
|---------|--------|----------|--------|
| **商品管理** | 商品列表 | 分页展示商品,支持筛选和排序 | 高 |
| | 商品新增/编辑 | 表单录入商品信息,图片上传 | 高 |
| | 商品上下架 | 控制商品在前端的展示状态 | 高 |
| | 库存管理 | 实时库存查询和预警设置 | 中 |
| **订单管理** | 订单列表 | 分页展示订单,多维度筛选 | 高 |
| | 订单详情 | 展示订单完整信息和物流状态 | 高 |
| | 订单状态流转 | 待付款→已付款→待发货→已发货→已完成 | 高 |
| | 退款处理 | 处理用户退款申请,原路退回 | 中 |
| **用户管理** | 用户列表 | 管理注册用户信息和状态 | 中 |
| | 权限管理 | 分配用户角色和菜单权限 | 中 |
| | 登录日志 | 记录用户登录历史和IP | 低 |
| **数据统计** | 销售报表 | 按日/周/月统计销售额和订单量 | 中 |
| | 商品分析 | 热销商品排行和库存周转率 | 中 |
| | 用户分析 | 新用户增长和活跃用户统计 | 低
2.1.5 最佳实践
  1. 明确项目背景:提供足够的上下文信息
  2. 指定技术约束:如果有技术栈要求,务必提前说明
  3. 分步骤生成:如果文档较长,可以分模块逐步生成
  4. 迭代优化:根据初稿进行补充和调整

2.2 技巧二:数据库建表

2.2.1 技巧说明

基于产品设计书中的数据库设计,生成标准化的SQL建表语句,包含完整的数据类型、注释、索引等。

2.2.2 标准提示词模板

请根据产品设计书中的数据库设计,生成SQL建表语句。

要求:
1. 所有字段有清晰的数据类型和注释
2. 主键/外键/索引明确
3. 适当增加created_at, updated_at字段
4. 使用标准SQL语法(MySQL/PostgreSQL)
5. 添加表级和字段级注释

参考文档:@产品设计书.md


#### 2.2.3 实际应用示例

请根据以下数据库设计,生成MySQL建表语句。

用户表设计:
- id: 主键,自增
- username: 用户名,唯一,长度50
- email: 邮箱,唯一,长度100
- password: 密码,长度255(存储加密后的密码)
- role: 角色,1-管理员 2-用户
- status: 状态,0-禁用 1-启用
- created_at: 创建时间
- updated_at: 更新时间

要求:
1. 使用InnoDB引擎
2. 字符集utf8mb4
3. 添加合适的索引
4. 所有字段添加注释


#### 2.2.4 AI输出示例

```sql
-- 用户表
CREATE TABLE `users` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` VARCHAR(50) NOT NULL COMMENT '用户名',
  `email` VARCHAR(100) NOT NULL COMMENT '邮箱地址',
  `password` VARCHAR(255) NOT NULL COMMENT '加密密码',
  `role` TINYINT NOT NULL DEFAULT 2 COMMENT '角色:1-管理员 2-用户',
  `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用 1-启用',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_username` (`username`),
  UNIQUE KEY `uk_email` (`email`),
  KEY `idx_role` (`role`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';

-- 商品表
CREATE TABLE `products` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` VARCHAR(200) NOT NULL COMMENT '商品名称',
  `description` TEXT COMMENT '商品描述',
  `price` DECIMAL(10,2) NOT NULL COMMENT '商品价格',
  `stock` INT NOT NULL DEFAULT 0 COMMENT '库存数量',
  `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-下架 1-上架',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_status` (`status`),
  KEY `idx_price` (`price`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品表';
2.2.5 最佳实践
  1. 指定数据库类型:MySQL、PostgreSQL、Oracle等语法有差异
  2. 明确字段约束:NOT NULL、DEFAULT、UNIQUE等
  3. 合理设计索引:主键、外键、查询常用字段加索引
  4. 添加注释:方便后续维护和理解
  5. 标准化命名:使用下划线命名法,表名单数或复数统一

2.3 技巧三:前端直接对接后端

2.3.1 技巧说明

通过引用UI设计文档和后端接口文档,让AI生成完整的前端页面代码,并自动对接后端API。

2.3.2 标准提示词模板
@UI页面设计文档 @后端接口开发指南.md

请根据UI页面设计文档生成前端页面代码,
并调用对应的后端接口,保证功能正常运行。

要求:
1. 使用[技术栈,如Vue3/React]实现
2. 严格按照UI设计实现样式
3. 正确调用后端接口
4. 处理loading状态和错误提示
5. 添加表单验证
6. 响应式布局适配
2.3.3 实际应用示例
@商品列表UI设计.md @商品管理接口文档.md

请生成商品列表页面,包含以下功能:
1. 商品列表展示(表格形式)
2. 分页功能
3. 按商品名称搜索
4. 按状态筛选
5. 新增/编辑/删除商品按钮

技术要求:
- 使用Vue3 + Element Plus
- 使用Composition API
- 对接后端RESTful接口
- 添加TypeScript类型定义
2.3.4 AI输出示例
<template>
  <div class="product-list">
    <!-- 搜索栏 -->
    <el-card class="search-card">
      <el-form :model="searchForm" inline>
        <el-form-item label="商品名称">
          <el-input v-model="searchForm.name" placeholder="请输入商品名称" clearable />
        </el-form-item>
        <el-form-item label="状态">
          <el-select v-model="searchForm.status" placeholder="请选择状态" clearable>
            <el-option label="上架" :value="1" />
            <el-option label="下架" :value="0" />
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="handleSearch">搜索</el-button>
          <el-button @click="handleReset">重置</el-button>
        </el-form-item>
      </el-form>
    </el-card>

    <!-- 操作栏 -->
    <el-card class="table-card">
      <template #header>
        <div class="card-header">
          <span>商品列表</span>
          <el-button type="primary" @click="handleAdd">新增商品</el-button>
        </div>
      </template>

      <!-- 数据表格 -->
      <el-table :data="productList" v-loading="loading" border>
        <el-table-column prop="id" label="ID" width="80" />
        <el-table-column prop="name" label="商品名称" min-width="200" />
        <el-table-column prop="price" label="价格" width="120">
          <template #default="{ row }">
            ¥{{ row.price }}
          </template>
        </el-table-column>
        <el-table-column prop="stock" label="库存" width="100" />
        <el-table-column prop="status" label="状态" width="100">
          <template #default="{ row }">
            <el-tag :type="row.status === 1 ? 'success' : 'info'">
              {{ row.status === 1 ? '上架' : '下架' }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column label="操作" width="200" fixed="right">
          <template #default="{ row }">
            <el-button type="primary" link @click="handleEdit(row)">编辑</el-button>
            <el-button type="danger" link @click="handleDelete(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>

      <!-- 分页 -->
      <el-pagination
        v-model:current-page="pagination.page"
        v-model:page-size="pagination.pageSize"
        :total="pagination.total"
        :page-sizes="[10, 20, 50, 100]"
        layout="total, sizes, prev, pager, next, jumper"
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
      />
    </el-card>
  </div>
</template>

<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getProductList, deleteProduct } from '@/api/product'

// 类型定义
interface Product {
  id: number
  name: string
  price: number
  stock: number
  status: number
}

interface Pagination {
  page: number
  pageSize: number
  total: number
}

// 响应式数据
const loading = ref(false)
const productList = ref<Product[]>([])

const searchForm = reactive({
  name: '',
  status: undefined as number | undefined
})

const pagination = reactive<Pagination>({
  page: 1,
  pageSize: 10,
  total: 0
})

// 获取商品列表
const fetchProductList = async () => {
  loading.value = true
  try {
    const res = await getProductList({
      page: pagination.page,
      pageSize: pagination.pageSize,
      name: searchForm.name,
      status: searchForm.status
    })
    productList.value = res.data.list
    pagination.total = res.data.total
  } catch (error) {
    ElMessage.error('获取商品列表失败')
  } finally {
    loading.value = false
  }
}

// 搜索
const handleSearch = () => {
  pagination.page = 1
  fetchProductList()
}

// 重置
const handleReset = () => {
  searchForm.name = ''
  searchForm.status = undefined
  handleSearch()
}

// 分页大小变化
const handleSizeChange = (val: number) => {
  pagination.pageSize = val
  fetchProductList()
}

// 页码变化
const handlePageChange = (val: number) => {
  pagination.page = val
  fetchProductList()
}

// 新增
const handleAdd = () => {
  // 跳转到新增页面或打开弹窗
}

// 编辑
const handleEdit = (row: Product) => {
  // 跳转到编辑页面或打开弹窗
}

// 删除
const handleDelete = async (row: Product) => {
  try {
    await ElMessageBox.confirm('确认删除该商品吗?', '提示', {
      type: 'warning'
    })
    await deleteProduct(row.id)
    ElMessage.success('删除成功')
    fetchProductList()
  } catch (error) {
    // 用户取消或删除失败
  }
}

// 初始化
onMounted(() => {
  fetchProductList()
})
</script>

<style scoped>
.product-list {
  padding: 20px;
}

.search-card {
  margin-bottom: 20px;
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.el-pagination {
  margin-top: 20px;
  justify-content: flex-end;
}
</style>
2.3.5 最佳实践
  1. 提供完整的设计文档:UI设计和接口文档要详细
  2. 明确技术栈:指定前端框架、组件库、状态管理方案
  3. 要求类型定义:TypeScript类型可以提高代码质量
  4. 包含错误处理:loading状态、错误提示、表单验证
  5. 模块化组织:API调用、类型定义、组件逻辑分离

2.4 技巧四:只需一套表达式!写清楚任何业务逻辑

2.4.1 技巧说明

使用结构化的"如果...那么...否则如果...否则"表达式,清晰描述复杂的业务逻辑规则。

2.4.2 标准表达式模板
如果 【条件1】 且 【条件2】
    那么 【结果1】
否则如果 【条件3】
    那么 【结果2】
否则
    【结果3】
2.4.3 实际应用示例

示例1:订单状态流转

订单状态流转规则:

如果 【订单状态 = "待付款"】 且 【当前时间 < 订单创建时间 + 30分钟】
    那么 【用户可以支付订单】
否则如果 【订单状态 = "待付款"】 且 【当前时间 >= 订单创建时间 + 30分钟】
    那么 【订单自动取消,状态变为"已取消"】
否则如果 【订单状态 = "已付款"】 且 【库存充足】
    那么 【订单状态变为"待发货",扣减库存】
否则如果 【订单状态 = "已付款"】 且 【库存不足】
    那么 【触发退款流程,订单状态变为"退款中"】
否则如果 【订单状态 = "待发货"】 且 【管理员点击发货】
    那么 【订单状态变为"已发货",记录物流信息】
否则如果 【订单状态 = "已发货"】 且 【用户确认收货】
    那么 【订单状态变为"已完成"】
否则
    【保持当前状态,记录操作日志】

示例2:会员等级计算

会员等级计算规则:

如果 【累计消费金额 >= 10000元】 且 【注册时间 >= 1年】
    那么 【会员等级 = "钻石会员",享受8折优惠】
否则如果 【累计消费金额 >= 5000元】 且 【注册时间 >= 6个月】
    那么 【会员等级 = "白金会员",享受8.5折优惠】
否则如果 【累计消费金额 >= 2000元】
    那么 【会员等级 = "黄金会员",享受9折优惠】
否则如果 【累计消费金额 >= 500元】
    那么 【会员等级 = "白银会员",享受9.5折优惠】
否则
    【会员等级 = "普通会员",无折扣】
2.4.4 AI输出示例

基于上述业务逻辑,AI可以生成对应的代码实现:

# 订单状态流转逻辑
def process_order(order, action=None):
    """
    处理订单状态流转
    """
    from datetime import datetime, timedelta

    current_time = datetime.now()
    order_time = order.created_at

    # 如果订单状态为待付款且未超时
    if order.status == "待付款" and current_time < order_time + timedelta(minutes=30):
        return {"allow_payment": True, "message": "可以支付订单"}

    # 如果订单状态为待付款但已超时
    elif order.status == "待付款" and current_time >= order_time + timedelta(minutes=30):
        order.status = "已取消"
        order.save()
        return {"status_changed": True, "new_status": "已取消", "message": "订单已自动取消"}

    # 如果订单已付款且库存充足
    elif order.status == "已付款" and order.product.stock >= order.quantity:
        order.status = "待发货"
        order.product.stock -= order.quantity
        order.product.save()
        order.save()
        return {"status_changed": True, "new_status": "待发货", "message": "订单待发货,库存已扣减"}

    # 如果订单已付款但库存不足
    elif order.status == "已付款" and order.product.stock < order.quantity:
        order.status = "退款中"
        order.save()
        # 触发退款流程
        process_refund(order)
        return {"status_changed": True, "new_status": "退款中", "message": "库存不足,已触发退款"}

    # 如果订单待发货且管理员点击发货
    elif order.status == "待发货" and action == "发货":
        order.status = "已发货"
        order.save()
        return {"status_changed": True, "new_status": "已发货", "message": "订单已发货"}

    # 如果订单已发货且用户确认收货
    elif order.status == "已发货" and action == "确认收货":
        order.status = "已完成"
        order.save()
        return {"status_changed": True, "new_status": "已完成", "message": "订单已完成"}

    # 其他情况
    else:
        log_operation(order, "状态检查")
        return {"status_changed": False, "current_status": order.status}


# 会员等级计算
def calculate_member_level(user):
    """
    计算会员等级
    """
    from datetime import datetime, timedelta

    total_amount = user.total_consumption
    register_days = (datetime.now() - user.created_at).days

    # 钻石会员
    if total_amount >= 10000 and register_days >= 365:
        return {
            "level": "钻石会员",
            "discount": 0.8,
            "benefits": ["专属客服", "优先发货", "生日礼品"]
        }

    # 白金会员
    elif total_amount >= 5000 and register_days >= 180:
        return {
            "level": "白金会员",
            "discount": 0.85,
            "benefits": ["专属客服", "优先发货"]
        }

    # 黄金会员
    elif total_amount >= 2000:
        return {
            "level": "黄金会员",
            "discount": 0.9,
            "benefits": ["积分加倍"]
        }

    # 白银会员
    elif total_amount >= 500:
        return {
            "level": "白银会员",
            "discount": 0.95,
            "benefits": []
        }

    # 普通会员
    else:
        return {
            "level": "普通会员",
            "discount": 1.0,
            "benefits": []
        }
2.4.5 最佳实践
  1. 条件要完整:考虑所有可能的情况和边界条件
  2. 逻辑要互斥:确保条件之间不会同时满足(除非故意设计)
  3. 顺序很重要:将最具体的条件放在前面,通用的放在后面
  4. 添加注释:为复杂的业务规则添加说明
  5. 使用表格辅助:对于多维度规则,可以用决策表辅助表达

2.5 技巧五:怎样获得标准化接口文档?

2.5.1 技巧说明

基于产品设计书,生成结构化的后端接口开发指南,包含完整的接口定义、请求/响应格式、错误码等。

2.5.2 标准提示词模板
@产品设计书.md

请根据这份产品设计书,生成后端接口开发指南。

要求:
1. 按模块 → 功能 → 接口三级结构列出
2. 每个接口写明:
   - 请求地址(URL)
   - 请求方式(GET/POST/PUT/DELETE)
   - 请求参数(名称、类型、必填、说明)
   - 响应内容(成功/失败示例)
3. 响应内容必须统一设计(status, message, data 三个字段)
4. 添加接口权限说明(是否需要登录、角色要求)
5. 添加错误码定义
2.5.3 实际应用示例
@电商后台管理系统设计书.md

请生成商品管理模块的接口文档。

要求:
1. 包含商品列表、商品详情、新增商品、编辑商品、删除商品、上下架商品接口
2. 使用RESTful API设计风格
3. 请求参数使用驼峰命名
4. 响应统一格式:{ status: 200, message: "", data: {} }
5. 添加分页参数说明
6. 添加接口权限:管理员可操作,运营只能查看
2.5.4 AI输出示例
# 商品管理模块 - 接口文档

## 接口概览

| 接口名称 | 请求方式 | URL | 权限 |
|---------|---------|-----|------|
| 获取商品列表 | GET | /api/products | 管理员/运营 |
| 获取商品详情 | GET | /api/products/{id} | 管理员/运营 |
| 新增商品 | POST | /api/products | 管理员 |
| 编辑商品 | PUT | /api/products/{id} | 管理员 |
| 删除商品 | DELETE | /api/products/{id} | 管理员 |
| 商品上下架 | PATCH | /api/products/{id}/status | 管理员 |

---

## 1. 获取商品列表

### 基本信息
- **接口URL**: `/api/products`
- **请求方式**: GET
- **接口说明**: 分页获取商品列表,支持筛选和排序

### 请求参数

#### Query参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| page | int | 否 | 页码,默认1 |
| pageSize | int | 否 | 每页数量,默认10 |
| name | string | 否 | 商品名称模糊搜索 |
| status | int | 否 | 状态:0-下架 1-上架 |
| minPrice | decimal | 否 | 最低价格 |
| maxPrice | decimal | 否 | 最高价格 |
| sortField | string | 否 | 排序字段:price/createdAt |
| sortOrder | string | 否 | 排序方式:asc/desc |

### 响应参数

#### 成功响应 (200)

    json
    {
      "status": 200,
      "message": "操作成功",
      "data": {
        "list": [
      {
        "id": 1,
        "name": "iPhone 15 Pro",
        "price": 7999.00,
        "stock": 100,
        "status": 1,
        "createdAt": "2024-01-15 10:30:00"
      }
    ],
    "pagination": {
      "page": 1,
      "pageSize": 10,
      "total": 100,
      "totalPages": 10
    }
  }
}


#### 失败响应

    ```json
    {
      "status": 400,
      "message": "请求参数错误",
      "data": null
    }
    ```

---

## 2. 新增商品

### 基本信息
- **接口URL**: `/api/products`
- **请求方式**: POST
- **接口说明**: 新增商品信息

### 请求参数

#### Body参数 (application/json)

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| name | string | 是 | 商品名称,2-200字符 |
| description | string | 否 | 商品描述 |
| price | decimal | 是 | 商品价格,必须>0 |
| stock | int | 是 | 库存数量,必须>=0 |
| categoryId | int | 是 | 分类ID |
| images | array | 否 | 商品图片URL数组 |

### 请求示例

    json
    {
      "name": "iPhone 15 Pro",
      "description": "最新款iPhone",
      "price": 7999.00,
      "stock": 100,
      "categoryId": 1,
      "images": ["https://example.com/img1.jpg"]
    }


### 响应参数

#### 成功响应 (200)


    {
      "status": 200,
      "message": "商品创建成功",
      "data": {
        "id": 1,
        "name": "iPhone 15 Pro",
        "price": 7999.00,
        "stock": 100,
        "status": 1,
        "createdAt": "2024-01-15 10:30:00"
      }
    }


---

## 错误码定义

| 错误码 | 说明 |
|--------|------|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未授权,请重新登录 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
| 1001 | 商品名称已存在 |
| 1002 | 库存不足 |
| 1003 | 商品分类不存在 |
2.5.5 最佳实践
  1. 统一响应格式:所有接口使用相同的响应结构
  2. 清晰的参数说明:包括类型、必填、取值范围、示例值
  3. 完整的示例:提供请求和响应的完整JSON示例
  4. 错误码规范:定义统一的错误码体系
  5. 权限说明明确:标注每个接口的访问权限要求
  6. 版本控制:在URL或Header中体现API版本

2.6 技巧六:如何保证功能不遗漏?

2.6.1 技巧说明

通过系统化的功能分析提示词,让AI帮助检查功能完整性,并补充可能遗漏的功能点。

2.6.2 标准提示词模板
我想做一个关于【xxx】的系统/应用,
功能包括【功能1、功能2、功能3...】,
请帮我分析是否完整,并补充缺失的功能。

要求:
1. 按模块分类列出所有功能
2. 区分核心功能和扩展功能
3. 补充可能遗漏的边界情况处理
4. 考虑管理员/用户不同角色的功能需求
5. 添加数据安全和权限控制相关功能
2.6.3 实际应用示例
我想做一个关于【在线图书管理系统】的应用,
功能包括:
- 图书列表展示
- 图书搜索
- 图书借阅
- 图书归还

请帮我分析是否完整,并补充缺失的功能。

目标用户:图书馆管理员和读者
使用场景:学校图书馆
2.6.4 AI输出示例
# 在线图书管理系统 - 功能完整性分析

## 现有功能评估

您提供的功能覆盖了核心业务,但缺少一些重要的支撑功能和边界处理。

## 功能补充建议

### 核心功能模块

#### 1. 图书管理模块
**已有功能:**
- ✅ 图书列表展示
- ✅ 图书搜索

**建议补充:**
- 📌 图书分类管理(科技、文学、历史等)
- 📌 图书详情展示(ISBN、作者、出版社、简介)
- 📌 图书入库/出库管理
- 📌 图书库存预警(库存不足提醒)
- 📌 图书损坏/遗失登记

#### 2. 借阅管理模块
**已有功能:**
- ✅ 图书借阅
- ✅ 图书归还

**建议补充:**
- 📌 借阅期限设置(不同类型图书不同期限)
- 📌 续借功能
- 📌 逾期提醒(短信/邮件/站内信)
- 📌 逾期罚款计算
- 📌 借阅历史查询
- 📌 当前借阅状态查询

#### 3. 用户管理模块(新增)
**核心功能:**
- 📌 读者注册/登录
- 📌 读者信息管理
- 📌 借阅证管理(办理、挂失、补办)
- 📌 读者信用评分
- 📌 黑名单管理(违规读者)

#### 4. 预约管理模块(新增)
**核心功能:**
- 📌 图书预约(已被借出的书)
- 📌 预约提醒(图书归还后通知)
- 📌 预约取消
- 📌 预约优先级管理

#### 5. 数据统计模块(新增)
**核心功能:**
- 📌 借阅统计(按天/周/月/年)
- 📌 热门图书排行
- 📌 读者借阅排行
- 📌 图书流通率分析
- 📌 数据报表导出

#### 6. 系统管理模块(新增)
**核心功能:**
- 📌 管理员账号管理
- 📌 角色权限管理
- 📌 系统参数配置(借阅期限、罚款标准等)
- 📌 操作日志记录
- 📌 数据备份与恢复

### 边界情况处理

1. **并发控制**
   - 同一本书被多人同时预约的处理
   - 库存为1时的借阅冲突处理

2. **异常处理**
   - 图书丢失后的赔偿流程
   - 读者证丢失后的处理
   - 系统故障时的数据恢复

3. **数据一致性**
   - 借阅/归还时的库存同步
   - 逾期状态的自动更新

### 权限控制矩阵

| 功能 | 管理员 | 普通读者 |
|------|--------|----------|
| 图书管理 | ✅ | ❌ |
| 借阅/归还 | ✅ | 仅限自己 |
| 用户管理 | ✅ | 仅限自己 |
| 数据统计 | ✅ | 个人数据 |
| 预约图书 | ✅ | ✅ |
| 查看图书 | ✅ | ✅ |

### 推荐开发优先级

**第一阶段(MVP):**
1. 图书管理(增删改查)
2. 用户管理(注册登录)
3. 借阅/归还(核心流程)

**第二阶段:**
4. 图书搜索和分类
5. 借阅历史查询
6. 逾期提醒

**第三阶段:**
7. 图书预约
8. 数据统计
9. 系统管理

**第四阶段:**
10. 高级功能(信用评分、推荐系统等)
2.6.5 最佳实践
  1. 明确目标用户:不同用户群体需要不同的功能
  2. 区分核心与扩展:优先保证核心功能完整
  3. 考虑边界情况:异常流程和并发问题
  4. 权限分离:不同角色有不同的功能权限
  5. 分阶段开发:按优先级分阶段实现
  6. 参考竞品:对比同类产品,学习其功能设计

三、综合实战:从需求到代码的完整流程

3.1 实战场景

假设我们要开发一个【在线考试系统】,展示如何使用以上6个技巧完成从需求分析到代码生成的全过程。

3.2 完整工作流程

Step 1: 功能完整性分析(技巧六)
我想做一个关于【在线考试系统】的应用,
功能包括:
- 创建考试
- 学生答题
- 自动评分
- 成绩查看

请帮我分析是否完整,并补充缺失的功能。
Step 2: 生成产品设计书(技巧一)

基于补充后的功能列表,生成完整的产品设计书。

Step 3: 生成数据库表结构(技巧二)

根据产品设计书中的数据库设计,生成SQL建表语句。

Step 4: 生成接口文档(技巧五)

基于产品设计书,生成标准化的后端接口文档。

Step 5: 编写业务逻辑(技巧四)

使用结构化表达式描述复杂的考试规则:

考试规则:

如果 【当前时间 < 考试开始时间】
    那么 【显示"考试未开始",显示倒计时】
否则如果 【当前时间 >= 考试开始时间】 且 【当前时间 <= 考试结束时间】 且 【学生未交卷】
    那么 【允许进入考试,开始计时】
否则如果 【当前时间 > 考试结束时间】 且 【学生未交卷】
    那么 【自动交卷,按已答题目评分】
否则如果 【学生已交卷】
    那么 【显示"已完成考试",展示成绩】
否则
    【显示错误信息】
Step 6: 生成前端页面(技巧三)

引用UI设计文档和接口文档,生成完整的前端代码。

3.3 效率提升对比

阶段 传统开发 使用TRAE提示词技巧 效率提升
需求分析 2天 2小时 8倍
产品设计 3天 4小时 6倍
数据库设计 1天 1小时 8倍
接口设计 2天 2小时 8倍
前端开发 5天 1天 5倍
总计 13天 2天 6.5倍

四、提示词优化技巧

4.1 提示词编写原则

  1. 明确具体:避免模糊描述,提供具体的要求和约束
  2. 结构化组织:使用编号、列表、表格组织信息
  3. 提供上下文:给出足够的背景信息和业务场景
  4. 示例驱动:提供输入/输出示例,帮助AI理解期望
  5. 迭代优化:根据输出结果不断调整提示词

4.2 常用提示词模板

代码生成类
请生成【功能描述】的代码。

技术要求:
- 语言/框架:【如Python/Java/Vue3】
- 设计模式:【如MVC/工厂模式】
- 代码规范:【如PEP8/Google Style】

功能要求:
1. 【要求1】
2. 【要求2】
3. 【要求3】

其他说明:
- 【补充说明1】
- 【补充说明2】
文档生成类
请生成【文档类型】。

参考信息:
【提供相关背景资料】

内容要求:
1. 【章节1】
2. 【章节2】
3. 【章节3】

格式要求:
- 【格式要求1】
- 【格式要求2】
问题分析类
请分析以下问题并提供解决方案。

问题描述:
【详细描述问题】

当前情况:
【描述现状】

期望结果:
【描述期望】

约束条件:
- 【约束1】
- 【约束2】

4.3 常见错误与解决方案

错误类型 示例 解决方案
过于模糊 "帮我写个功能" 明确功能名称、输入输出、业务规则
缺少上下文 "优化这段代码" 提供代码用途、性能要求、运行环境
要求冲突 "既要简单又要功能完整" 明确优先级,分阶段实现
术语不一致 混用"用户"和"客户" 统一术语表,明确定义
边界不清 未说明异常情况 列出所有边界条件和异常场景

五、总结与建议

5.1 核心要点回顾

  1. 产品设计书生成:结构化描述需求,获得完整的技术方案
  2. 数据库建表:明确字段约束和索引,获得标准化SQL
  3. 前后端对接:引用设计文档,获得可运行的完整代码
  4. 业务逻辑表达:使用"如果...那么...否则"结构化表达规则
  5. 接口文档生成:统一格式规范,获得完整的API文档
  6. 功能完整性检查:系统化分析,避免功能遗漏

5.2 使用建议

  1. 从简单开始:先掌握基础提示词,再逐步学习高级技巧
  2. 建立模板库:将常用的提示词整理成模板,重复使用
  3. 团队协作:统一团队的提示词规范,提高协作效率
  4. 持续优化:根据实际使用效果,不断优化提示词
  5. 结合人工审核:AI生成的内容需要人工审核和调整

5.3 进阶学习资源


结语:掌握这6大提示词技巧,你将能够充分发挥TRAE AI IDE的能力,从需求分析到代码生成,实现开发效率的质的飞跃。记住,好的提示词是AI协作开发的关键!

下一步行动
1. 收藏本文作为提示词参考手册
2. 在实际项目中尝试使用这些技巧
3. 根据项目特点,建立专属的提示词模板库
4. 与团队分享,建立统一的AI协作规范

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐