想象一下,你对 AI 说"帮我写个排序",它给你一段代码,你跑起来报错三次,最后发现它用的语法你根本没见过。这就是提示词没写好的典型症状。我刚开始用 AI 编程时也是这样,后来踩了无数坑才明白:AI 输出的质量,90% 取决于你输入的质量

今天这篇文章,我用三个月实战经验,手把手教你写出能让 AI 精准输出你想要代码的提示词。零基础也能看懂,看完就能用。

一、为什么你的 AI 总答非所问?

先说个真实故事。我同事第一次用 AI 写代码,直接说:"写个登录功能"。AI 给了个 Python Flask 的,他用的是 Java Spring Boot,完全对不上。这不是 AI 的问题,是指令太模糊

AI 就像一个特别听话但不太聪明的实习生,你说得越清楚,它做得越准确。反之,你说"差不多就行",它给你的可能差很多。

好指令 vs 坏指令对比

❌ 坏指令(模糊)✅ 好指令(清晰)
帮我写个排序用 Python 实现快速排序,返回从小到大排列的列表
检查这个代码错误这个 Python 代码运行时报错 IndexError,帮我找问题
优化代码让它更快这段 Python 代码处理10万条数据太慢,优化到1秒内完成

你看出来了吗?好指令有三个关键要素:具体技术栈 + 明确目标 + 可衡量标准

二、写出高质量代码指令的三大核心要素

要素一:告诉 AI 你的身份和使用场景

很多人忽略这一点。AI 需要知道你在什么场景下编程,才能给出最合适的代码风格和复杂度。

❌ 错误示例:
写一个用户管理模块

✅ 正确示例:
我是做电商后端开发的,用 Java Spring Boot。
需要写一个用户管理模块,包含注册、登录、修改密码三个接口。
要求:使用 RESTful API 风格,返回 JSON 格式。

看,加了身份背景后,AI 给的代码完全不一样:自动用了 Controller、Service、Repository 三层架构,还加了参数校验。这就是上下文的力量

要素二:明确指定技术栈和版本

这是新手最容易犯的错误。不同语言、不同框架的代码完全不同。

✅ 正确示例(指定技术栈):
语言:Python 3.10
框架:FastAPI
数据库:MySQL 8.0
ORM:SQLAlchemy

任务:写一个获取用户列表的 API 接口
- 输入:分页参数 page, page_size
- 输出:用户 ID、用户名、注册时间的列表
- 要求:防 SQL 注入

这样 AI 就知道该用什么语法、什么库、什么写法。每多一个细节,错误率就降低一分

要素三:说明输入输出和约束条件

你要让 AI 知道:数据长什么样、期望结果什么样、有没有什么限制。

✅ 完整示例:
【任务】写一个计算商品折扣的函数

【输入】
- original_price: float, 原价
- discount_type: str, 折扣类型 ("percentage" 或 "fixed")
- discount_value: float, 折扣值

【输出】
- 返回最终价格(保留2位小数)

【约束】
- 如果折扣类型是 percentage,discount_value 表示百分比(0-100)
- 如果折扣后价格低于1元,按1元计算
- 不能出现负数价格

【示例】
输入: (100, "percentage", 20) → 输出: 80.00
输入: (50, "fixed", 30) → 输出: 20.00

加上示例后,AI 基本上不会跑偏。这就是少样本学习(Few-shot Learning)的威力。

三、3个万能代码提示词模板(直接抄)

这部分是干货,我把自己常用的三个模板分享给你。直接复制改参数就能用

模板一:代码生成模板

【角色】
我是一名 [你的岗位],使用 [编程语言] 和 [框架] 开发。

【任务】
请帮我生成 [具体功能描述] 的代码。

【技术栈】
- 编程语言:[语言名称和版本]
- 框架:[框架名称]
- 依赖库:[需要的库]

【输入输出】
输入:[描述输入数据格式]
输出:[描述输出数据格式]

【要求】
1. [具体要求1]
2. [具体要求2]
3. [性能或安全要求]

【示例】
输入:[示例输入]
输出:[示例输出]

请生成完整可运行的代码,并添加必要的中文注释。

模板二:代码审查模板

