Перейти к основному содержанию
OpenAI ChatGPT — это очень мощная AI система диалога, которая может генерировать плавные и естественные ответы всего за несколько секунд, просто вводя подсказки. ChatGPT выделяется в отрасли благодаря своим выдающимся способностям к пониманию и генерации языка, и в настоящее время он широко используется в различных отраслях и сферах, его влияние становится все более значительным. Будь то повседневные беседы, креативное письмо или профессиональные консультации, программирование кода, ChatGPT может предоставить удивительную интеллектуальную помощь, значительно повышая эффективность и креативность человека. Этот документ в основном описывает процесс использования OpenAI Chat Completion API, с помощью которого мы можем легко использовать функции диалога официального OpenAI ChatGPT.

Процесс заявки

Чтобы использовать OpenAI Chat Completion API, сначала можно перейти на страницу OpenAI Chat Completion API и нажать кнопку «Acquire», чтобы получить необходимые для запроса учетные данные: Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправят на страницу входа, пригласив зарегистрироваться и войти в систему, после чего вы автоматически вернетесь на текущую страницу. При первой подаче заявки будет предоставлен бесплатный лимит, который можно использовать для бесплатного использования этого API.

Основное использование

Далее вы можете заполнить соответствующие поля на интерфейсе, как показано на изображении:

При первом использовании этого интерфейса нам необходимо заполнить как минимум три поля: одно из них — authorization, которое можно выбрать прямо из выпадающего списка. Другой параметр — model, model — это категория модели, которую мы выбираем для использования на официальном сайте OpenAI ChatGPT, здесь у нас в основном есть 20 моделей, подробности можно посмотреть в предоставленных моделях. Последний параметр — messages, messages — это массив наших вопросов, который представляет собой массив, позволяющий одновременно загружать несколько вопросов, каждый из которых содержит role и content, где role обозначает роль задающего вопрос, мы предоставили три роли: user, assistant, system. Другой content — это конкретное содержание нашего вопроса. Также вы можете заметить, что справа есть соответствующий сгенерированный код вызова, вы можете скопировать код и запустить его, или просто нажать кнопку «Try» для тестирования. Распространенные дополнительные параметры:
  • max_tokens: ограничивает максимальное количество токенов в одном ответе.
  • temperature: генерирует случайность, от 0 до 2, чем больше значение, тем более разнообразным будет ответ.
  • n: сколько вариантов ответа генерировать за раз.
  • response_format: настройки формата ответа.

После вызова мы обнаруживаем, что возвращаемый результат выглядит следующим образом:
{
  "id": "chatcmpl-Cmd6uwSxN75F4PAdQSFEO8f2QPs4E",
  "object": "chat.completion",
  "created": 1765706120,
  "model": "gpt-5.2",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! What can I help you with today?",
        "refusal": null,
        "annotations": []
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 13,
    "total_tokens": 20,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "audio_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  },
  "service_tier": "default",
  "system_fingerprint": null
}
Возвращаемый результат содержит несколько полей, описание которых приведено ниже:
  • id, ID задачи диалога, созданной для уникальной идентификации этой задачи.
  • model, выбранная модель OpenAI ChatGPT.
  • choices, информация о ответах ChatGPT на вопросы.
  • usage: статистическая информация о токенах для этого вопроса и ответа.
Где choices содержит информацию о ответах ChatGPT, внутри которой можно увидеть, как показано на изображении.

Можно увидеть, что поле content внутри choices содержит конкретное содержание ответа ChatGPT.

Потоковый ответ

Этот интерфейс также поддерживает потоковые ответы, что очень полезно для веб-интеграции, позволяя веб-странице реализовать эффект отображения по буквам. Если вы хотите получить потоковый ответ, вы можете изменить параметр stream в заголовке запроса на true. Изменение показано на изображении, однако код вызова должен быть соответствующим образом изменен, чтобы поддерживать потоковые ответы.

После изменения stream на true, API будет возвращать соответствующие JSON данные построчно, на уровне кода нам нужно внести соответствующие изменения, чтобы получить построчные результаты. Пример кода вызова на Python:
import requests

