Казалось бы, в посгресе и так есть неплохой полнотекстовый поиск (tsvector/tsquery), и вы из коробки можете проиндексировать ваши тексты, а потом поискать по ним. Но на самом деле это не совсем то, что нужно — такой поиск работает лишь по чётким совпадениям слов. Т.е. postgres не догадается, что "кошка гонится за мышью" — это довольно близко к "котёнок охотится на грызуна". Как же победить такую проблему?
TLDR:
Преобразовываем наши тексты в наборы чисел (векторы) при помощи API openAI.
Сохраняем векторы в базе с помощью pgvector.
Легко ищем близкие друг к другу векторы или ищем их по вектору-запросу.
Yii3 – пакетный фреймворк. А это значит, что вы можете использовать библиотеки из фреймворка в отвязке от экосистемы Yii. Например, такие пакеты можно подключить к Yii 2, Symfony, Laravel, к проекту без фреймворка или в любой другой PHP-проект.
В этой серии статей разберемся с основами "тройки", принципами построения фреймворка, готовыми библиотеками, инструментами для разработки, рассмотрим готовые шаблоны и demo приложения.
От автора: в этой статье я поделюсь своим опытом тестирования микросервисов. В последние годы команды разработчиков программного обеспечения внедряют архитектуру микросервисов, чтобы иметь возможность разрабатывать, тестировать и деплоить сервисы независимо и быстро. Для эффективного тестирования таких систем необходимо хорошо знать их архитектуру.