Вы можете взаимодействовать с API через HTTP-запросы на любом языке, через наши официальные Python-библиотеки, нашу официальную библиотеку Node.js, или библиотеку, поддерживаемую сообществом.

Чтобы установить официальные Python-библиотеки, выполните следующую команду:

pip install openai

Чтобы установить официальную библиотеку Node.js, выполните следующую команду в директории вашего проекта на Node.js:

npm install openai@^4.0.0

API OpenAI использует ключи API для аутентификации. В России доступ к API OpenAI ограничен. Получить ключ API можно с помощью сервиса ProxyAPI - доступ к OpenAI API в России.

Помните, что ваш ключ API - это секрет! Не делитесь им с другими или не показывайте его в каком-либо коде на стороне клиента (браузеры, приложения). Запросы в рабочем окружении должны быть направлены через ваш собственный серверный бэкенд, где ваш ключ API может быть безопасно загружен из переменной среды окружения или службы управления ключами.

Все запросы к API должны включать ваш ключ API в HTTP заголовке Authorization в следующем виде:

Authorization: Bearer OPENAI_API_KEY

Для пользователей, которые принадлежат к нескольким организациям, вы можете передать заголовок, чтобы указать, какая организация используется для запроса к API. Использование из этих запросов к API будет считаться использованием для указанной организации.

Пример команды curl:

1curl https://api.openai.com/v1/models \
2  -H "Authorization: Bearer $OPENAI_API_KEY" \
3  -H "OpenAI-Organization: YOUR_ORG_ID"

Пример с пакетом openai для Python:

1from openai import OpenAI
2
3client = OpenAI(
4  organization='YOUR_ORG_ID',
5)

Пример с пакетом openai для Node.js:

1import OpenAI from "openai";
2
3const openai = new OpenAI({
4  organization: 'YOUR_ORG_ID',
5});

Идентификаторы организаций можно найти на странице настроек вашей организации.

Вы можете вставить команду ниже в ваш терминал, чтобы выполнить ваш первый запрос к API. Убедитесь, что вы заменили $OPENAI_API_KEY на ваш секретный ключ API.

1curl https://api.openai.com/v1/chat/completions \
2  -H "Content-Type: application/json" \
3  -H "Authorization: Bearer $OPENAI_API_KEY" \
4  -d '{
5     "model": "gpt-3.5-turbo",
6     "messages": [{"role": "user", "content": "Say this is a test!"}],
7     "temperature": 0.7
8   }'

Этот запрос обращается к модели gpt-3.5-turbo (которая под капотом указывает на последнюю вариацию модели gpt-3.5-turbo), чтобы дополнить текст начиная с prompt "Say this is a test". Вы должны получить ответ, похожий на следующий:

1{
2    "id": "chatcmpl-abc123",
3    "object": "chat.completion",
4    "created": 1677858242,
5    "model": "gpt-3.5-turbo-1106",
6    "usage": {
7        "prompt_tokens": 13,
8        "completion_tokens": 7,
9        "total_tokens": 20
10    },
11    "choices": [
12        {
13            "message": {
14                "role": "assistant",
15                "content": "\n\nThis is a test!"
16            },
17            "logprobs": null,
18            "finish_reason": "stop",
19            "index": 0
20        }
21    ]
22}

Теперь, когда вы сгенерировали ваш первый ответ чата, давайте разберем объект ответа. Мы видим, что finish_reason равен stop, что означает, что API вернул полное завершение чата, сгенерированное моделью, без каких-либо ограничений. В списке выборов мы сгенерировали только одно сообщение, но вы можете установить параметр n, чтобы генерировать несколько вариантов сообщений.

API OpenAI предоставляет возможность передавать ответы клиенту в потоковом режиме, чтобы позволить получать частичные результаты для определенных запросов. Для этого мы следуем стандарту События, отправляемые сервером.

Наши официальные библиотеки Node и Python обрабатывают События, отправляемые сервером, за вас. В Python потоковый запрос выглядит так:

1from openai import OpenAI
2
3client = OpenAI()
4
5stream = client.chat.completions.create(
6    model="gpt-4",
7    messages=[{"role": "user", "content": "Say this is a test"}],
8    stream=True,
9)
10for chunk in stream:
11    if chunk.choices[0].delta.content is not None:
12        print(chunk.choices[0].delta.content, end="")