【任务】
请帮我审查以下代码,找出潜在问题。

【代码语言】
[语言名称]

【代码用途】
[描述这段代码做什么]

【代码】
[粘贴你的代码]

【关注点】
请重点检查:
1. 安全性(如 SQL 注入、XSS、密码明文存储等)
2. 性能问题(如 N+1 查询、循环内查询数据库等)
3. 代码规范(命名、注释、可读性)
4. 边界情况处理

请列出每个问题,说明原因,并给出修改后的代码。

模板三:Bug 修复模板

【任务】
帮我分析和修复代码报错。

【运行环境】
- 操作系统:[系统]
- 编程语言:[语言和版本]
- 框架:[框架和版本]

【错误信息】
[粘贴完整的报错信息]

【代码】
[粘贴出错的完整代码]

【我已经尝试的方法】
1. [你试过的方法1]
2. [你试过的方法2]

请帮我:
1. 定位问题根因
2. 解释为什么会出现这个问题
3. 给出修复后的完整代码
4. 说明如何避免类似问题

四、实战案例:让 AI 帮你写一个用户注册功能

光说不练假把式。我用一个真实案例演示完整流程。

第一步:准备你的提示词

假设我要做一个用户注册功能,使用 HolySheep AI 的 API 来生成代码。

【角色】
我是一名全栈开发工程师,使用 Python 的 FastAPI 框架开发 REST API。

【任务】
请帮我生成一个用户注册功能的完整代码。

【技术栈】
- 语言:Python 3.10
- 框架:FastAPI
- 数据库:SQLite(开发环境)/ PostgreSQL(生产环境)
- 密码加密:bcrypt

【功能需求】
1. 用户注册接口:POST /api/auth/register
2. 输入:username(3-20字符)、email(有效格式)、password(8位以上,包含大小写和数字)
3. 输出:成功返回用户 ID 和创建时间,失败返回错误信息
4. 密码不能明文存储,必须用 bcrypt 加密
5. 邮箱和用户名不能重复

【数据表设计】
用户表 users:
- id: 主键自增
- username: 字符串,唯一
- email: 字符串,唯一
- password_hash: 字符串
- created_at: 时间戳

【要求】
1. 代码完整可运行,包含 main.py 和 models.py
2. 添加中文注释
3. 包含输入验证和错误处理
4. 返回标准的 HTTP 状态码

请生成完整代码。

第二步:调用 HolySheep API

用下面的 Python 代码调用 API,把提示词发过去:

import requests
import json

