返回首页

OpenAI API Documentation 快速入门

工具

Examples

Playground

了解标记和概率

分词器工具

GPT 比较工具

介绍

概述

OpenAI API 几乎可以应用于任何涉及理解或生成自然语言、代码或图像的任务。提供一系列具有不同功率级别的模型,适用于不同的任务,并且能够微调您自己的自定义模型。这些模型可用于从内容生成到语义搜索和分类的所有领域。

关键概念

Prompts

设计提示本质上是您“编程”模型的方式,通常是通过提供一些说明或一些示例。通过 completionschat completions 端点可用于几乎任何任务,包括内容或代码生成、摘要、扩展、对话、创意写作、风格转换等。

Tokens

模型通过将文本分解为标记来理解和处理文本。标记可以是单词或只是字符块。例如,单词“hamburger”被分解为标记“ham”、“bur”和“ger”,而像“pear”这样的短而常见的单词是一个标记。许多标记以空格开头,例如“ hello”和“ bye”。

在给定的 API 请求中处理的令牌数量取决于输入和输出的长度。根据粗略的经验法则,对于英文文本,1 个标记大约为 4 个字符或 0.75 个单词。要记住的一个限制是,您的文本提示和生成的完成组合不能超过模型的最大上下文长度(对于大多数模型,这是 2048 个标记,或大约 1500 个单词)。

Playground

了解标记和概率

我们的模型通过将文本分解为称为标记的更小单元来处理文本。标记可以是单词、单词块或单个字符。编辑下面的文本以查看它是如何被标记化的。

I have an orange cat named Butterscotch.

I`` have`` an`` orange`` cat`` named`` But``ters``cot``ch``.

像“cat”这样的常用词是单个标记,而不太常用的词通常被分解成多个标记。例如,“Butterscotch”翻译成四个标记:“But”、“ters”、“cot”和“ch”。许多标记以空格开头,例如“ hello”和“ bye”。

temperature 通常最好为所需输出明确定义的任务设置较低。较高的 temperature 对于需要多样性或创造力的任务可能很有用。

参考 了解标记和概率 有更好图形化展示。

Models

API 由一组具有不同功能和价位的模型提供支持。GPT-4 是我们最新、最强大的模型。GPT-3.5-Turbo 是为 ChatGPT 提供支持的模型,并针对对话格式进行了优化。

构建您的应用

Python 库

安装 Python 库:

pip install openai

安装后,您可以使用绑定和您的密钥运行以下命令:

import os
import openai

# Load your API key from an environment variable or secret management service
openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Completion.create(model="text-davinci-003", prompt="Say this is a test", temperature=0, max_tokens=7)

绑定还将安装一个命令行实用程序,您可以按如下方式使用:

openai api completions.create -m text-davinci-003 -p "Say this is a test" -t 0 -M 7 --stream

模型

找到合适的模型

您可以使用 GPT 比较工具,让您运行不同的模型来比较输出、设置和响应时间,然后将数据下载到 Excel 电子表格中。

审核模型(Moderation)

审核模型旨在检查内容是否符合 OpenAI 的使用政策。这些模型提供了查找以下类别内容的分类功能:仇恨、仇恨/威胁、自残、性、性/未成年人、暴力和暴力/图片。调用审核模型不会消耗您的 API 配额。

  • text-moderation-latest
  • text-moderation-stable
openai.Moderation.create(input="你不听话就砍死你")
{
  "id": "modr-7Askon0loMbb6b8vboSQ7Ep8348JA",
  "model": "text-moderation-004",
  "results": [
    {
      "categories": {
        "hate": false,
        "hate/threatening": false,
        "self-harm": false,
        "sexual": false,
        "sexual/minors": false,
        "violence": true,
        "violence/graphic": false
      },
      "category_scores": {
        "hate": 0.06359781324863434,
        "hate/threatening": 4.803388947038911e-05,
        "self-harm": 0.19698172807693481,
        "sexual": 5.2437906560953707e-05,
        "sexual/minors": 1.8810666357893524e-09,
        "violence": 0.9516809582710266,
        "violence/graphic": 1.668629738560412e-05
      },
      "flagged": true
    }
  ]
}
response = openai.Moderation.create(input="她们在床上做爱")
print(response["results"][0]["flagged"])
print(response["results"][0]["categories"])
True
{
  "hate": false,
  "hate/threatening": false,
  "self-harm": false,
  "sexual": true,
  "sexual/minors": false,
  "violence": false,
  "violence/graphic": false
}

通过 API 查看所有模型

安装依赖的库

pip install openai
pip install pandas
pip install tabulate

下面代码在 Jupyter Notebook 中开发的:

import os
import openai

import pandas as pd

# 设置 pandas 显示所有列
pd.options.display.max_rows = None
pd.options.display.max_columns = None
pd.options.display.max_colwidth = None
pd.options.display.width = None