В Node / Typescript потоковый запрос выглядит так:

1import OpenAI from "openai";
2
3const openai = new OpenAI();
4
5async function main() {
6    const stream = await openai.chat.completions.create({
7        model: "gpt-4",
8        messages: [{ role: "user", content: "Say this is a test" }],
9        stream: true,
10    });
11    for await (const chunk of stream) {
12        process.stdout.write(chunk.choices[0]?.delta?.content || "");
13    }
14}
15
16main();

Разбор событий, отправляемых сервером, не тривиален и должен выполняться с осторожностью. Простые стратегии, такие как разделение по новой строке, могут привести к ошибкам разбора. Мы рекомендуем использовать существующие клиентские библиотеки, когда это возможно.

Узнайте, как превратить аудио в текст или текст в аудио.

Связанное руководство: Речь в текст

POST https://api.openai.com/v1/audio/speech

Генерирует аудио из входного текста.

Тело запроса

model
строка
Обязательно
Одна из доступных моделей TTS: tts-1 или tts-1-hd

input
строка
Обязательно
Текст для генерации аудио. Максимальная длина составляет 4096 символов.

voice
строка
Обязательно
Голос, который следует использовать при генерации аудио. Поддерживаемые голоса: alloy, echo, fable, onyx, nova, и shimmer.

response_format
строка
Необязательно
По умолчанию mp3
Формат аудио. Поддерживаемые форматы: mp3, opus, aac, и flac.

speed
число
Необязательно
По умолчанию 1
Скорость генерируемого аудио. Выберите значение от 0.25 до 4.0. По умолчанию 1.0.

Возвращает

Содержимое аудиофайла.

Пример запроса
1curl https://api.openai.com/v1/audio/speech
2  -H "Authorization: Bearer $OPENAI_API_KEY"
3  -H "Content-Type: application/json"
4  -d '{
5    "model": "tts-1",
6    "input": "The quick brown fox jumped over the lazy dog.",
7    "voice": "alloy"
8  }'
9  --output speech.mp3
POST https://api.openai.com/v1/audio/transcriptions

Транскрибирует аудио в язык ввода.

Тело запроса

file
file
Требуется
Объект аудиофайла (не имя файла) для транскрипции, в одном из этих форматов: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, или webm.

model
string
Требуется
ID модели, которую следует использовать. В настоящее время доступна только whisper-1.

language
string
Необязательно
Язык входного аудио. Указание языка ввода в формате ISO-639-1 повысит точность и уменьшит задержку.

prompt
string
Необязательно
Необязательный текст для управления стилем модели или продолжения предыдущего аудиосегмента. prompt должен соответствовать языку аудио.

response_format
string
Необязательно
По умолчанию json
Формат вывода транскрипции, один из этих вариантов: json, text, srt, verbose_json, или vtt.

temperature
number
Необязательно
По умолчанию 0
Параметр температуры выборки, между 0 и 1. Высокие значения, например 0.8, сделают вывод более случайным, в то время как более низкие значения, например 0.2, сделают его более сосредоточенным и детерминированным. Если установлено в 0, модель будет использовать логарифмическую вероятность для автоматического повышения температуры до достижения определенных порогов.

Возвращает

Транскрибированный текст.

Пример запроса
1curl https://api.openai.com/v1/audio/transcriptions
2  -H "Authorization: Bearer $OPENAI_API_KEY"
3  -H "Content-Type: multipart/form-data"
4  -F file="@/path/to/file/audio.mp3"
5  -F model="whisper-1"
Ответ
1{
2  "text": "Представьте самую дикую идею, которая у вас когда-либо была, и вас интересует, как она может масштабироваться до чего-то в 100, в 1000 раз большего. Это место, где вы можете это сделать."
3}
POST https://api.openai.com/v1/audio/translations

Переводит аудио на английский.

Тело запроса

file
file
Требуется
Объект аудиофайла (а не имя файла) для транскрипции, в одном из этих форматов: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, или webm.

model
string
Требуется
ID модели для использования. В настоящее время доступна только whisper-1.

language
string
Опционально
Язык входного аудио. Указание языка входных данных в формате ISO-639-1 улучшит точность и скорость обработки.

