想象一下,你对 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 改进
不要指望一次到位。正确做法是:
- 先生成基础代码
- 让 AI 添加单元测试
- 让 AI 优化性能
- 让 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