文本生成
学习如何提示模型生成文本。
文本输入和输出
使用 OpenAI API,你可以使用大型语言模型从提示中生成文本,类似于使用 ChatGPT。模型可以生成几乎任何类型的文本响应,如代码、数学方程、结构化 JSON 数据或类人散文。
从简单提示生成文本
以下是使用 Responses API(推荐用于所有新项目)的简单示例:
cURL 示例
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5",
"input": "写一个关于独角兽的睡前故事,只有一句话。"
}'
Python 示例
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5",
input="写一个关于独角兽的睡前故事,只有一句话。"
)
print(response.output_text)
输出示例:
[
{
"id": "msg_67b73f697ba4819183a15cc17d011509",
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "在柔和的月光下,独角兽露娜在闪烁的星尘田野中翩翩起舞,为每个熟睡的孩子留下梦的轨迹。",
"annotations": []
}
]
}
]
注意:
output数组通常包含多个项目,可能包含工具调用、推理模型生成的数据等。不能假设模型的文本输出总是位于output[0].content[0].text。
提示工程
提示工程 是为模型编写有效指令的过程,使其能够一致生成符合你要求的内容。
选择模型和 API
OpenAI 提供多种模型和 API 可供选择。推理模型(如 o3 和 GPT-5)与聊天模型的行为不同,对不同的提示响应更好。如果你正在构建任何文本生成应用,我们建议使用 Responses API 而不是旧的 Chat Completions API。
消息角色和指令遵循
你可以通过 instructions API 参数和 消息角色 以不同的权限级别向模型提供指令。
developer:由应用开发者提供的指令,优先级高于用户消息。user:由最终用户提供的指令,优先级低于开发者消息。assistant:由模型生成的消息。
示例:使用指令和消息角色
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5",
"reasoning": {"effort": "low"},
"instructions": "像海盗一样说话。",
"input": "JavaScript 中的分号是可选的吗?"
}'
可重用提示
在 OpenAI 仪表板中,你可以创建可重用的提示模板,并在 API 请求中使用,而不必在代码中指定提示内容。这样可以更轻松地构建和评估提示,并部署改进后的提示版本而无需更改集成代码。
示例:使用提示模板
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5",
"prompt": {
"id": "pmpt_abc123",
"version": "2",
"variables": {
"customer_name": "Jane Doe",
"product": "40oz 果汁盒"
}
}
}'