PHP и ИИ: Как подружить ChatGPT с вашим кодом на PHP

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

PHP и ИИ: революция, которая уже здесь

Вы когда-нибудь мечтали, чтобы ваш PHP-сайт сам писал статьи, отвечал на вопросы пользователей или помогал клиентам с техподдержкой? Раньше это звучало как фантастика, но сегодня — это реальность, доступная каждому разработчику. ChatGPT от OpenAI открыл новые горизонты для веб-разработки на PHP, и в этой статье мы покажем, как использовать эту мощь в своих проектах.

Забудьте о скучных формах обратной связи и статичных FAQ. Представьте: пользователь заходит на ваш сайт, задает вопрос на естественном языке, а ваш PHP-скрипт отправляет запрос к ChatGPT, получает осмысленный ответ и выводит его в реальном времени. Или ваш блог автоматически генерирует уникальные SEO-оптимизированные тексты. Звучит круто? Поехали!

Что нужно для интеграции ChatGPT в PHP?

Прежде чем мы начнем писать код, давайте разберемся с необходимыми инструментами. Для работы с ChatGPT через PHP вам понадобится:

  • PHP 8.0+ (рекомендуется 8.1 или выше для лучшей поддержки)
  • cURL (включен в большинстве сборок PHP)
  • API-ключ OpenAI (получить можно на platform.openai.com)
  • Composer (необязательно, но упрощает установку библиотек)

Главное преимущество PHP в том, что вам не нужны сложные фреймворки — базовый функционал можно реализовать буквально несколькими десятками строк кода. И да, PHP и ChatGPT отлично сочетаются, несмотря на то, что многие считают этот язык устаревшим.

Базовое подключение к OpenAI API на PHP

Начнем с самого простого — отправки запроса к ChatGPT и получения ответа. Вот минимальный рабочий пример на чистом PHP:

<?php
// Конфигурация
$apiKey = 'sk-your-api-key-here';
$apiUrl = 'https://api.openai.com/v1/chat/completions';

// Данные запроса
$requestData = [
    'model' => 'gpt-3.5-turbo',
    'messages' => [
        [
            'role' => 'system',
            'content' => 'Ты полезный ассистент, который помогает пользователям.'
        ],
        [
            'role' => 'user',
            'content' => 'Расскажи в двух словах о PHP и ИИ.'
        ]
    ],
    'max_tokens' => 200,
    'temperature' => 0.7
];

// Инициализация cURL
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));

// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// Обработка ответа
if ($httpCode === 200) {
    $result = json_decode($response, true);
    $answer = $result['choices'][0]['message']['content'];
    echo "Ответ ChatGPT: " . $answer;
} else {
    echo "Ошибка: HTTP " . $httpCode;
}
?>

Этот код отправляет запрос к модели GPT-3.5 Turbo и выводит ответ. Обратите внимание на параметр temperature — он отвечает за креативность ответов (0 — строго факты, 1 — максимальная фантазия).

Улучшаем код с помощью библиотеки

Если вы используете Composer, рекомендую установить официальную библиотеку OpenAI PHP:

composer require openai-php/client

Пример с библиотекой:

<?php
require 'vendor/autoload.php';

$client = OpenAI::client('sk-your-api-key-here');

$response = $client->chat()->create([
    'model' => 'gpt-3.5-turbo',
    'messages' => [
        ['role' => 'system', 'content' => 'Ты эксперт по PHP.'],
        ['role' => 'user', 'content' => 'Как использовать ChatGPT в PHP?']
    ],
]);

echo $response->choices[0]->message->content;
?>

Код стал чище и безопаснее — библиотека автоматически обрабатывает ошибки и управляет HTTP-запросами.

Создаем умный чат-бот на PHP

Теперь давайте сделаем что-то более полезное — чат-бота, который помнит историю диалога. Это классический пример интеграции AI в веб-разработку.

Для этого нам нужно хранить историю сообщений. Самый простой способ — использовать сессии PHP:

<?php
session_start();

// Инициализация истории
if (!isset($_SESSION['chat_history'])) {
    $_SESSION['chat_history'] = [
        ['role' => 'system', 'content' => 'Ты дружелюбный помощник. Отвечай кратко и по делу.']
    ];
}

// Обработка ввода пользователя
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['message'])) {
    $userMessage = htmlspecialchars($_POST['message']);
    
    // Добавляем сообщение пользователя в историю
    $_SESSION['chat_history'][] = [
        'role' => 'user',
        'content' => $userMessage
    ];
    
    // Отправляем всю историю в ChatGPT
    $apiKey = 'sk-your-api-key-here';
    $client = OpenAI::client($apiKey);
    
    $response = $client->chat()->create([
        'model' => 'gpt-3.5-turbo',
        'messages' => $_SESSION['chat_history'],
        'max_tokens' => 300
    ]);
    
    $botReply = $response->choices[0]->message->content;
    
    // Сохраняем ответ бота
    $_SESSION['chat_history'][] = [
        'role' => 'assistant',
        'content' => $botReply
    ];
    
    echo json_encode(['reply' => $botReply]);
    exit;
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Чат-бот на PHP + ChatGPT</title>
</head>
<body>
    <div id="chat">
        <!-- Здесь будет отображаться история -->
    </div>
    <form id="chatForm">
        <input type="text" name="message" placeholder="Спроси что-нибудь..." required>
        <button type="submit">Отправить</button>
    </form>
    
    <script>
        document.getElementById('chatForm').addEventListener('submit', async (e) => {
            e.preventDefault();
            const formData = new FormData(e.target);
            const response = await fetch('', { method: 'POST', body: formData });
            const data = await response.json();
            document.getElementById('chat').innerHTML += 
                `<p><b>Вы:</b> ${formData.get('message')}</p>
                 <p><b>                

Блоги

Рекомендаций по книгам