AI для PHP-разработчиков: интуитивно и на практике
AI для PHP-разработчиков: интуитивно и на практике

Полная версия

AI для PHP-разработчиков: интуитивно и на практике

Язык: Русский
Год издания: 2026
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
2 из 2

Если вы работаете с GPT, Claude или Gemini из PHP, эта библиотека становится практически обязательной. Она позволяет понимать реальную стоимость запросов, длину контекста и поведение модели еще до вызова API.


TransformersPHP

Репозиторий: https://github.com/CodeWithKyrian/transformers-php

Статус: активный


Transformers PHP – один из самых интересных и показательных проектов в современной PHP ML-экосистеме. Это библиотека, которая позволяет использовать трансформер-модели (BERT, RoBERTa, DistilBERT и др.) напрямую из PHP, без Python и без внешних API.


По сути, это PHP-ориентированная обертка над идеями [Hugging Face Transformers], адаптированная под PHP-экосистему и реальные прикладные сценарии.


Ключевая особенность библиотеки – локальный [инференс]. Модели загружаются и выполняются на стороне PHP-приложения (через [ONNX Runtime]), что открывает важные архитектурные возможности:

* отсутствие сетевых вызовов к LLM API

* полный контроль над данными (важно для конфиденциальности)

* предсказуемая задержка

* возможность оффлайн-работы


Transformers PHP поддерживает типовые задачи NLP:

* получение эмбеддингов

* классификацию текста

* семантическое сравнение

* извлечение признаков для последующих задач


Пример использования выглядит концептуально просто: вы загружаете предобученную модель и применяете ее к тексту так же, как это делали бы в Python – но уже внутри PHP-кода. TransformersPHP предлагает простой pipeline API для задач вроде анализа настроений, классификации текста, семантического сравнения и т.д. В примере ниже модель определяет тональность двух фраз и показывает метку и score.

use function Codewithkyrian\Transformers\Pipelines\pipeline;

// Выделить конвейер для анализа настроений

$classifier = pipeline('sentiment-analysis');

$out = $classifier(['I love transformers!']);

echo print_r($out, true);

// Array (

// [label] => POSITIVE

// [score] => 0.99978870153427

// )

$out = $classifier(['I hate transformers!']);

echo print_r($out, true);

// Array (

// [label] => NEGATIVE

// [score] => 0.99863630533218

// )

👉 Чтобы самостоятельно протестировать этот код, воспользуйтесь [онлайн-демонстрацией] для его запуска.


Важно понимать архитектурную роль Transformers PHP.


Эта библиотека не конкурирует с большими LLM-сервисами вроде GPT или Claude. Она закрывает другой, очень важный слой:

* быстрые эмбеддинги

* локальная классификация

* семантический поиск

* lightweight NLP без внешних зависимостей


В связке с PHP это выглядит особенно логично. PHP остается центральным слоем бизнес-логики, а трансформеры становятся встроенным инструментом, а не удаленным сервисом.


Transformers PHP – это хороший пример того, как современный ML постепенно перестает быть "чужим" для PHP и становится частью его нативной экосистемы, пусть и через аккуратные инженерные мосты вроде ONNX.


Rindow Math Matrix

Репозиторий: https://github.com/rindow/rindow-math-matrix

Статус: активный


Rindow Math Matrix – это библиотека линейной алгебры и матричных вычислений, ориентированная на ML и численные методы. Она часто используется в связке с другими компонентами экосистемы Rindow.


Ключевые возможности:

* N-мерные массивы (тензоры) с поддержкой broadcasting

* Высокопроизводительные BLAS-операции

* Инструменты для машинного обучения

* Линейная алгебра и генерация случайных чисел

* Интеграция C/C++ через FFI (OpenBLAS, Rindow-Matlib, CLBlast и др.)

* Поддержка GPU через OpenCL (Intel, AMD – без необходимости NVIDIA)


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


Flow PHP

Репозиторий: https://github.com/flow-php/flow

