Objective:
Run AI models only using php. Now this is possible with https://github.com/CodeWithKyrian/transformers-php this library. I have tried object detection and question answering using this library.
Technology:
1. PHP 8.2
Initialization:
Guide - https://transformers.codewithkyrian.com/getting-started
1. Initialize project by composer init cmd.
2. Install transformer library by composer require codewithkyrian/transformers cmd.
3. Enable ffi extention in php.ini
extension = ffi
ffi.enable = true
4. Enable opcache
opcache.jit = tracing
5. Increase memory limit
memory_limit = 512M
I. Object detection: (https://transformers.codewithkyrian.com/object-detection)
Object detection can improve web application perspective . Example: Retail applications can speed up checkout by automatically recognizing purchased items. Similarly, inventory management can be automated by detecting stock levels from images or video feeds.
require __dir__.'\..\vendor\autoload.php';
use Codewithkyrian\Transformers\Transformers;
use function Codewithkyrian\Transformers\Pipelines\pipeline;
use Codewithkyrian\Transformers\Utils\ImageDriver;
use Codewithkyrian\Transformers\Utils\Image;
Transformers::setup()
->setImageDriver(ImageDriver::GD)
->apply();
$detector = pipeline('object-detection');
$file = 'path\image\image.jpg';
$result = $detector($file,threshold: 0.6);
$image = Image::read(__dir__.'\images\\'.$file);
fororeach ($result as $object) {
$box = $object['box'];
$image = $image->drawRectangle($box['xmin'], $box['ymin'], $box['xmax'], $box['ymax'], '000000', thickness: 2);
$image = $image->drawText($object['label'], $box['xmin'], max($box['ymin'] - 14, 0),'\fonts\used\Roboto-Medium.ttf', 12, '000000');
}
$image->save('path\image\output.jpg');
Result image:
Input image:
II. Question answering - (https://transformers.codewithkyrian.com/question-answering)
The full product description, features, FAQs, or any relevant text are fed into the AI model as the "context" or "knowledge base.". The user gets a specific and informative answer without needing to read the entire description.
require __dir__.'\..\vendor\autoload.php';
use function Codewithkyrian\Transformers\Pipelines\pipeline;
$question = 'Which Gmail feature do you find most helpful for staying organized and why?';
$context = 'Gmail is a powerful, user-friendly email service that seamlessly integrates with Google Workspace to enhance your productivity. In 2025, Gmail offers advanced AI-driven features like smart email summarization that lets you preview the essential points of long emails instantly, saving you time. With improved spam detection powered by machine learning, your inbox stays clean and secure from phishing or junk mail. Gmail’s integrated task panel enables you to convert emails into actionable tasks with due dates and calendar sync, streamlining your workflow without leaving your inbox. Other highlights include voice typing for hands-free email composition, real-time translation for multilingual communication, dynamic smart labels and filters for better organization, and offline mode improvements so you can work anywhere. Whether on web or mobile, Gmail keeps you connected with intuitive features that reduce clutter and help you focus on what matters most.';
$pipeline = pipeline('question-answering', 'Xenova/distilbert-base-cased-distilled-squad');
$result = $pipeline($question, $context, topK: 3);
print_r($result);
output:


Comments
Post a Comment