Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Testing AI без API
Новини 01 липня 2026

Тестування AI-систем у Laravel без жодного виклику API

Після побудови повноцінної AI-платформи з агентами, інструментами, базою знань, потоковим чатом та middleware постає питання: як тестувати код, що викликає штучний інтелект? Звертатися до OpenAI у тестовому наборі неможливо - це повільно, коштує грошей на кожному запуску, а відповіді змінюються щоразу, тому assertions ніколи не спрацьовують стабільно.

Фейкування AI-викликів

У цьому епізоді вся система тестується за допомогою Pest без жодного API-виклику, використовуючи систему фейків SDK. Це працює точно так само, як фейкування пошти, нотифікацій або черг у Laravel. Ви визначаєте відповіді заздалегідь і перевіряєте, що були надіслані правильні промпти.

Спочатку проводиться швидке очищення коду: middleware переноситься в окремий namespace AI/middleware. Потім пишуться тести, які перевіряють, що агент отримує коректні промпти, обробляє контекст розмови та повертає детерміновані відповіді.

Запобігання випадковим викликам

Використовується метод preventStrayPrompts, щоб виявляти випадкові AI-виклики у потоках, які не повинні активувати агента взагалі, наприклад при створенні тікета. Це гарантує, що AI спрацьовує лише там, де це передбачено архітектурою.

Тестування черг та інструментів

Черговані промпти теж потрапляють під тестування. Перевіряється, що TicketClassifier додається до черги при валідному поданні та не потрапляє туди при невалідному. Кастомні інструменти тестуються безпосередньо на реальних записах бази даних.

Під час запису один із тестів виявляє помилку у фабриці, яку автор виправляє в реальному часі. Саме такі баги тести і повинні ловити.

Feature-тестування та векторні сховища

Чат-ендпоінт проходить feature-тестування на автентифікацію, валідацію та коректну взаємодію з агентом. Потім тестується налаштування векторного сховища та заповнення бази знань шляхом фейкування створення store, завантаження документів та генерації embeddings.

Результати

Наприкінці всі 12 AI-тестів проходять успішно, виконуються швидко і ніколи не торкаються зовнішнього API. Їх можна запускати на кожному коміті без турбот про вартість чи нестабільність результатів.

Що далі

Наступний епізод присвячений безпеці. Агент захищається від prompt injection та інших атак, включаючи перевірку кожного повідомлення локальною LLM ще до того, як воно потрапить до OpenAI. Заблоковані повідомлення не коштують жодного центу на API-викликах.

Відеотуторіал епізоду доступний на YouTube та триває 15 хвилин. Код проєкту опублікований на GitHub.

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Backpack CRUD RCE

Повідомлення про безпеку: неавтентифіковане ін'єктування команд у Backpack\CRUD

Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

PostgreSQL 19 продовжує важливу тенденцію останніх років: класична реляційна база даних поступово перетворюється на універсальну платформу для роботи з різними типами даних - від JSON до графів і аналітики

Вакансії за темою

Full-time 6 дн. тому

Senior Full-Stack Developer (Laravel/AI Integration)

DevIT Group Віддалено $2,500 - $3,500

Senior Full-Stack Developer (Laravel / AI Integration) Про проєкт: Ми шукаємо досвідченого Full-Stack розробника для роботи над інноваційною платформою оркестрації ШІ-агентів та створення автономних інструментів розробки. Вам доведеться працювати зі складною бізнес-логікою, інтеграціями LLM-моделей та сучасною екосистемою Laravel (Livewire + Alpine.js). Чим потрібно буде займатися: Оркестрація ШІ-агентів Розробка рушія для управління пайплайнами, запуском агентів, state machine-процесами, забезпеченням ідемпотентності та відмовостійкості (failure recovery). Розвиток Agent Runtimes Підтримка різних режимів роботи агентів - від простих LLM-запитів (prompt mode) до контейнеризованих середовищ розробки (opencode mode) з доступом до файлової системи та інструментів візуального QA-тестування (Chromium + Playwright). Розробка продукту «Autonomous Developers» Створення функціоналу, де завдання з канбан-дошки автоматично перетворюються на процеси: клонування репозиторію, реалізація змін агентом, створення Pull Request (PR) та генерація звітів про виконану роботу зі скриншотами. Інтеграції Налаштування та підтримка інтеграцій з: GitHub App (server-side clone/push, встановлення токенів); OpenRouter (маршрутизація LLM); Stripe (білінг); Scaleway (serverless-задачі та S3); MCP-серверами. Робота з векторними базами даних (Big Brain). Управління клієнтськими сховищами знань на базі pgvector, реалізація гібридної фільтрації та семантичного пошуку через REST API, MCP і чат. Білінг та метрики. Розробка системи мікробілінгу, контролю витрат (spend caps & budgets) та прозорого відображення витрат для клієнтів. Вимоги до кандидата: Розмовна англійська: Upper-Intermediate Backend Глибокі знання PHP 8.3 та фреймворку Laravel. Frontend Досвід роботи з Livewire 3, Alpine.js та Tailwind CSS. Ми використовуємо server-driven UI без окремого SPA. Архітектура Досвід роботи з фоновими задачами (queued/background jobs). Розуміння multi-tenant архітектури баз даних (workspace-scoped). Бази даних Впевнене володіння MySQL та PostgreSQL. Обов’язковий досвід або розуміння роботи з pgvector. Досвід роботи з S3-сумісними сховищами даних (Scaleway). Інфраструктура Практичний досвід роботи з Docker. Розуміння процесів деплою та роботи з Fly.io, Hetzner, Scaleway Serverless Jobs, а також GitHub Webhooks. ШІ / LLM Розуміння принципів роботи сучасних мовних моделей. Досвід інтеграції через API (OpenRouter та інші). Наші стандарти якості та Engineering Culture: Покриття коду тестами. Ми використовуємо Pest із feature-first підходом. Строга типізація та статичний аналіз. PHPStan / Larastan. Єдиний стиль коду. Laravel Pint. CI/CD. Налаштований CI/CD-пайплайн для кожного Pull Request. Відгукнутись на вакансію

