一、OpenAI 的 API 接口规范

OpenAI 的 API 接口规范是基于 RESTful API 设计的,主要用于与 OpenAI 的大型语言模型(如 GPT-3、GPT-4 等)进行交互。以下是 OpenAI API 的基本接口规范和使用方法:


1. API 基础信息

  • API 地址: https://api.openai.com/v1
  • 认证方式: 使用 API Key 进行身份验证。
    • 在请求头中添加 Authorization: Bearer <your-api-key>
  • 支持的模型: 包括 gpt-3.5-turbogpt-4 等。以及非OpenAI公司的号称兼容该规范的LLM(需稍作修改,如,API的地址)

2. 常用接口

(1) 文本生成接口
  • URL: POST https://api.openai.com/v1/chat/completions

  • 功能: 与模型进行对话或生成文本。

  • 请求示例:

    {
      "model": "gpt-3.5-turbo",
      "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello, how are you?"}
      ],
      "max_tokens": 100,
      "temperature": 0.7
    }
    
  • 参数说明:

    • model: 使用的模型名称(如 gpt-3.5-turbo)。
    • messages: 对话消息列表,每条消息包含 rolesystemuserassistant)和 content(消息内容)。
    • max_tokens: 生成的最大 token 数。
    • temperature: 控制生成文本的随机性(0-1,值越高越随机)。
    • top_p: 控制生成文本的多样性。
    • n: 生成多个回复。
    • stop: 停止生成的条件(如遇到特定字符串)。
    • stream: 是否以流式传输方式返回结果。
  • 响应示例:

    {
      "id": "chatcmpl-12345",
      "object": "chat.completion",
      "created": 1691234567,
      "choices": [
        {
          "index": 0,
          "message": {
            "role": "assistant",
            "content": "I'm fine, thank you! How can I help you today?"
          },
          "finish_reason": "stop"
        }
      ],
      "usage": {
        "prompt_tokens": 10,
        "completion_tokens": 20,
        "total_tokens": 30
      }
    }
    

(2) 模型列表接口
  • URL: GET https://api.openai.com/v1/models
  • 功能: 获取可用的模型列表。
  • 响应示例:
    {
      "data": [
        {
          "id": "gpt-3.5-turbo",
          "object": "model",
          "created": 1691234567,
          "owned_by": "openai"
        },
        {
          "id": "gpt-4",
          "object": "model",
          "created": 1691234568,
          "owned_by": "openai"
        }
      ]
    }
    

(3) 图像生成接口(DALL·E)
  • URL: POST https://api.openai.com/v1/images/generations
  • 功能: 根据文本描述生成图像。
  • 请求示例:
    {
      "prompt": "A cute cat sitting on a chair",
      "n": 1,
      "size": "1024x1024"
    }
    
  • 参数说明:
    • prompt: 图像生成的文本描述。
    • n: 生成图像的数量。
    • size: 图像分辨率(如 256x256512x5121024x1024)。
  • 响应示例:
    {
      "data": [
        {
          "url": "https://example.com/image.png"
        }
      ]
    }
    

3. 错误处理

OpenAI API 返回的错误信息通常包含以下字段:

  • error: 错误对象。
    • message: 错误描述。
    • type: 错误类型(如 invalid_request_error)。
    • code: 错误代码。

示例:

{
  "error": {
    "message": "You exceeded your current quota, please check your plan and billing details.",
    "type": "insufficient_quota",
    "code": "quota_exceeded"
  }
}

4. 使用示例(Python)

以下是一个使用 OpenAI API 进行文本生成的 Python 示例:

import openai

# 设置 API Key
openai.api_key = "your-api-key"

# 调用 API
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the capital of France?"}
    ],
    max_tokens=50
)

# 输出结果
print(response['choices'][0]['message']['content'])

5. 注意事项

  • API Key 安全: 不要将 API Key 暴露在客户端代码中。
  • 速率限制: OpenAI API 有速率限制,需根据订阅计划调整调用频率。
  • 费用: 使用 API 会产生费用,具体费用取决于模型和 token 使用量。

参考 OpenAI 的官方文档:OpenAI API Documentation。(由于是境外网,有时会连不上)

