Как использовать ChatGPT API в PHP: Руководство для разработчиков

ChatGPT API — это инструмент, который позволяет разработчикам интегрировать языковую модель OpenAI в свои программные приложения. В этой статье мы подробно расскажем, как использовать ChatGPT API в PHP: от настройки аккаунта и получения API ключа до выполнения запросов к ChatGPT API с использованием библиотеки cURL в PHP.

Как использовать ChatGPT API в PHP: Руководство для разработчиков

Шаги для использования ChatGPT API в PHP

1. Получение API-учетных данных

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

2. Настройка окружения PHP

Следующий шаг — правильно настроить ваше окружение для разработки. Для этого вам нужно установить библиотеку cURL, которая позволяет выполнять HTTP-запросы из PHP, а также Composer — инструмент для управления зависимостями в PHP. Вам также нужно создать новый PHP проект или использовать уже существующий для интеграции с ChatGPT API.

3. Установка OpenAI PHP SDK

OpenAI PHP SDK — это удобный инструмент, который позволяет взаимодействовать с ChatGPT API прямо из вашего PHP-кода. Вы можете установить SDK, выполнив команду composer require openai-php/client в директории вашего проекта. После установки вы можете импортировать SDK в ваши PHP-файлы с помощью следующего кода:


require 'vendor/autoload.php';
use OpenAI\Api\OpenAI;
    

4. Выполнение API-запросов

Когда ваше окружение настроено, а SDK установлен, вы можете отправлять запросы к ChatGPT API. Вот пример того, как можно получить ответ в виде чата, используя API:


$openai = new OpenAI('YOUR_API_KEY');

$response = $openai->complete([
 'model' => 'gpt-3.5-turbo',
 'messages' => [
   ['role' => 'system', 'content' => 'You are a helpful assistant.'],
   ['role' => 'user', 'content' => 'Who won the world series in 2020?']
 ],
 'temperature' => 0.6
]);
    

Объяснение кода

  • Строка 1: Создается объект OpenAI с использованием вашего API ключа.
  • Строка 3: Вызывается метод complete для объекта OpenAI. Результат этого метода сохраняется в переменную $response.
  • Строки 4-8: Указываются сообщения в формате массива объектов. Каждый объект включает в себя роль (system или user) и содержимое сообщения.
  • Строка 9: Параметр temperature устанавливает степень случайности в ответах модели.

Лучшие практики

Чтобы обеспечить эффективность вашей реализации, придерживайтесь следующих рекомендаций при использовании ChatGPT API в PHP:

  • Пакетирование запросов: Вместо того, чтобы выполнять отдельные запросы для каждого взаимодействия с пользователем, можно объединить несколько сообщений в один запрос, чтобы снизить задержку и затраты.
  • Управление лимитами запросов: ChatGPT API имеет ограничения по количеству запросов. Убедитесь, что вы правильно обрабатываете ошибки, связанные с лимитами, и реализуете механизм повторных попыток.
  • Очистка пользовательских данных: Необходимо фильтровать и проверять входные данные пользователей, чтобы предотвратить отправку неподобающего контента в API.
  • Эксперименты с параметрами: Изменяя параметр temperature, вы можете регулировать случайность ответов. Экспериментируйте с различными значениями, чтобы найти оптимальное для вашего приложения.

Пример работы с длинными текстами

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

Во-первых, важно понять, что ChatGPT API принимает серию сообщений в качестве ввода и возвращает сообщение, сгенерированное моделью. Каждое сообщение имеет роль (system, user или assistant) и содержимое (текст сообщения от роли).

Для того чтобы разбить разговор на части, выполните следующие шаги:

  1. Идентификация естественных точек разрыва: Найдите места, где разговор можно разбить без потери контекста (например, в конце темы или вопроса).
  2. Разделите текст: Разбейте текст на части, каждая из которых будет соответствовать лимиту токенов API.
  3. Отправьте каждую часть в API: Отправьте каждую часть как отдельное сообщение. Сообщение с ролью "system" можно использовать для определения поведения помощника, а сообщения с ролью "user" — для частей разговора.

Пример разбивки длинного текста:


$openai = new OpenAI('YOUR_API_KEY');

$response = $openai->complete([
 'model' => 'gpt-3.5-turbo',
 'messages' => [
   ['role' => 'system', 'content' => 'You are a helpful assistant.'],
   ['role' => 'user', 'content' => 'Part 1 of the conversation'],
   ['role' => 'user', 'content' => 'Part 2 of the conversation'],
   ['role' => 'user', 'content' => 'Part 3 of the conversation']
 ],
 'temperature' => 0.6
]);
    

Пример кода для взаимодействия с OpenAI API

Приведем простой пример того, как можно использовать OpenAI API для взаимодействия с моделью GPT-3.5 для разговоров:


<?php

// Определение ключа API и URL конечной точки
const OPENAI_API_KEY = "YOUR_API_KEY_HERE"; // Замените на ваш настоящий ключ API
const ENDPOINT_URL = "https://api.openai.com/v1/chat/completions";

// Проверка наличия ключа API
if (OPENAI_API_KEY === "YOUR_API_KEY_HERE") {
    die("Пожалуйста, замените 'YOUR_API_KEY_HERE' на ваш ключ API.");
}

// Определение параметров заголовка
$headerParameters = array(
    "Content-Type: application/json",
    "Authorization: Bearer " . OPENAI_API_KEY
);

// Определение параметров тела запроса
$bodyParameters = array(
    "model" => "gpt-3.5-turbo",
    "messages" => array(
        array(
            "role" => "system",
            "content" => "Assume the persona of Shakespeare and provide profound, intellectual responses as if we were in the 1750s."
        ),
        array(
            "role" => "user",
            "content" => "What are computers!"
        )
    )
);

// Инициализация cURL сессии
$ch = curl_init();

// Настройка параметров cURL
curl_setopt($ch, CURLOPT_URL, ENDPOINT_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerParameters);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($bodyParameters));

// Выполнение запроса cURL
$response = curl_exec($ch);

// Проверка на ошибки cURL
if ($response === false) {
    die("Ошибка cURL: " . curl_error($ch));
}

// Получение HTTP кода статуса
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// Проверка на ошибки HTTP
if ($httpStatusCode !== 200) {
    echo "HTTP ошибка: " . $httpStatusCode;
    echo "Ответ от сервера: " . $response;
} else {
    // Декодирование JSON ответа
    $responseData = json_decode($response, true);
    // Вывод ответа
    echo "Ответ: " . print_r($responseData, true);
}

// Закрытие cURL сессии
curl_close($ch);

?>
    

Заключение

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

Теги:  ChatGPT API, PHP, разработка, интеграция, OpenAI, cURL

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Лендинг

от 3 дней

от 25 000 рублей

Разработка одностраничного сайта на платформе Битрикс

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

Разработка интернет-магазина с готовой версткой

от 4 недель

от 90 000 рублей

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.