Статус: активный


Flow PHP – это не ML-библиотека в чистом виде, а настоящий фреймворк для обработки данных. Это ETL (Extract, Transform, Load), пайплайны, трансформации, валидация, потоки данных.


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


Flow PHP закрывает этот разрыв между "данные где-то лежат" и "модель уже работает".


Интеграция с внешними ML-сервисами

На практике, в большинстве production-сценариев, использование ML в PHP – это не обучение моделей, а инференс через API.


#### **LLPhant**


Репозиторий: \

Статус: **активный**


LLPhant – это современный Generative AI-фреймворк для PHP, который решает уже не задачу "реализовать алгоритм", а задачу "построить AI-приложение".


Если PHP-ML и Rubix работают на уровне моделей и математики, а TransformersPHP – на уровне локального инференса, то LLPhant закрывает уровень архитектуры вокруг LLM.


Он вдохновлен LangChain и LlamaIndex, но адаптирован под PHP-экосистему.


LLPhant предоставляет:


* единый интерфейс к различным LLM (OpenAI, Anthropic, Mistral, Ollama и др.)

* работу с embeddings

* поддержку vector stores (Redis, Doctrine, Qdrant, in-memory и др.)

* построение RAG-сценариев (retrieval + generation)

* чат-память и управление диалогами

* инструменты для агентов и tool calling


Архитектурно LLPhant важен тем, что он позволяет рассматривать LLM не как "HTTP-вызов", а как компонент системы. Вы работаете не просто с API, а с абстракциями:


* Chat

* Embeddings

* VectorStore

* Document

* Memory

* Pipeline


Это переводит использование LLM из разряда "скрипт с запросом к OpenAI" в разряд воспроизводимой архитектуры.


Простейший пример:


```php

use LLPhant\Chat\OpenAIChat;

use LLPhant\Chat\Message;

use LLPhant\Chat\Enums\ChatRole;


$chat = new OpenAIChat();


$message = new Message();

$message->role = ChatRole::User;

$message->content = 'What is the capital of France?';


$response = $chat->generateText($message);

echo $response;


// Результат:

// The capital of France is Paris.

```


{% hint style="info" %}