url = "https://api.acedata.cloud/openai/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gpt-4",
    "messages": [{"role":"user","content":"hello"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Вывод будет следующим:
data: {"choices": [{"delta": {"role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": "Привет", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " там", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": "!", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " Как", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " я", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " могу", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " помочь", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " вам", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": " сегодня", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"content": "?", "role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"role": "assistant"}, "index": 0}], "created": 1721007348, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: {"choices": [{"delta": {"role": "assistant"}, "finish_reason": "stop", "index": 0}], "created": 1721007349, "id": "chatcmpl-YzczYjVhNjhjMzMwNDQ5MDkyNGYzOGZjZGE1ZGQ5OGU", "model": "gpt-4", "object": "chat.completion.chunk", "recipient": "all"}

data: [DONE]

Можно увидеть, что в ответе много data, data внутри choices является последним ответом, который соответствует описанному выше содержимому. choices - это новая информация ответа, которую вы можете интегрировать в вашу систему. Также окончание потокового ответа определяется по содержимому data, если содержимое равно [DONE], это означает, что потоковый ответ завершен. Возвращаемый результат data содержит несколько полей, описание которых приведено ниже:
  • id - уникальный идентификатор для данной задачи диалога.
  • model - выбранная модель OpenAI ChatGPT.
  • choices - информация о ответах ChatGPT на заданные вопросы.
JavaScript также поддерживается, например, код для потокового вызова Node.js выглядит следующим образом:
const options = {
  method: "post",
  headers: {
    accept: "application/json",
    authorization: "Bearer {token}",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    model: "gpt-4",
    messages: [{ role: "user", content: "привет" }],
    stream: true,
  }),
};

fetch("https://api.acedata.cloud/openai/chat/completions", options)
  .then((response) => response.json())
  .then((response) => console.log(response))
  .catch((err) => console.error(err));
Пример кода на Java:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "gpt-4");
jsonObject.put("messages", [{"role":"user","content":"привет"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/openai/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
Другие языки можно адаптировать самостоятельно, принцип остается тем же.

Многоуровневый диалог

Если вы хотите интегрировать функцию многоуровневого диалога, вам нужно загрузить несколько вопросов в поле messages, конкретные примеры нескольких вопросов приведены на изображении ниже:

Пример кода вызова на Python:
import requests

url = "https://api.acedata.cloud/openai/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gpt-4",
    "messages": [{"role":"user","content":"Привет"},{"role":"assistant","content":"Здравствуйте! Как я могу помочь вам сегодня?"},{"role":"user","content":"Что я только что сказал?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Загрузив несколько вопросов, можно легко реализовать многократный диалог, и получить следующий ответ:
{
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Вы сказали: \"Привет.\""
      },
      "finish_reason": "stop"
    }
  ],
  "created": 1721323012,
  "id": "chatcmpl-NWZmOTA5MDlkZjBjNDRjNGEwMzRjYzA5NmM1MzQwMWY",
  "model": "gpt-4",
  "object": "chat.completion.chunk",
  "recipient": "all",
  "usage": {
    "prompt_tokens": 31,
    "completion_tokens": 6,
    "total_tokens": 37
  }
}
Как видно, информация, содержащаяся в choices, соответствует основному использованию, это включает в себя конкретное содержание ответов ChatGPT на несколько диалогов, что позволяет отвечать на соответствующие вопросы на основе нескольких диалогов.

Интеграция с OpenAI-Python

Служба OpenAI Chat Completion API основана на официальной службе OpenAI, подробности можно найти в официальном OpenAI-Python, в этой статье будет кратко описано, как использовать предоставляемую официальную службу.
  1. Сначала необходимо настроить локальную среду Python, этот процесс можно найти в Google.
  2. Установите и настройте среду разработки, например, установите редактор VSCode.
  3. Настройте переменные окружения OpenAI.
  • В папке проекта создайте файл с именем .env и сохраните его.
  • Содержимое файла .env:
OPENAI_API_KEY="sk-xxx"
OPENAI_BASE_URL="https://api.acedata.cloud/openai"  # Напоминаем: если вы используете ключ OpenAI с официального сайта, не используйте этот адрес.
Замените sk-xxx на свой ключ. OPENAI_BASE_URL — это прокси-интерфейс для доступа к OpenAI.
  1. Установите зависимости проекта
pip install openai
В Mac OS команда будет:
pip3 install openai
  1. Создайте файл исходного кода примера
Предположим, мы создали пример кода index.py, его содержимое следующее:
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

response = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "привет",
        }
    ],
    model="gpt-4",
)

print(response.text)

Модель с подключением к интернету

Модели gpt-3.5-browsing и gpt-4-browsing отличаются от других моделей тем, что они могут выполнять поиск в интернете на основе вопросов и возвращать результаты поиска с соответствующими корректировками. В этой статье будет представлен конкретный пример демонстрации функции подключения к интернету, после чего можно будет заполнить соответствующее содержимое на интерфейсе OpenAI Chat Completion API, как показано на изображении:

Также вы можете заметить, что справа есть соответствующий сгенерированный код вызова, вы можете скопировать код и запустить его, или просто нажать кнопку «Попробовать» для тестирования.

После вызова мы обнаружили, что возвращаемый результат следующий:
{
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Для последних новостей в Китае сегодня вы можете проверить основные новостные сайты, такие как:\n\n- [BBC News China](https://www.bbc.com/news/world/asia/china)\n- [CNN China News](https://edition.cnn.com/china)\n- [Reuters China](https://www.reuters.com/news/archive/china-news)\n\nЭти источники будут содержать актуальную информацию о текущих событиях в Китае."
      },
      "finish_reason": "stop"
    }
  ],
  "created": 1721009347,
  "id": "chatcmpl-YzA0M2RjZDVkYThlNDkxNTkzOThmZWQ4OGMzNzdhNzA",
  "model": "gpt-4-browsing",
  "object": "chat.completion.chunk",
  "recipient": "all",
  "usage": {
    "prompt_tokens": 325,
    "completion_tokens": 82,
    "total_tokens": 407
  }
}
Как видно, информация ответов в choices основана на результатах интернет-запроса, и также предоставлены соответствующие ссылки. Информация ответов в choices должна быть отформатирована с использованием синтаксиса markdown, чтобы получить наилучший опыт, в конечном итоге это также подчеркивает мощные преимущества функции подключения к интернету нашей модели.

Визуальная модель

gpt-4o — это многомодальная большая языковая модель, разработанная OpenAI, которая на основе GPT-4 добавила возможности визуального понимания. Эта модель может одновременно обрабатывать текстовые и графические входные данные, реализуя кросс-модальное понимание и генерацию. Использование текстовой обработки модели gpt-4o аналогично основному использованию, описанному выше, ниже будет кратко описано, как использовать возможности обработки изображений модели. Использование возможностей обработки изображений модели gpt-4o осуществляется путем добавления поля type к исходному содержимому content, с помощью которого можно определить, загружается ли текст или изображение, чтобы использовать возможности обработки изображений модели gpt-4o. Далее будет описано, как вызвать эту функцию с помощью Curl и Python.
  • Способ с использованием Curl
curl -X POST 'https://api.acedata.cloud/openai/chat/completions' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "Что на этом изображении?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
            }
          }
        ]
      }
    ]
  }'
  • Способ с использованием Python