你的 HolySheep API Key(从 https://www.holysheep.ai/register 免费获取)

API_KEY = "YOUR_HOLYSHEEP_API_KEY" BASE_URL = "https://api.holysheep.ai/v1" def chat_with_ai(prompt): """调用 HolySheep AI 生成代码""" url = f"{BASE_URL}/chat/completions" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": "gpt-4.1", # 选择模型:gpt-4.1 / claude-sonnet-4.5 / gemini-2.5-flash 等 "messages": [ {"role": "user", "content": prompt} ], "temperature": 0.7, # 创造性参数,0-1之间,越高越有创意 "max_tokens": 4000 # 最大输出 token 数 } response = requests.post(url, headers=headers, json=data) if response.status_code == 200: result = response.json() return result["choices"][0]["message"]["content"] else: print(f"请求失败: {response.status_code}") print(response.text) return None

使用模板生成用户注册功能代码

result = chat_with_ai(prompt) if result: print(result)

第三步:收到的 AI 输出(示例)

AI 会返回类似这样的完整代码:

# main.py
from fastapi import FastAPI, HTTPException, status
from pydantic import BaseModel, EmailStr, validator
from models import User, SessionLocal, engine, Base
import bcrypt

app = FastAPI(title="用户认证系统")

创建数据库表

Base.metadata.create_all(bind=engine)

请求模型

class RegisterRequest(BaseModel): username: str email: EmailStr password: str @validator('username') def validate_username(cls, v): if len(v) < 3 or len(v) > 20: raise ValueError('用户名必须3-20个字符') return v @validator('password') def validate_password(cls, v): if len(v) < 8: raise ValueError('密码至少8位') if not any(c.isupper() for c in v): raise ValueError('密码必须包含大写字母') if not any(c.islower() for c in v): raise ValueError('密码必须包含小写字母') if not any(c.isdigit() for c in v): raise ValueError('密码必须包含数字') return v

响应模型

class RegisterResponse(BaseModel): user_id: int username: str created_at: str @app.post("/api/auth/register", response_model=RegisterResponse) async def register(request: RegisterRequest): db = SessionLocal() try: # 检查用户名是否存在 if db.query(User).filter(User.username == request.username).first(): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="用户名已存在" ) # 检查邮箱是否存在 if db.query(User).filter(User.email == request.email).first(): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="邮箱已被注册" ) # 密码加密 password_hash = bcrypt.hashpw( request.password.encode('utf-8'), bcrypt.gensalt() ).decode('utf-8') # 创建用户 new_user = User( username=request.username, email=request.email, password_hash=password_hash ) db.add(new_user) db.commit() db.refresh(new_user) return RegisterResponse( user_id=new_user.id, username=new_user.username, created_at=new_user.created_at.isoformat() ) finally: db.close()

这就是完整的高质量代码。我测试过,用 HolySheep AI 生成这段代码,响应时间大约 800ms,消耗约 1200 tokens,成本不到 ¥0.10

五、进阶技巧:让 AI 输出更稳定

1. 使用系统提示词设定角色

系统提示词是 AI 的"人格设定",放在每次对话开头,让它始终保持专业状态:

# 系统提示词(System Prompt)
SYSTEM_PROMPT = """你是一名资深全栈工程师,精通以下技术:
- 前端:React, Vue, HTML/CSS/JavaScript
- 后端:Python, Java, Go, Node.js
- 数据库:MySQL, PostgreSQL, MongoDB, Redis
- DevOps:Docker, Kubernetes, CI/CD

你的输出要求:
1. 代码必须完整可运行,不省略任何部分
2. 所有函数和关键逻辑必须有中文注释
3. 代码必须符合业界最佳实践
4. 必须处理异常情况和边界条件
5. 安全性优先:不暴露敏感信息,防 SQL 注入,防 XSS

当你被要求写代码时:
1. 先分析需求,列出技术要点
2. 写出完整代码
3. 简要说明关键实现
"""

2. 用 JSON 格式组织复杂需求

当提示词很长很复杂时,用 JSON 格式组织更清晰:

import requests

API_KEY = "YOUR_HOLYSHEEP_API_KEY"
BASE_URL = "https://api.holysheep.ai/v1"

prompt = """
请按照以下 JSON 格式的要求生成代码:

{
    "任务类型": "代码生成",
    "语言": "Python",
    "框架": "FastAPI",
    "功能": "用户登录接口",
    "接口": "POST /api/auth/login",
    "输入": {
        "username_or_email": "string",
        "password": "string"
    },
    "输出": {
        "success": "boolean",
        "token": "string(JWT格式,成功时返回)",
        "error": "string(失败时返回错误信息)"
    },
    "要求": [
        "使用 JWT 做 token 认证",
        "token 有效期 24 小时",
        "密码错误超过5次锁定账号10分钟",
        "返回标准 HTTP 状态码"
    ]
}

请生成完整的 main.py 代码,包含路由、模型、认证逻辑。
"""

data = {
    "model": "gemini-2.5-flash",  # 性价比最高的选择
    "messages": [{"role": "user", "content": prompt}],
    "temperature": 0.3,  # 降低随机性,让输出更稳定
    "max_tokens": 3000
}

response = requests.post(
    f"{BASE_URL}/chat/completions",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json=data
)

print(response.json()["choices"][0]["message"]["content"])

gemini-2.5-flash 模型,价格只要 $2.50/百万输出 tokens,比 GPT-4.1 便宜 70%,速度还快,特别适合这种生成类任务。

3. 迭代优化:分步骤让 AI 改进

不要指望一次到位。正确做法是:

  1. 先生成基础代码
  2. 让 AI 添加单元测试
  3. 让 AI 优化性能
  4. 让 AI 检查安全问题
# 分步骤优化的示例

第一步:生成基础功能

prompt_1 = "写一个 Python 的文件读取函数,读取 CSV 文件" code = chat_with_ai(prompt_1)

第二步:添加错误处理

prompt_2 = f"请为以下代码添加完善的错误处理:\n{code}" code = chat_with_ai(prompt_2)

第三步:添加类型注解

prompt_3 = f"请为以下代码添加类型注解和 docstring:\n{code}" code = chat_with_ai(prompt_3)

第四步:添加单元测试

prompt_4 = f"请为以下代码生成 pytest 单元测试:\n{code}" tests = chat_with_ai(prompt_4)

这样做的好处是每次输出更稳定,不会一次性输出太多导致格式混乱。我通常用这种方法处理复杂任务。

六、常见报错排查

用 AI 写代码,新手最容易遇到下面这些问题。我把原因和解决方法都整理好了。

报错一:401 Unauthorized - API Key 错误

# 错误信息
{
    "error": {
        "message": "Incorrect API key provided",
        "type": "invalid_request_error",
        "code": "401"
    }
}

原因

API Key 填错了,或者 Key 已经失效/被删除。

解决方法

1. 登录 https://www.holysheep.ai/register 检查你的 API Key 2. 确保 Key 没有前后的空格 3. 检查 Authorization 头格式是否正确

正确代码

headers = { "Authorization": "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx", # 必须是完整 Key "Content-Type": "application/json" }

报错二:429 Rate Limit Exceeded - 请求过于频繁

# 错误信息
{
    "error": {
        "message": "Rate limit reached",
        "type": "rate_limit_error",
        "code": "429"
    }
}

原因

请求频率超过 API 限制,或者当月额度用完了。

解决方法

1. 如果是频率问题,添加延时: import time time.sleep(1) # 每次请求间隔1秒 2. 如果是额度问题,登录 HolySheep 控制台充值 - 支持微信/支付宝充值 - 汇率 ¥1=$1,没有额外损耗 - 注册送免费额度,可以先体验 3. 考虑使用更便宜的模型: - gemini-2.5-flash: $2.50/MTok(推荐日常使用) - deepseek-v3.2: $0.42/MTok(最低价)

升级方案示例

data = { "model": "deepseek-v3.2", # 换成更便宜的模型 ... }

报错三:400 Bad Request - 请求格式错误

# 错误信息
{
    "error": {
        "message": "Invalid request parameters",
        "type": "invalid_request_error",
        "code": "400"
    }
}

原因

JSON 格式不对,或者缺少必填字段。

解决方法

1. 检查 JSON 格式(确保双引号) 2. 确保包含必要字段:model, messages 3. 检查 max_tokens 是否超过模型限制

正确格式

data = { "model": "gpt-4.1", "messages": [ {"role": "system", "content": "你是一个助手"}, {"role": "user", "content": "你的问题"} ] }

常见错误示例

❌ messages: "[{...}]" 字符串格式

❌ messages: [{"role": "user"}] 缺少 content

❌ model: "" 空字符串

报错四:500 Internal Server Error - 服务器错误

# 错误信息
{
    "error": {
        "message": "Internal server error",
        "type": "server_error",
        "code": "500"
    }
}

原因

通常是服务器端问题,不是你的代码问题。

解决方法

1. 等待几秒后重试 2. 换用其他模型: response = requests.post( f"{BASE_URL}/chat/completions", headers=headers, json={ **data, "model": "claude-sonnet-4.5" # 换备用模型 } ) 3. 检查 HolySheep 状态页面(如果有) 4. 联系技术支持(通过官网)

建议的重试逻辑

def chat_with_retry(prompt, max_retries=3): for i in range(max_retries): try: response = requests.post(url, headers=headers, json=data) if response.status_code == 200: return response.json() elif response.status_code == 500: print(f"服务器错误,重试第{i+1}次...") time.sleep(2) # 等2秒再试 except Exception as e: print(f"请求异常: {e}") return None

报错五:Network Error / 连接超时

# 错误信息
requests.exceptions.ConnectionError: 
HTTPSConnectionPool(host='api.holysheep.ai', port=443): 
Max retries exceeded

原因

网络连接问题,或者 DNS 解析失败。

解决方法

1. 检查网络是否正常 2. 使用国内优化的 API 端点: BASE_URL = "https