prompt
string
Опционально
Необязательный текст для направления стиля модели или продолжения предыдущего аудиосегмента. prompt должен соответствовать языку аудио.

response_format
string
Опционально
По умолчанию json
Формат выходных данных транскрипции, один из следующих вариантов: json, text, srt, verbose_json, или vtt.

temperature
number
Опционально
По умолчанию 0
Температура выборки, между 0 и 1. Более высокие значения, такие как 0.8, сделают вывод более случайным, в то время как более низкие значения, такие как 0.2, сделают его более сосредоточенным и детерминированным. Если установлено значение 0, модель будет использовать логарифмическую вероятность для автоматического увеличения температуры до достижения определенных порогов.

Возвращает

Переведенный текст.

Пример запроса
1curl https://api.openai.com/v1/audio/transcriptions
2  -H "Authorization: Bearer $OPENAI_API_KEY"
3  -H "Content-Type: multipart/form-data"
4  -F file="@/path/to/file/german.m4a"
5  -F model="whisper-1"
Ответ
1{
2"text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?"
3}

Учитывая список сообщений, составляющих беседу, модель вернет ответ.

Связанное руководство: Chat Completions

POST https://api.openai.com/v1/chat/completions

Создает ответ модели для данного чата.

Тело запроса

messages
array
Требуется
Список сообщений, составляющих беседу до этого момента.

model
string
Required
ID используемой модели. См. таблицу совместимости модели с эндпоинтом для подробностей о том, какие модели работают с Chat API.

frequency_penalty
number or null
Optional
По умолчанию 0
Число между -2.0 и 2.0. Положительные значения штрафуют новые токены на основе их текущей частоты в тексте, снижая вероятность того, что модель повторит одну и ту же строку дословно.

Подробнее о штрафах за частоту и присутствие.

logit_bias
map
Optional
По умолчанию null
Изменяет вероятность появления определенных токенов в завершении.

Принимает объект JSON, который отображает токены (указанные по их идентификатору токена в токенизаторе) на связанное с ним значение смещения от -100 до 100. Математически, смещение добавляется к логитам, генерируемым моделью перед выборкой. Точное влияние будет варьироваться в зависимости от модели, но значения между -1 и 1 должны уменьшать или увеличивать вероятность выбора; значения вроде -100 или 100 должны привести к запрету или исключительному выбору соответствующего токена.

logprobs
boolean or null
Optional
По умолчанию false
Возвращать ли логарифмические вероятности выходных токенов или нет. Если true, возвращает логарифмические вероятности каждого выходного токена, содержащегося в content сообщения. Этот параметр в настоящее время недоступен для модели gpt-4-vision-preview.

top_logprobs
integer or null
Optional
Целое число от 0 до 5, указывающее количество наиболее вероятных токенов для возвращения в каждой позиции токена, каждый с ассоциированной логарифмической вероятностью. logprobs должен быть установлен в true, если используется этот параметр.

max_tokens
integer or null
Optional
Максимальное количество токенов, которые могут быть сгенерированы в завершении чата.

n
integer or null
Optional
По умолчанию 1
Сколько вариантов завершения чата генерировать для каждого входного сообщения. Обратите внимание, что вы будете оплачивать на основе количества сгенерированных токенов по всем вариантам. Оставьте n равным 1, чтобы минимизировать затраты.

presence_penalty
number or null
Optional
По умолчанию 0
Число между -2.0 и 2.0. Положительные значения накладывают штраф на новые токены в зависимости от того, появляются ли они в тексте до сих пор, увеличивая вероятность модели говорить о новых темах.

response_format
object
Optional
Объект, указывающий формат, который должна выводить модель. Совместим со gpt-4-1106-preview и gpt-3.5-turbo-1106.

Установка в \{ "type": "json_object" } включает режим JSON, который гарантирует, что сообщение, генерируемое моделью, является допустимым JSON.

Важно: при использовании режима JSON вы должны также инструктировать модель производить JSON самостоятельно с помощью системного или пользовательского сообщения. Без этого модель может генерировать бесконечный поток пробелов, пока генерация не достигнет лимита токенов, что приведет к длительному и кажущемуся "застрявшим" запросу. Также обратите внимание, что содержимое сообщения может быть частично обрезано, если finish_reason="length", что указывает на превышение генерацией max_tokens или превышение максимальной длины контекста разговора.