二、Python 的 openai

OpenAI 的 API 接口规范对应的 Python 库是 openai。这是一个官方提供的 Python 客户端库,用于与 OpenAI 的 API 进行交互,支持 GPT 系列模型、DALL·E、Whisper 等多种服务。

以下是关于 openai 库的详细介绍和使用方法:


1. 安装 openai

在 Python 环境中,可以通过 pip 安装 openai 库:

pip install openai

2. 设置 API Key

在使用 OpenAI API 之前,需要设置 API Key。可以通过以下方式设置:

import openai

# 设置 API Key
openai.api_key = "your-api-key"  # 替换为你的 OpenAI API Key

3. 主要功能模块

openai 库提供了多个模块,用于支持不同的 OpenAI 服务:

(1) 文本生成(Chat Completions)
  • 用于与 GPT 系列模型(如 gpt-3.5-turbogpt-4)进行对话或生成文本。
  • 示例:
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Hello, how are you?"}
        ],
        max_tokens=100,
        temperature=0.7
    )
    print(response['choices'][0]['message']['content'])
    
(2) 文本补全(Completions)
  • 用于与 GPT-3 系列模型(如 text-davinci-003)进行文本补全。
  • 示例:
    response = openai.Completion.create(
        model="text-davinci-003",
        prompt="Write a short story about a robot.",
        max_tokens=150,
        temperature=0.8
    )
    print(response['choices'][0]['text'])
    
(3) 图像生成(DALL·E)
  • 用于生成图像。
  • 示例:
    response = openai.Image.create(
        prompt="A cute cat sitting on a chair",
        n=1,
        size="1024x1024"
    )
    print(response['data'][0]['url'])
    
(4) 语音转文本(Whisper)
  • 用于将语音文件转换为文本。
  • 示例:
    with open("audio.mp3", "rb") as audio_file:
        response = openai.Audio.transcribe(
            model="whisper-1",
            file=audio_file
        )
    print(response['text'])
    
(5) 微调模型(Fine-tuning)
  • 用于微调自定义模型。
  • 示例:
    response = openai.FineTune.create(
        training_file="file-12345",
        model="davinci"
    )
    print(response)
    

4. 常用参数

以下是一些常用的 API 参数:

(1) 通用参数
  • model: 使用的模型名称(如 gpt-3.5-turbotext-davinci-003)。
  • max_tokens: 生成的最大 token 数。
  • temperature: 控制生成文本的随机性(0-2)。
  • top_p: 控制生成文本的多样性(0-1)。
  • n: 生成多个独立的回复。
  • stop: 指定停止符。
  • stream: 是否以流式传输方式返回结果。
(2) Chat Completions 参数
  • messages: 对话消息列表,包含 rolesystemuserassistant)和 content
(3) Completions 参数
  • prompt: 输入提示文本。
(4) Image 参数
  • prompt: 图像生成的文本描述。
  • n: 生成图像的数量。
  • size: 图像分辨率(如 256x256512x5121024x1024)。
(5) Audio 参数
  • file: 语音文件。
  • model: 使用的模型名称(如 whisper-1)。

5. 错误处理

OpenAI API 返回的错误信息通常包含以下字段:

  • error: 错误对象。
    • message: 错误描述。
    • type: 错误类型(如 invalid_request_error)。
    • code: 错误代码。

示例:

try:
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "user", "content": "Hello!"}
        ]
    )
except openai.error.OpenAIError as e:
    print(f"An error occurred: {e}")

6. 完整示例

以下是一个完整的示例,展示如何使用 openai 库生成文本:

import openai

# 设置 API Key
openai.api_key = "your-api-key"

# 调用 Chat Completions API
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the capital of France?"}
    ],
    max_tokens=50,
    temperature=0.7
)

# 输出结果
print(response['choices'][0]['message']['content'])

7. 官方文档


openai 库是 OpenAI 官方提供的 Python 客户端库,支持与 OpenAI API 的交互。通过该库,可以轻松调用 GPT 系列模型、DALL·E、Whisper 等服务。

通常来讲,国内LLM都支持openai库!!!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