Full-time 26 дн. тому

Senior Automation QA (Java) Engineer

N-iX Lviv За результатами співбесіди

Our Client is a global leader in corporate brand protection and domain management, serving Fortune 500 and large enterprises with domain registration, online brand monitoring, and anti-counterfeiting services. Project Description The Client is consolidating two legacy client portals into a single modern platform, bringing feature parity ahead of client migration. Stack: PHP (Laravel), RabbitMQ, MySQL, Nuxt.js (Vue.js) on AWS. The Client currently has minimal test automation in place, making this a greenfield opportunity to define and build the automation framework from the ground up - covering regression, API, and end-to-end testing across the platform. Requirements - 6+ years of commercial QA automation experience on web-based products Strong experience with end-to-end UI automation (Playwright (preferred) or Selenium) Hands-on experience with API test automation Working knowledge of PHPUnit and/or Pest for feature and integration testing in Laravel applications Comfort working with at least one of Java or TypeScript / JavaScript as the primary automation language Solid understanding of test design principles - page object model, data-driven testing, test isolation, flake prevention Experience integrating automated tests into CI/CD pipelines (GitHub Actions, GitLab CI, or AWS CodePipeline) Familiarity with MySQL / Postgres for test data setup, validation, and cleanup Strong debugging and root-cause analysis skills across frontend, backend, and API layers Ability to work in a distributed, multi-timezone team (US / UK / Brazil) Excellent English communication skills Experience working in Agile / Scrum / Kanban Nice to Have - Experience with performance and load testing tools (k6, JMeter, Gatling) Exposure to contract testing (Pact) or BDD frameworks (Cucumber, Behat) Background in SaaS, multi-tenant platforms, or large-scale B2B portals Experience with AI-assisted testing tools (Copilot, Claude, Cursor) for test generation and maintenance Knowledge of RabbitMQ or other message brokers for event-driven test scenarios AWS services exposure (S3, CloudWatch, SQS) Responsibilities - Design, build, and maintain automated test suites across UI (Playwright), API (RestAssured / Postman), and backend (PHPUnit / Pest) layers Contribute to the automation framework architecture - tooling selection, patterns, reporting, and CI integration Write stable, maintainable tests with clear coverage of regression, smoke, and critical user journeys Partner with PHP and Java developers to embed testing into the development workflow - test-first mindset, PR-level test gates, shift-left practices Integrate test execution into CI/CD pipelines, ensuring fast feedback on every commit Define and track quality metrics - coverage, pass rate, flake rate, regression cycle time Support exploratory and manual testing where automation is not yet in place Troubleshoot failing tests and environment issues, working with DevOps and engineering to resolve root causes Collaborate with Client on test strategy and release readiness Participate in Agile ceremonies (stand-ups, planning, retros, demos) Contribute to building a test automation culture - mentoring developers on writing testable code, sharing best practices We offer*:* - Flexible working format - remote, office-based or flexible A competitive salary and good compensation package Personalized career growth Professional development tools (mentorship program, tech talks and trainings, centers of excellence, and more) Active tech communities with regular knowledge sharing Education reimbursement Memorable anniversary presents Corporate events and team buildings Other location-specific benefits not applicable for freelancers

Full-time Вчора

Middle PHP Engineer (5298)

N-iX Віддалено За результатами співбесіди

About client Our client Ryan, an award-winning global tax services and software provider, is the largest Firm in the world dedicated exclusively to business taxes. With global headquarters in Dallas, Texas, the Firm provides an integrated suite of federal, state, local, and international tax services on a multijurisdictional basis, including tax recovery, consulting, advocacy, compliance, and technology services. Ryan is a seven-time recipient of the International Service Excellence Award from the Customer Service Institute of America (CSIA) for its commitment to world-class client service. About the project: A VAT recovery system for Ryan clients in European countries that would help to automate the regular work of VAT specialists at Ryan. The client team is located in Braga, Portugal. Responsibilities: Design, build, and maintain efficient, reusable, and reliable code Contribute to the best possible performance, quality, and responsiveness of applications Identify bottlenecks and bugs, and devise solutions to mitigate and address these issues Help maintain code quality, organization, and automation Requirements: Minimum 4 years of commercial experience as a PHP/Laravel developer Experience working in the finance domain (or at least education in finance) would be an advantage At least upper-intermediate English level Solid knowledge and experience with PHP and the Laravel framework Confident knowledge of Object-Oriented Design principles Experience with LAMP stack (Linux, Apache, MySQL, PHP) Experience working with YAML and XML documents and files Experience working with 3rd party APIs and web services Skilled in using Git or another version control system Good theoretical understanding of software development Experience working in an Agile (preferably SCRUM) environment Strong communication skills Team player, responsible, and hardworking Will be a plus Good understanding of JavaScript (ES6, TypeScript), HTML and CSS

Пакети за темою

Docudoodle

genericmilk/docudoodle

Генерування документації для вашого Laravel-додатку за допомогою OpenAI.

153 2.3.0 13 5

Bagisto

bagisto/bagisto

Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.

27,502 v2.4.7 12 10