除了 Chat Completions API,OpenAI 还提供了多种其他接口,涵盖文本生成(Completions)、图像生成(DALL·E)、语音转录(Whisper)、文本向量化(Embeddings)等功能。以下是常用接口的详细说明及 curl 请求示例。


1. Text Completions(旧版文本生成)

适用于生成单轮文本(主要面向 GPT-3 系列模型)。

接口地址: POST https://api.openai.com/v1/completions

参数示例

curl https://api.openai.com/v1/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-davinci-003",
    "prompt": "写一首关于秋天的诗:",
    "temperature": 0.7,
    "max_tokens": 100
  }'

响应示例

{
  "id": "cmpl-xxx",
  "choices": [
    {
      "text": "秋风轻拂叶纷飞,金黄满地映斜晖...",
      "index": 0
    }
  ]
}

2. Image Generation(生成图片,DALL·E)

支持通过文本描述创建图像或对图片进行编辑。

接口地址: POST https://api.openai.com/v1/images/generations

参数示例

curl https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "一只戴着墨镜的柯基犬在海滩上冲浪",
    "n": 1,
    "size": "1024x1024",
    "response_format": "url"
  }'

参数说明

  • n: 生成图片的数量。
  • size: 图片尺寸,可选 256x256, 512x512, 1024x1024
  • response_format: 返回格式,可选 urlb64_json

响应示例

{
  "data": [
    {
      "url": "https://example.com/image.png"
    }
  ]
}

3. Audio Transcription(语音转文本,Whisper)

将音频文件转录为文本,支持多种语言识别。

接口地址: POST https://api.openai.com/v1/audio/transcriptions

参数示例

curl https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F file="@audio.mp3" \
  -F model="whisper-1" \
  -F response_format="text"

响应示例

今天天气很好,适合去公园散步。

4. Embeddings(文本向量化)

将文本转换为高维向量,常用于语义分析、相似度搜索等场景。

接口地址: POST https://api.openai.com/v1/embeddings

参数示例

curl https://api.openai.com/v1/embeddings \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-ada-002",
    "input": "机器学习是什么?"
  }'

响应示例

{
  "data": [
    {
      "embedding": [0.1, -0.2, 0.3, ...],
      "index": 0
    }
  ]
}
说明embedding 字段为高维向量数组(例如 ada-002 模型为 1536 维)。

5. Moderations(内容审核)

检测文本内容是否包含敏感、违规或潜在风险信息。

接口地址: POST https://api.openai.com/v1/moderations

参数示例

curl https://api.openai.com/v1/moderations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "这段话包含暴力内容吗?"
  }'

响应示例

{
  "results": [
    {
      "flagged": false,
      "categories": {
        "violence": false,
        "hate": false
      }
    }
  ]
}

6. Fine-tuning(模型微调)

基于自定义数据集对模型进行微调(需先上传训练文件)。

接口地址: POST https://api.openai.com/v1/fine_tuning/jobs

步骤示例

  1. 上传文件

    curl https://api.openai.com/v1/files \
      -H "Authorization: Bearer $OPENAI_API_KEY" \
      -F purpose="fine-tune" \
      -F file="@data.jsonl"
  2. 创建微调任务

    curl https://api.openai.com/v1/fine_tuning/jobs \
      -H "Authorization: Bearer $OPENAI_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "training_file": "file-xxx",
        "model": "gpt-3.5-turbo"
      }'

7. Files(文件管理)

管理上传到 OpenAI 平台的文件(例如微调数据文件)。

接口地址: GET https://api.openai.com/v1/files

示例:列出所有文件

curl https://api.openai.com/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY"

注意事项

  1. API 密钥:所有请求均需在 Header 中传递 Authorization: Bearer $OPENAI_API_KEY
  2. 费用:不同接口的计费标准不同,详情请参考 OpenAI 定价页
  3. 模型支持:部分接口仅限特定模型(例如 Whisper 接口仅支持 whisper-1)。
  4. 流式响应:若需流式传输(如逐字输出),可在请求参数中添加 "stream": true

建议结合 OpenAI 官方文档 查阅最新接口规范。

说明:部分接口及模型(如 text-davinci-003 及 Completions 接口)已逐步被新版 Chat Completions 接口取代或标记为遗留(Legacy),实际使用时请确认模型可用性及时效性。