1. Конструирование API-запросов
1.1 Отправка запросов с помощью CURL
CURL - это инструмент командной строки, который поддерживает отправку и получение данных с использованием различных протоколов, таких как HTTP и HTTPS. Чтобы отправить запрос в API OpenAI с помощью CURL, сначала вам нужно иметь действующий API-ключ, а затем добавить его в заголовок запроса.
Вот пример команды CURL, используемой для отправки запроса в API OpenAI:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Напиши, что это тест!"}],
"temperature": 0.7
}'
Вам нужно заменить $OPENAI_API_KEY
на свой API-ключ. В целях безопасности избегайте разглашения вашего API-ключа в любом общедоступном месте.
1.2 Анализ заголовков запроса
В вышеприведенной команде CURL мы использовали два важных заголовка запроса: Content-Type
и Authorization
.
-
Content-Type
: Это уведомляет сервер о том, что мы отправляем данные в формате JSON. Его значение обычноapplication/json
. -
Authorization
: Это учетные данные, используемые для аутентификации запроса API, и его формат всегдаBearer (ваш API-ключ)
.
Обеспечение правильности этих двух заголовков критически важно для успешного запроса.
1.3 Создание тела запроса
Тело запроса представляет собой строку в формате JSON, которая информирует OpenAI о наших намерениях. В этом запросе мы используем model
для указания используемой модели, передаем массив messages
, определяющий ввод пользователя, и устанавливаем temperature
для настройки изменчивости ответа.
JSON выглядит так:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Напиши, что это тест!"}],
"temperature": 0.7
}
В этом примере мы запрашиваем модель сгенерировать тестовый ответ на основе входного сообщения.
1.4 Подробное объяснение параметров запроса
В теле запроса есть несколько важных параметров, о которых стоит упомянуть:
-
model
: Указывает AI-модель, которую мы собираемся использовать. OpenAI предоставляет несколько моделей, каждая со своими различными функциональностями и эффектами. -
messages
: Это массив, содержащий один или несколько объектов сообщений, при этом каждое сообщение состоит изrole
, обозначающего роль сообщения, иcontent
, представляющего содержание сообщения. -
temperature
: Управляет уверенностью ответа. Низкое значениеtemperature
генерирует более уверенные ответы, в то время как более высокое значение приводит к большей случайности.
2. Анализ ответов API
2.1 Понимание ответа
Когда вы отправляете запрос, сервер вернет HTTP-код состояния и, возможно, тело ответа. Обычно успешный запрос получит код состояния из серии 200. Возвращаемые данные JSON содержат результат запроса, и пример ответа выглядит следующим образом:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistant",
"content": "\n\nЭто тест!"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
В этом ответе мы видим идентификатор завершения, временную метку создания, используемую модель, использование токенов и фактическое содержание ответа (в поле choices
).
2.2 Полнота и обработка ошибок
Поле finish_reason
указывает, почему API прекратил вывод дополнительного контента. Распространенные причины завершения включают stop
, length
и idle
. Если произошла ошибка, такая как превышение лимитов токенов или неправильный API-ключ, вы получите соответствующее сообщение об ошибке и код состояния. Важно правильно обрабатывать эти ошибки, чтобы обеспечить непрерывность пользовательского опыта и стабильность вашего приложения. Для обработки ошибок вы можете решить, какую подходящую стратегию обработки ошибок использовать на основе возвращенного кода состояния и сообщения об ошибке, например, повторить запрос или предоставить обратную связь пользователю, объясняющую причину ошибки.
2.3 Отправка API-запросов с использованием Python SDK
Ниже приведен пример использования официального Python SDK от OpenAI для выполнения API-запросов.
Сначала вам необходимо установить библиотеку openai, что можно сделать с помощью pip:
pip install --upgrade openai
Затем вы можете использовать следующий код на Python для выполнения аналогичного API-запроса, как показано в примере выше. Не забудьте заменить YOUR_OPENAI_API_KEY
на свой API-ключ.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Вы – профессиональный помощник в разработке, искусный в решении различных проблем программирования."},
{"role": "user", "content": "Напишите функцию для быстрой сортировки на Go."}
]
)
print(completion.choices[0].message)