Семантическая сеть давно меня заинтриговала. Идея превратить Интернет в понятную базу данных, доступную искусственному интеллекту, стала основой для моих дальнейших исследований. Идея создания интеллектуальной системы оповещения, цифрового стража, стоящего на страже информационного хаоса Интернета, постоянно вызывала у меня любопытство. Представьте себе робота, который беспрестанно прочесывает огромный океан сети, предупреждая вас о наступлении определенного события, скажем, о выходе новой книги. Это мечта, которую я преследовал много лет.
Появление автономных агентов, таких как AutoGPT и BabyAGI, пробудило мой интерес. Эти системы представляли собой новое многообещающее направление для технологий искусственного интеллекта. Я решил поэкспериментировать с этими инструментами, стремясь реализовать свою мечту об умной системе оповещения. Однако мое волнение быстро улеглось. Эти системы, хотя и являются продвинутыми, работают с акцентом на цели и ее последующим разделением на этапы. Это далеко от системы непрерывного и бдительного мониторинга, которую я себе представлял. К моему большому разочарованию, я обнаружил, что их архитектура плохо подходит для такой задачи. Вы можете заставить его работать иногда, но не надежно.
Недостатки существующих моделей зажгли искру для создания чего-то нового. Я решил создать свою собственную систему — систему событийно-управляемых автономных агентов. Я называю это WhenX.
Цель системы — создавать оповещения в форме «Когда произойдет X, сделайте Y». В этой первоначальной версии мы поддерживаем оповещения по электронной почте только в форме «Когда произойдет X, пришлите мне отчет по электронной почте».
В состав системы входят четыре агента: капитан, разведчик, страж и солдат.
Капитан является дирижером этого оркестра. Учитывая миссию, он отвечает за сбор команды агентов — разведчика, стража и солдата.
Разведчик выступает в роли исследователя, который отправляется на поиски соответствующей информации, создавая на своем пути «Наблюдения». Эти наблюдения являются основным сырьем, питающим систему WhenX.
Страж , привратник, внимательно изучает N последних наблюдений, сделанных разведчиком. Это проницательный объект, предназначенный для выявления изменений, какими бы незначительными они ни были, в данных наблюдения. Когда он обнаруживает что-то примечательное, он запускает «Тревогу», сигнализируя солдату о необходимости действовать.
Солдат , исполнитель, приступает к действию после получения сигнала тревоги от Стража. Он выполняет инструкции на основе сигналов тревоги, создавая «отчет», в котором инкапсулируются обнаруженные изменения или события.
$ poetry install
$ poetry run alembic upgrade head
Скопируйте файл .env.example в .env и заполните значения. Мы используем службу повторной отправки для отправки электронных писем. Вы можете создать бесплатную учетную запись и использовать ее для тестирования.
Цель системы — создавать оповещения в форме «Когда произойдет X», а затем «Отправить мне отчет». В этой первоначальной версии мы поддерживаем только оповещения по электронной почте.
Сначала нам нужно создать миссию. Миссия — это описание тревоги. Например, «Когда Харуки Мураками выпустит новую книгу».
$ python -m whenx create --mission " when Haruki Murakami releases a new book. "
Система начнет работать и будет создавать новое наблюдение каждый день. Наблюдение — это снимок текущего состояния вашего запроса. Система сравнит два последних наблюдения и, если обнаружит изменение, отправит электронное письмо с отчетом.
$ python -m whenx monitor
Вы можете перечислить все оповещения и их статус.
$ python -m whenx list
Вы можете удалить оповещение по его идентификатору.
$ python -m whenx delete --id a5dc910a-4457-4911-8ba3-c7713588e7ff