MCP-сервер для ИИ-агента

Совсем недавно я рассказывал о том, как создать ИИ-агента и дать ему в руки инструменты, чтобы взаимодействовать с реальным миром. Сегодня я покажу пример, как сделать шаг вперед - создать 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 так и не сделали версию с поддержкой третьей версии. И, судя по всему, не собираются.

[Далее]