Типизированный PHP-клиент к локальному серверу Ollama: генерация текста, эмбеддинги и streaming без принудительного переписывания платформы.
Архитектура · AI-системы · LLM · PHP
Problem
PHP-приложениям, в том числе на 7.2, нужен был понятный способ вызывать Ollama для генерации и эмбеддингов. Большинство LLM SDK предполагают современную среду выполнения и облачный API.
Role
Автор и сопровождающий
Approach
Собрал клиент в DDD-слоях: транспорт, генерация и эмбеддинги отдельно, DTO на границе, cURL внутри. Пакет tenqz/ollama в Composer.
Outcome
Открытая библиотека, через которую существующий PHP-бэкенд может говорить с локальными моделями — generate, embed, stream — и оставлять архитектуру приложения своей.
Ограничение то же, что у Qdrant: интересные PHP-системы часто нельзя перевести на новый язык или новую мажорную версию PHP одним шагом. Ollama уже работает локально. Не хватало клиента, который садится в кодовую базу PHP 7.2+.
Библиотека не продаёт «AI» как продукт. Она говорит с API: prompt, options, embeddings, stream. Generation и embedding — разные домены. Транспорт заменяем. Модель остаётся по ту сторону контракта, который принадлежит приложению.