seed
integer or null
Optional
Эта функция находится в Бета версии. Если указано, наша система будет прилагать максимум усилий для детерминированной выборки так, что повторные запросы с тем же seed и параметрами должны возвращать один и тот же результат. Детерминизм не гарантируется, и вы должны обращаться к параметру ответа system_fingerprint для мониторинга изменений в бэкенде.

stop
string / array / null
Optional
По умолчанию null
До 4 последовательностей, после которых API прекратит генерировать дополнительные токены.

stream
boolean or null
Optional
По умолчанию false
Если установлено, будут отправляться частичные изменения сообщений, как в ChatGPT. Токены будут отправляться как данные только server-sent events по мере их появления, с завершением потока сообщением data: [DONE].

temperature
number or null
Optional
По умолчанию 1
Какую температуру выборки использовать, между 0 и 2. Более высокие значения, такие как 0.8, сделают вывод более случайным, в то время как более низкие значения, такие как 0.2, сделают его более сосредоточенным и детерминированным.

Мы обычно рекомендуем изменять это или top_p, но не оба сразу.

top_p
number or null
Optional
Defaults to 1
Альтернативный метод выборки с температурой, называемый семплированием ядра, когда модель учитывает результаты токенов с вероятностной массой top_p. Таким образом, 0,1 означает, что учитываются только токены, составляющие верхние 10% вероятностной массы.

Мы обычно рекомендуем изменять это или temperature, но не оба сразу.

tools
array
Optional
Список инструментов, которые модель может вызывать. В настоящее время поддерживаются только функции в качестве инструмента. Используйте это для предоставления списка функций, для которых модель может генерировать входные данные JSON.

tool_choice
string или object
Optional
Контролирует, какая (если таковая имеется) функция вызывается моделью. none означает, что модель не будет вызывать функцию и вместо этого сгенерирует сообщение. auto означает, что модель может выбирать между генерацией сообщения или вызовом функции. Указание конкретной функции через \{"type": "function", "function": {"name": "my_function"}} заставляет модель вызвать эту функцию.

none является значением по умолчанию, когда функции отсутствуют. auto является значением по умолчанию, если функции присутствуют.

user
string
Optional
Уникальный идентификатор, представляющий вашего конечного пользователя, который может помочь OpenAI отследить и обнаружить злоупотребления.

function_call
Deprecated
string или object
Optional
Устарело в пользу tool_choice. Определяет, какая (если таковая имеется) функция вызывается моделью. none означает, что модель не будет вызывать функцию, а вместо этого генерирует сообщение. auto означает, что модель может выбирать между генерацией сообщения или вызовом функции. Указание конкретной функции через \{"name": "my_function"} заставляет модель вызвать эту функцию.

none является значением по умолчанию, когда функции отсутствуют. auto является значением по умолчанию, если функции присутствуют.

functions
Устаревшее
array
Optional
Устаревшее в пользу tools.

Список функций, для которых модель может генерировать входные данные JSON.

Возвращает

Возвращает объект chat completion или потоковую последовательность объектов chat completion chunk, если запрос потоковый.

  • Default
  • Image input
  • Streaming
  • Functions
  • Logprobs
Пример запроса
1curl https://api.openai.com/v1/chat/completions
2  -H "Content-Type: application/json"
3  -H "Authorization: Bearer $OPENAI_API_KEY"
4  -d '{
5    "model": "gpt-3.5-turbo",
6    "messages": [
7      {
8        "role": "system",
9        "content": "You are a helpful assistant."
10      },
11      {
12        "role": "user",
13        "content": "Hello!"
14      }
15    ]
16  }'
Ответ
1{
2  "id": "chatcmpl-123",
3  "object": "chat.completion",
4  "created": 1677652288,
5  "model": "gpt-3.5-turbo-0613",
6  "system_fingerprint": "fp_44709d6fcb",
7  "choices": [{
8    "index": 0,
9    "message": {
10      "role": "assistant",
11      "content": "
12
13Здравствуйте, как я могу помочь вам сегодня?",
14    },
15    "logprobs": null,
16    "finish_reason": "stop"
17  }],
18  "usage": {
19    "prompt_tokens": 9,
20    "completion_tokens": 12,
21    "total_tokens": 21
22  }
23}

