文本生成

学习如何提示模型生成文本。


文本输入和输出

使用 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 果汁盒"
          }
      }
  }'

下一步