Автоматизация новостей о крупных кошачьих: мой опыт работы с NewsCatcherAPI и OpenAI
С февраля 2007 года я вручную ищу, иногда перевожу и публикую новости о крупных кошачьих — этот процесс длится уже более 18 лет. Эта работа всегда отнимала много времени: куча ручного поиска и обработки новостных статей. Годами я мечтал автоматизировать эту задачу, и за последний месяц в свободное время наконец-то смог это сделать.
Я реализовал поиск новостей через API от @NewsCatcherAPI — замечательного сервиса с множеством новостных источников. Начал с поиска украинских новостей и обнаружил, что в этом сервисе больше украинских источников, чем в других подобных API. Хотя количество украинских источников меньше, чем можно найти в Google News, оно всё равно впечатляет.
@NewsCatcherAPI бесплатен для некоммерческого использования, что идеально подходит для моего проекта, ведь он некоммерческий. Цель моего проекта — популяризировать и предоставлять украинцам свежую информацию о крупных кошачьих, а также продвигать украинский язык. Сейчас язык находится под угрозой со стороны различных сил и нуждается в поддержке. К тому же на родном языке просто приятно общаться.
После получения новостей результаты фильтруются с помощью базовых алгоритмов. Затем нейросетевые модели GPT-4o-mini и GPT-4o анализируют их, чтобы определить, о каком виде диких кошек идет речь в каждой статье. Подходящие новости далее анализируются GPT-4o-mini, чтобы классифицировать их по стране, к которой они относятся, а если это событие в Украине — то и по конкретному региону.
Затем нейросеть ChatGPT-4o переводит новости с английского на украинский. Эти переводы анализируются ChatGPT-4o и o1, а GPT-4o-mini несколько раз редактирует их, чтобы устранить любые признаки перевода и сделать их такими, будто это статьи, написанные носителями украинского языка. Такой уровень автоматизации в основном возможен благодаря продвинутой модели o1 от OpenAI — это недешёвое решение, но я сейчас ищу альтернативы. Я отдаю предпочтение легко читаемому контенту с минимумом дословного перевода.
После всего этого я утверждаю новости к публикации, и они появляются в соцсетях и на моем сайте. Новый сайт мне удалось создать с нуля за пару недель. Очень помогли Laravel и @FilamentPHP. Я мог бы разработать сайт быстрее, но мои навыки немного заржавели, так как я больше работал над частями сложного веб-приложения, чем над созданием целостных сайтов.
В следующих постах я постараюсь подробнее рассказать, как я всё это реализовал. Проект с открытым исходным кодом, и вы можете взглянуть на него на моём GitHub. Впрочем, должен предупредить, что местами код не идеален. Готовый сайт находится по адресу https://bigcats.org.ua, а ссылки на социальные сети вы найдете там в футере.