openai.api_key = os.getenv('OPENAI_API_KEY')

# list models
models = openai.Model.list()

# JSON 格式转换为 DataFrame
df = pd.json_normalize(models['data'], ['permission'], record_prefix='permission_', meta=['id', 'created'], sep='_', errors='ignore')

# 移除不需要的列
df = df.drop(columns=['permission_id', 'permission_object', 'permission_created', 'permission_allow_create_engine', 
                      'permission_allow_sampling', 'permission_allow_logprobs', 'permission_allow_view', 'permission_organization', 
                      'permission_group', 'permission_is_blocking'])

# 转换时间戳
df['created'] = pd.to_datetime(df['created'], unit='s')

# 按照创建时间排序
df.sort_values(by=['created'], inplace=True, ascending=True)

# 重置索引
df.reset_index(drop=True, inplace=True)

# 调整显示列的顺序
df = df[['id', 'created', 'permission_allow_search_indices', 'permission_allow_fine_tuning']]

df

DataFrame 转换为 Markdown

df.to_markdown()
idcreatedpermission_allow_search_indicespermission_allow_fine_tuning
0cushman:2020-05-032020-05-28 00:18:30True
1ada:2020-05-032020-12-10 20:20:25
2babbage:2020-05-032020-12-10 20:36:51
3curie:2020-05-032020-12-10 20:38:45
4davinci:2020-05-032020-12-10 22:42:43
5if-curie-v22021-01-15 21:26:08
6if-davinci-v22021-01-15 21:26:30
7if-davinci:3.0.02021-08-20 00:52:35True
8davinci-if:3.0.02021-08-20 22:21:10True
9davinci-instruct-beta:2.0.02021-08-20 23:25:14True
10text-davinci:0012022-01-11 23:32:46
11text-ada:0012022-01-12 01:06:48
12text-curie:0012022-01-12 02:37:27
13text-babbage:0012022-01-12 20:12:50
14ada2022-04-07 18:51:31
15babbage2022-04-07 19:07:29
16davinci2022-04-07 19:31:14
17curie2022-04-07 19:31:14
18text-davinci-0012022-04-07 20:40:42
19text-ada-0012022-04-07 20:40:42
20curie-instruct-beta2022-04-07 20:40:42
21davinci-instruct-beta2022-04-07 20:40:42
22text-curie-0012022-04-07 20:40:43
23text-babbage-0012022-04-07 20:40:43
24text-davinci-edit-0012022-04-13 00:19:39
25code-davinci-edit-0012022-04-13 20:08:04
26text-davinci-0022022-04-13 20:08:04
27text-search-ada-query-0012022-04-28 19:01:45True
28text-search-davinci-doc-0012022-04-28 19:01:45True
29babbage-similarity2022-04-28 19:01:45True
30ada-code-search-code2022-04-28 19:01:45True
31text-search-davinci-query-0012022-04-28 19:01:45True
32text-similarity-davinci-0012022-04-28 19:01:45True
33davinci-search-query2022-04-28 19:01:45True
34text-similarity-ada-0012022-04-28 19:01:45True
35text-similarity-babbage-0012022-04-28 19:01:45True
36ada-search-query2022-04-28 19:01:45True
37code-search-babbage-text-0012022-04-28 19:01:47True
38code-search-babbage-code-0012022-04-28 19:01:47True
39text-search-ada-doc-0012022-04-28 19:01:47True
40ada-similarity2022-04-28 19:01:47True
41code-search-ada-text-0012022-04-28 19:01:47True
42text-similarity-curie-0012022-04-28 19:01:47True
43ada-search-document2022-04-28 19:01:47True
44code-search-ada-code-0012022-04-28 19:01:47True
45curie-search-document2022-04-28 19:01:48True
46curie-search-query2022-04-28 19:01:49True
47text-search-babbage-query-0012022-04-28 19:01:49True
48davinci-similarity2022-04-28 19:01:49True
49text-search-curie-query-0012022-04-28 19:01:49True
50text-search-babbage-doc-0012022-04-28 19:01:49True
51babbage-code-search-text2022-04-28 19:01:49True
52text-search-curie-doc-0012022-04-28 19:01:49True
53babbage-code-search-code2022-04-28 19:01:49True
54davinci-search-document2022-04-28 19:01:49True
55babbage-search-query2022-04-28 19:01:49True
56babbage-search-document2022-04-28 19:01:50True
57ada-code-search-text2022-04-28 19:01:50True
58curie-similarity2022-04-28 19:01:50True
59text-davinci-0032022-11-28 01:40:35
60text-embedding-ada-0022022-12-16 19:01:39True
61whisper-12023-02-27 21:13:04
62gpt-3.5-turbo2023-02-28 18:56:42
63gpt-3.5-turbo-03012023-03-01 05:52:43
🤖

智能问答助手

⏳ 初始化...

💡 配置和聊天记录仅保存在本地浏览器中