Совсем недавно я рассказывал о том, как создать ИИ-агента и дать ему в руки инструменты, чтобы взаимодействовать с реальным миром. Сегодня я покажу пример, как сделать шаг вперед - создать MCP-сервер, который будет предоставлять инструменты для LLM в согласии с современными стандартами отрасли. О том, что это такое и откуда у него растут ножки, можно почитать в интернетах, или вот вам собранная Perplexity статья.
[Далее]Создание ИИ-агента на Python
ИИ шагает по планете с такой скоростью, что это пугает. Но лучше не пугаться, а постараться вспрыгнуть на эту волну и прокатиться на ней. Самое популярное, с чем мы сталкиваемся каждый день - это LLM (Large Language Model), говорящие ИИ-боты. Они много что могут нам рассказать, но вот ручек и ножек им не завезли. Другое дело - ИИ-агенты, это по сути те-же LLM, но с ручками и ножками. То есть с инструментами. Имея доступ к LLM (публичной или локальной) можно своими руками приделать им недостающие конечности и соорудить маленького, но своего Джарвиса. Я продемонстрирую, как это сделать с помощью Python и библиотеки LangChain.
[Далее]Скрипт конвертации Perplexity ссылок
К сожалению, когда копируешь (кнопкой “Копировать”) исследования Perplexity он генерирует документы, которые не совсем Markdown - ссылки на источники он помещает в конце документа, а в тексте остаются только некликабельные указатели типа [10]
. Это неудобно, если хочешь поместить исследование например в Obsidian.
Нагенерил скрипт, который это исправляет. Не сильно фонтан, но может кому сэкономит немного времени.
Создание валидной цепочки SSL сертификатов
Для написания тестов на валидность загружаемых сертификатов мне потребовалось создать несколько вариантов цепочек и приватных ключей. Прошерстив некоторый объем интернета, я собрал всю необходимую информацию о том, как локально сгенерировать корректную цепочку SSL сертификатов, которая будет проходить проверку стандартными средствами.
Чтобы не писать кучу команд всякий раз, напишем bash-скрипт. Для начала, зададим несколько настроечных констант:
[Далее]Python и пляски с процессами
Про использование нескольких процессов в Python уже написано невообразимое множество статей, хороших и не очень; сломано немало копий в обсуждении проблемы GIL и псевдопотоков. Я же просто хочу рассказать о том, как решалась задача с управлением небольшого дерева дочерних процессов.
Итак, исходная ситуация. Основной процесс запускает два дочерних, используя multiprocessing.Process
, передает туда
очередь multiprocessing.Queue
. Первый дочерний процесс просто собирает какие-то данные и пишет в очередь,
второй же запускает еще несколько процессов, куда передает ту-же очередь, с которой они и работают.
Python NLTK + Stanford NLP
Как известно, в Python стандартом работы с натуральным языком де-факто является NLTK. Несмотря на это, я довольно долго использовал Pattern от CLiPS из-за его простоты и скорости (многие отмечают тормознутость NLTK).
Но наступил момент, когда почти вся кодовая база была успешно портирована на Python 3.5, а разработчики Pattern так и не сделали версию с поддержкой третьей версии. И, судя по всему, не собираются.
[Далее]