Представляет собой ответ завершения чата, возвращаемый моделью на основе предоставленного ввода.

id
string
Уникальный идентификатор завершения чата.

choices
array
Список вариантов завершения чата. Их может быть больше одного, если n больше 1.

created
integer
Временная метка Unix (в секундах) создания завершения чата.

model
string
Модель, использованная для завершения чата.

system_fingerprint
string
Этот отпечаток представляет конфигурацию бэкенда, на которой работает модель.

Может использоваться в сочетании с параметром запроса seed для понимания, когда были сделаны изменения в backend, которые могут повлиять на детерминизм.

object
string
Тип объекта, который всегда chat.completion.

usage
object
Статистика использования для запроса на завершение.

Объект завершения чата
1{
2  "id": "chatcmpl-123",
3  "object": "chat.completion",
4  "created": 1677652288,
5  "model": "gpt-3.5-turbo-0613",
6  "system_fingerprint": "fp_44709d6fcb",
7  "choices": [{
8    "index": 0,
9    "message": {
10      "role": "assistant",
11      "content": "
12
13Здравствуйте, чем я могу вам помочь сегодня?",
14    },
15    "logprobs": null,
16    "finish_reason": "stop"
17  }],
18  "usage": {
19    "prompt_tokens": 9,
20    "completion_tokens": 12,
21    "total_tokens": 21
22  }
23}

Представляет потоковую часть ответа на завершение чата, возвращаемую моделью, на основе предоставленного ввода.

id
string
Уникальный идентификатор завершения чата. У каждой части один и тот же ID.

choices
array
Список вариантов завершения чата. Может быть более одного, если n больше 1.

created
integer
Временная метка Unix (в секундах) создания завершения чата. Каждый фрагмент имеет одинаковую временную метку.

model
string
Модель для генерации завершения.

system_fingerprint
string
Этот отпечаток представляет конфигурацию бэкэнда, с которой работает модель. Может быть использован в сочетании с параметром запроса seed, чтобы понять, когда были сделаны изменения в бэкэнде, которые могут повлиять на детерминизм.

object
string
Тип объекта, который всегда chat.completion.chunk.