```python
import requests

url = "https://api.acedata.cloud/openai/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gpt-4o",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text", "text": "Что на этом изображении?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
                    }
                },
            ],
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Затем можно получить следующий результат, информация в результате соответствует вышеупомянутой, конкретно следующая:
{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-4-vision-preview",
  "system_fingerprint": "fp_44709d6fcb",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "\n\nЭто изображение показывает деревянную набережную, проходящую через зеленое болото."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}
Можно увидеть, что содержание ответа основано на изображении, поэтому с помощью вышеупомянутых двух способов можно легко использовать текстовые и визуальные возможности модели gpt-4-vision. Кроме gpt-4o, есть еще одна более экономичная модель, называемая gpt-4o-mini. gpt-4o-mini — это последняя версия крупной языковой модели, разработанная OpenAI, которая не только быстро реагирует, но и стоит дешевле, также поддерживает мультимодальность. Использование функции vision можно посмотреть в содержании использования модели gpt-4o выше.

Модель рисования GPT-4o

Пример запроса:
{
  "model": "gpt-4o-image",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Создайте изображение в стиле Гибли и добавьте шляпу"
        },
        {
          "type": "file_url",
          "file_url": {
            "url": "https://cdn.acedata.cloud/qzx2z1.png"
          }
        }
      ]
    }
  ],
  "stream": false
}
Пример результата:
{
  "id": "chatcmpl-89CXTr5EHi7WgiO3qSzWxvmqwfryP",
  "object": "chat.completion.chunk",
  "model": "gpt-4o-image",
  "created": 1744395060,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "{\n  \"prompt\": \"Молодая женщина с длинными черными волосами в белом платье, стоящая на живописной открытой местности. Изображение в стиле анимации Studio Ghibli, с мягкими цветами и тонкими деталями. Она носит милую, стильную шляпу и тепло улыбается. На заднем плане видны зелёные насаждения и спокойная атмосфера, с солнечными лучами, пробивающимися сквозь деревья.\",\n  \"size\": \"1024x1024\"\n}\n\n\n![file-96TSnzJ6MipkZwCmmYEZSA](https://filesystem.site/cdn/20250412/s8EFrYVqeRWc5SfTmF1SbgBS2WFGXb.webp)\n[Скачать⏬](https://filesystem.site/cdn/download/20250412/s8EFrYVqeRWc5SfTmF1SbgBS2WFGXb.webp)\n\nВот изображение, созданное в стиле Studio Ghibli, на котором изображена молодая женщина в белом платье и стильной шляпе на живописной открытой местности. Мягкая, теплая атмосфера запечатлена с нежными деталями и яркими цветами."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 70,
    "completion_tokens": 17,
    "total_tokens": 87
  }
}

Обработка ошибок

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched:Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented:Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token:Неавторизован, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests:Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error:Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "не удалось получить"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

С помощью этого документа вы узнали, как использовать OpenAI Chat Completion API для легкой реализации функций диалога официального OpenAI ChatGPT. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.