Чтобы самостоятельно протестировать этот код, воспользуйтесь [онлайн-демонстрацией](https://aiwithphp.org/books/ai-for-php-developers/examples/ml-ecosystem-in-php) для его запуска.

{% endhint %}


Но реальная сила LLPhant раскрывается в RAG-сценариях:


1. Вы создаете embeddings для документов.

2. Сохраняете их в vector store.

3. При запросе пользователя находите релевантный контекст.

4. Передаете его в модель.

5. Получаете ответ, основанный на ваших данных.


Именно поэтому LLPhant занимает особое место в экосистеме PHP ML. Это не библиотека линейной алгебры и не инструмент классического машинного обучения, и не просто обёртка для локального инференса. Это фреймворк, который позволяет строить полноценные AI-системы поверх LLM – с управлением контекстом, хранением данных и архитектурной структурой.


Если говорить образно:


* PHP-ML – это учебник,

* Rubix – инженерный инструмент,

* TransformersPHP – локальный инференс,

* LLPhant – инфраструктура для LLM-приложений.


Именно такие проекты показывают, что современная ML-экосистема в PHP – это уже не просто "подключить API", а полноценный архитектурный слой вокруг моделей.


#### **OpenAI, Anthropic, Gemini и другие LLM**


Под крупные LLM существуют PHP SDK или качественные HTTP-обертки. Через них PHP получает:


* эмбеддинги для текста

* классификацию

* генерацию

* суммаризацию

* извлечение структурированных данных


С точки зрения архитектуры это выглядит так: модель живет вне PHP, а PHP становится "мозгом бизнес-логики", который знает, когда и зачем вызвать ML.


Именно здесь PHP особенно силен: он отлично интегрируется с очередями, базами, кэшем, платежами и UI.


#### **ONNX Runtime и инференс моделей**


Отдельного упоминания заслуживает [ONNX](https://apphp.gitbook.io/ai-for-php-developers/glossarii#one-hot-encoding). Через расширения или внешние сервисы PHP может выполнять инференс моделей, обученных в Python и экспортированных в ONNX-формат.


Это редкий, но важный кейс: модель обучается где угодно, а используется в PHP-приложении без Python в продакшене (через ONNX Runtime, расширения или внешний inference-сервис).


#### Компьютерное зрение и обработка сигналов


В задачах компьютерного зрения и обработки сигналов PHP не является лидирующим языком, однако базовые инструменты для интеграции таких решений всё же существуют. OpenCV может использоваться через биндинги, CLI-вызовы или внешние сервисы, при этом PHP выступает в роли управляющего и координирующего слоя.


В подобных сценариях PHP редко занимается численными вычислениями напрямую. Его роль – оркестрация: запуск и контроль CV-пайплайнов, передача данных между компонентами, интеграция с очередями, хранилищами и бизнес-логикой приложения. Это типичный пример того, как PHP эффективно работает с ML-компонентами, оставаясь центральной точкой управления, а не вычислительным ядром.


### Как читать эту экосистему целиком


Важно сделать один вывод, прежде чем двигаться дальше.


PHP – это не язык для соревнований по распознаванию изображений. Это язык, который соединяет машинное обучение с реальным продуктом. Его библиотеки заточены не под рекорды точности, а под: ясность кода, интеграцию, контроль данных и предсказуемость поведения.


Если вы понимаете, как работает модель математически, PHP даст вам достаточно инструментов, чтобы использовать ее в бою.


В этом смысле экосистема PHP и ML не является бедной – она прагматична и сфокусирована на прикладных задачах. PHP и машинное обучение – это про архитектурную роль PHP как слоя интеграции, оркестрации и бизнес-логики вокруг моделей:


* в применении моделей,

* в работе с эмбеддингами и векторами,

* в классификации и ранжировании,

* в оркестрации ML-сервисов,

* в соединении математики и бизнес-логики.


Именно поэтому экосистема PHP выглядит не как один монолит, а как набор разнообразных и точных инструментов.


{% hint style="info" %}

Для более широкого обзора экосистемы и актуальных экспериментов можно также обратиться к курируемой подборке Awesome PHP ML, где собраны библиотеки, инструменты и проекты, связанные с машинным обучением в PHP:


[Awesome PHP ML](https://github.com/apphp/awesome-php-ml)

{% endhint %}


3a. Настройка среды для PHP

PHP – это язык программирования, который чаще всего используют для веб-разработки. Но сегодня его всё чаще применяют и для задач машинного обучения и анализа данных. С выходом PHP 8 язык стал быстрее и получил новые возможности, которые позволяют создавать более мощные и эффективные приложения.


Это руководство поможет вам настроить рабочую среду на PHP 8 для работы с машинным обучением. Оно подойдёт как PHP-разработчикам, которые хотят попробовать себя в ML, так и специалистам по данным, которым интересно использовать PHP в своих проектах.


Вы узнаете, как установить PHP 8, подготовить удобную среду разработки и подключить нужные инструменты и библиотеки для задач машинного обучения. В результате у вас будет готовая база для создания ML-приложений на PHP.


Начнём с установки последней версии PHP и её настройки для лучшей производительности при работе с машинным обучением.

3b. Установка напрямую

Введение

Ниже вы найдете подробные инструкции по подготовке и настройке среды для PHP непосредственно на вашем компьютере.


1. Установка PHP 8.5

(последняя стабильная версия по состоянию на январь 2026 г.)


Для Windows:

1. Загрузите последнюю версию PHP 8.5 с официального сайта PHP (https://windows.php.net/download)

2. Распакуйте ZIP-файл в каталог (например, C:\php)

3. Добавьте каталог PHP в переменную среды PATH вашей системы

4. Переименуйте `php.ini-development` в php.ini в каталоге PHP


Для macOS:

brew install php@8.5

echo 'export PATH="/usr/local/opt/php@8.5/bin:$PATH"' >> ~/.zshrc

source ~/.zshrc

Для Linux (Ubuntu/Debian):

sudo apt update

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

sudo apt install php8.5 php8.5-cli php8.5-common

2. Настройка PHP для оптимальной производительности

Отредактируйте файл php.ini:

memory_limit = 512M

max_execution_time = 300

error_reporting = E_ALL

display_errors = On

opcache.enable = 1

opcache.memory_consumption = 128

3. Настройка веб-сервера

Apache (с mod_php):

# Для Ubuntu/Debian

sudo apt install apache2 libapache2-mod-php8.5

sudo a2enmod php8.5

sudo systemctl restart apache2

Nginx (с PHP-FPM):

# Для Ubuntu/Debian

sudo apt install nginx php8.5-fpm

sudo systemctl start php8.5-fpm

sudo systemctl enable php8.5-fpm

Настройте Nginx для работы с PHP-FPM (отредактируйте /etc/nginx/sites-available/default):

location ~ \.php$ {

fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;

fastcgi_index index.php;

include fastcgi_params;

}

4. Установка необходимых расширений PHP для машинного обучения

sudo apt install php8.5-xml php8.5-mbstring php8.5-curl php8.5-gd php8.5-zip php8.5-mysql php8.5-bcmath

5. Настройка Composer (менеджера пакетов)

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

6. Установка популярных библиотек машинного обучения для PHP

composer require php-ai/php-ml

composer require rubix/ml

7. Настройка IDE

1. Установите PHPStorm или VS Code

2. Установите расширения PHP (для VS Code):

* PHP IntelliSense

* PHP Debug

* PHP Intellephense


8. Настройка системы контроля версий (Git)

sudo apt install git

git config --global user.name "Ваше имя"

git config --global user.email "your.email@example.com"

9. Настройка системы баз данных (MySQL)

Это опциональная настройка.

sudo apt install mysql-server

sudo mysql_secure_installation

Настройте PHP для работы с MySQL:

sudo apt install php8.5-mysql

10. Настройка виртуальной среды

Установите и используйте встроенный сервер разработки PHP для изолированных проектов:

mkdir my_ml_project

cd my_ml_project

php -S localhost:8000

11. Проверка настройки

Создайте файл phpinfo.php в корневом каталоге вашего веб-сервера со следующим содержимым:

phpinfo();

Откройте этот файл в веб-браузере, чтобы проверить конфигурацию PHP.


12. Создание простого тестового скрипта для машинного обучения

Мы создадим два тестовых скрипта, по одному для каждой библиотеки, чтобы убедиться в корректной работе PHP-ML и Rubix ML.


Тестовый скрипт для PHP-ML

Создайте файл с именем php_ml_test.php в каталоге public:

require_once __DIR__ . '/../vendor/autoload.php';

use Phpml\Classification\KNearestNeighbors;

$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];

$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

$classifier = new KNearestNeighbors();

$classifier->train($samples, $labels);

$prediction = $classifier->predict([3, 2]);

echo "Предсказание: " . $prediction;

Тестовый скрипт Rubix ML


Создайте еще один файл с именем rubix_ml_test.php в вашей директории public:

require_once __DIR__ . '/../vendor/autoload.php';

use Rubix\ML\Classifiers\KNearestNeighbors;

use Rubix\ML\Datasets\Labeled;

use Rubix\ML\Datasets\Unlabeled;

$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];

$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

$dataset = new Labeled($samples, $labels);

$estimator = new KNearestNeighbors(3);

$estimator->train($dataset);

$testSamples = new Unlabeled([[3, 2]]);

$prediction = $estimator->predict($testSamples);

echo "Rubix ML Prediction: " . $prediction[0] . "\n";

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Конец ознакомительного фрагмента
Купить и скачать всю книгу
На страницу:
2 из 2