Объект части завершения чата
1{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0613", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
2
3{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0613", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}]}
4
5{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0613", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}]}
6
7....
8
9{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0613", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":" today"},"logprobs":null,"finish_reason":null}]}
10
11{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0613", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"?"},"logprobs":null,"finish_reason":null}]}
12
13{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0613", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}

Получите векторное представление заданного входа, которое легко может быть использовано машинными учебными моделями и алгоритмами.

Связанное руководство: Embeddings

POST https://api.openai.com/v1/embeddings

Создает embedding вводимого текста.

Тело запроса

input
строка или массив
Требуется
Текст ввода для встраивания, закодированный как строка или массив токенов. Чтобы встроить несколько вводов в одном запросе, передайте массив строк или массив массивов токенов. Ввод не должен превышать максимальное количество токенов для модели (8192 токена для text-embedding-ada-002), не может быть пустой строкой, и любой массив должен быть размером 2048 измерений или меньше.

model
string
Требуется
ID модели для использования. Вы можете использовать List models API чтобы увидеть все доступные вам модели, или посмотрите наш Обзор моделей для описаний их.

encoding_format
string
Опционально
По умолчанию float
Формат для возврата embedding. Может быть либо float, либо base64.

user
string
Опционально
Уникальный идентификатор, представляющий вашего конечного пользователя, который может помочь OpenAI мониторить и обнаруживать злоупотребления.

Возвращает

Список объектов embedding.

Пример запроса
1curl https://api.openai.com/v1/embeddings
2  -H "Authorization: Bearer $OPENAI_API_KEY"
3  -H "Content-Type: application/json"
4  -d '{
5    "input": "The food was delicious and the waiter...",
6    "model": "text-embedding-ada-002",
7    "encoding_format": "float"
8  }'
Ответ
1{
2  "object": "list",
3  "data": [
4    {
5      "object": "embedding",
6      "embedding": [
7        0.0023064255,
8        -0.009327292,
9        .... (1536 floats total for ada-002)
10        -0.0028842222,
11      ],
12      "index": 0
13    }
14  ],
15  "model": "text-embedding-ada-002",
16  "usage": {
17    "prompt_tokens": 8,
18    "total_tokens": 8
19  }
20}

Представляет собой вектор embedding, возвращаемый эндпоинтом embedding.

index
integer
Индекс embedding в списке embeddings.

embedding
array
Embedding, представляющий собой список вещественных чисел. Длина вектора зависит от модели, как указано в Справочник API.

object
string
Тип объекта, который всегда "embedding".

Embedding
1{
2  "object": "embedding",
3  "embedding": [
4    0.0023064255,
5    -0.009327292,
6    .... (1536 floats total for ada-002)
7    -0.0028842222,
8  ],
9  "index": 0
10}

Данная модель создает новое изображение на основе подсказки и/или входного изображения.

Смежное руководство: Генерация изображений

POST https://api.openai.com/v1/images/generations

Создает изображение по подсказке.

Тело запроса

prompt
string
Обязательный
Текстовое описание желаемых изображений. Максимальная длина 1000 символов для dall-e-2 и 4000 символов для dall-e-3.

model
string
Необязательный
По умолчанию dall-e-2
Модель, используемая для генерации изображений.

n
integer or null
Необязательный
По умолчанию 1
Количество генерируемых изображений. Должно быть от 1 до 10. Для dall-e-3 поддерживается только n=1.

quality
string
Необязательный
По умолчанию standard
Качество генерируемого изображения. hd создает изображения с более тонкими деталями и большей согласованностью по всему изображению. Этот параметр поддерживается только для dall-e-3.

response_format
string or null
Необязательный
По умолчанию url
Формат возвращаемых сгенерированных изображений. Должен быть одним из url или b64_json.

size
string or null
Необязательный
По умолчанию 1024x1024
Размер сгенерированных изображений. Должен быть одним из 256x256, 512x512, или 1024x1024 для dall-e-2. Должен быть одним из 1024x1024, 1792x1024, или 1024x1792 для моделей dall-e-3.

style
string or null
Необязательный
По умолчанию vivid
Стиль сгенерированных изображений. Должен быть одним из vivid или natural. Vivid заставляет модель генерировать гиперреалистичные и драматичные изображения. Natural заставляет модель создавать более естественные, менее гиперреалистичные изображения. Этот параметр поддерживается только для dall-e-3.

user
string
Необязательный
Уникальный идентификатор, представляющий вашего конечного пользователя, который может помочь OpenAI отслеживать и выявлять злоупотребления.

Возвращает

Возвращает список объектов image.

Пример запроса
1curl https://api.openai.com/v1/images/generations   -H "Content-Type: application/json"   -H "Authorization: Bearer $OPENAI_API_KEY"   -d '{
2    "model": "dall-e-3",
3    "prompt": "A cute baby sea otter",
4    "n": 1,
5    "size": "1024x1024"
6  }'
Ответ
1{
2  "created": 1589478378,
3  "data": [
4    {
5      "url": "https://..."
6    },
7    {
8      "url": "https://..."
9    }
10  ]
11}
POST https://api.openai.com/v1/images/edits

Создает отредактированное или расширенное изображение на основе оригинального изображения и приглашения.

Тело запроса

image
file
Требуется
Изображение для редактирования. Должно быть валидным PNG файлом, меньше 4МБ и квадратным. Если маска не предоставлена, изображение должно иметь прозрачность, которая будет использована как маска.

prompt
file
Требуется
Текстовое описание желаемого изображения(ий). Максимальная длина - 1000 символов.

mask
file
Необязательно
Дополнительное изображение, полностью прозрачные области которого (например, где альфа равна нулю) указывают, где image должно быть отредактировано. Должно быть валидным PNG файлом, меньше 4МБ, и иметь те же размеры, что и image.

model
string
Необязательно
По умолчанию dall-e-2
Модель, используемая для генерации изображений. В настоящее время поддерживается только dall-e-2.

n
integer or null
Необязательно
По умолчанию 1
Количество генерируемых изображений. Должно быть между 1 и 10.

size
string or null
Необязательно
По умолчанию 1024x1024
Размер создаваемых изображений. Должен быть одним из 256x256, 512x512, или 1024x1024.

response_format
string or null
Необязательно
По умолчанию url
Формат, в котором возвращаются созданные изображения. Должен быть одним из url или b64_json.

user
string
Необязательно
Уникальный идентификатор, представляющий вашего конечного пользователя, который может помочь OpenAI контролировать и обнаруживать злоупотребления.

Возвращает

Возвращает список объектов изображение.

Пример запроса
1curl https://api.openai.com/v1/images/edits
2  -H "Authorization: Bearer $OPENAI_API_KEY"
3  -F image="@otter.png"
4  -F mask="@mask.png"
5  -F prompt="A cute baby sea otter wearing a beret"
6  -F n=2
7  -F size="1024x1024"
Ответ
1{
2  "created": 1589478378,
3  "data": [
4    {
5      "url": "https://..."
6    },
7    {
8      "url": "https://..."
9    }
10  ]
11}
POST https://api.openai.com/v1/images/variations

Создает вариацию данного изображения.

Тело запроса

image
file
Необходимо
Изображение, используемое в качестве основы для вариаций. Должно быть допустимым файлом PNG, размером менее 4 МБ и квадратным.

model
string
Необязательно
По умолчанию dall-e-2
Модель, используемая для генерации изображения. В настоящее время поддерживается только dall-e-2.

n
integer or null
Необязательно
По умолчанию 1
Количество генерируемых изображений. Должно быть от 1 до 10. Для dall-e-3 поддерживается только n=1.

response_format
string or null
Необязательно
По умолчанию url
Формат, в котором возвращаются сгенерированные изображения. Должен быть одним из url или b64_json.

size
string or null
Необязательно
По умолчанию 1024x1024
Размер генерируемых изображений. Должен быть одним из 256x256, 512x512 или 1024x1024.

user
string
Необязательно
Уникальный идентификатор, представляющий вашего конечного пользователя, который может помочь OpenAI отслеживать и обнаруживать злоупотребления.

Возвращает

Возвращает список объектов image.

Пример запроса
1curl https://api.openai.com/v1/images/variations
2  -H "Authorization: Bearer $OPENAI_API_KEY"
3  -F image="@otter.png"
4  -F n=2
5  -F size="1024x1024"
Ответ
1{
2  "created": 1589478378,
3  "data": [
4    {
5      "url": "https://..."
6    },
7    {
8      "url": "https://..."
9    }
10  ]
11}

Представляет URL или содержимое изображения, сгенерированного с помощью Справочник API OpenAI.

b64_json
string
JSON, кодированный в base64 сгенерированного изображения, если response_format является b64_json.

url
string
URL сгенерированного изображения, если response_format является url (по умолчанию).

revised_prompt
string
Prompt, который использовался для генерации изображения, если произошла какая-либо корректировка prompt.

Объект изображения
1{
2  "url": "...",
3  "revised_prompt": "..."
4}

Описывает различные модели, доступные в API. Вы можете обратиться к документации Модели, чтобы понять, какие модели доступны и чем они отличаются друг от друга.

GET https://api.openai.com/v1/models

Выводит список текущих доступных моделей и предоставляет основную информацию по каждой, такую как владелец и доступность.

Возвращает

Список объектов модель.

Пример запроса
1curl https://api.openai.com/v1/models
2  -H "Authorization: Bearer $OPENAI_API_KEY"
Ответ
1{
2  "object": "list",
3  "data": [
4    {
5      "id": "model-id-0",
6      "object": "model",
7      "created": 1686935002,
8      "owned_by": "organization-owner"
9    },
10    {
11      "id": "model-id-1",
12      "object": "model",
13      "created": 1686935002,
14      "owned_by": "organization-owner",
15    },
16    {
17      "id": "model-id-2",
18      "object": "model",
19      "created": 1686935002,
20      "owned_by": "openai"
21    },
22  ],
23  "object": "list"
24}

Описывает предложение модели OpenAI, которое может быть использовано с API.

id
string
Идентификатор модели, который может быть использован в конечных точках API.

created
integer
Unix-временная метка (в секундах), когда была создана модель.

object
string
Тип объекта, который всегда является "model".

owned_by
string
Организация, владеющая моделью.

Объект модели
1{
2  "id": "davinci",
3  "object": "model",
4  "created": 1686935002,
5  "owned_by": "openai"
6}