В предыдущей статье я давал специфические, несколько провокационные советы по работе с XWiki. Сегодня же мы обратимся к актуальным трендам. Если я не забыл выпить свои таблетки, то тема больших языковых моделей (LLM) по-прежнему вызывает большой интерес.
Представим следующую ситуацию: вы трудитесь в небольшой IT-компании, и вам поставили задачу — запустить свою «Confluence с блекджеком и нейросетями».
После недолгих поисков вы остановили свой выбор на OpenLLM — веб-API для работы с большими языковыми моделями, и XWiki — open source аналоге Confluence. Осталось лишь их подружить. И что самое приятное, для решения этой задачи, каких-то специальных навыков нам не понадобится.
N.B. Я надеюсь, что вы уже немного знакомы с XWiki. Но если нет, то можно обратится к одной из прошлых статей.
Оглавление:
Всё дело в том, что команда разработчиков XWiki уже во всю колдует над проектом по интеграции с LLM. Ключевая его часть — приложение LLM Application. Оно еще находится в стадии beta. Однако, развивается достаточно быстро и думаю не за горами тот день, когда мы увидим заветную версию 1.0.
Для работы с актуальной версией LLM Application, нам понадобится версия XWiki не ниже 16.2.0. На момент подготовки статьи была доступна версия 16.10.1 и я выбрал её.
Напомню, что можно скачать демонстрационную версию XWiki, которая не требует установки. Её надо будет только распаковать из архива и запустить start_xwiki.bat / start_xwiki.sh в зависимости от вашей операционной системы. Если это ваше первое знакомство с XWiki рекомендую выбирать именно её в варианте «Standard Flavor Pre-installed».
Запускаем OpenLLM
Прежде чем разбираться с настройками XWiki нам необходим веб-сервер для работы с LLM. Я выбрал OpenLLM. Мой выбор пал на него, потому что я прочитал описание и сразу понял, что в репозитории моделей есть подходящие варианты для моего слабенького компа с древней видеокартой.
Думаю можно использовать любой другой веб-сервер совместимый с Open AI API или даже написать свой собственный.
Для установки OpenLLM нам потребуется Python 3.
Введите команду и начнется процесс инсталляции.
pip install openllm # or pip3 install openllm
Далее нужно выбрать модель нейросети, которую вы разместите на своем сервере.
Перейдите в репозиторий моделей и подберите себе, что-то адекватное ресурсам компьютера.
Мне с моей старой видеокартой подходили только варианты, у которых было пусто в графе «required GPU RAM». Если вам совсем ничего не подошло, вы можете развернуть кастомную модель, но детально на этом процессе мы останавливаться не будем.
Какую бы модель вы не выбрали помните, что развертывание модели потребует десятки гигабайт свободного места и много времени.
После того как мы определились с моделью, осталось выполнить команду
openllm serve <название модели из графы version>.
Если все прошло удачно, то по адресу http://localhost:3000/ откроется страница со спецификацией Open API. На которой можно будет опробовать методы API с помощью кнопки “Try it out”
Если вы больше привыкли общаться с LLM в формате чата, то он доступен по адресу http://localhost:3000/chat.
Если тесты модели прошли успешно, можно переходить к конфигурации XWiki
Настройка LLM Application в XWiki
Запустите XWiki авторизуйтесь под администратором (по умолчанию логин: Admin / пароль: admin) и перейдите в менеджер расширений в панели управления.
Установите LLM Application.
Для начала настроим подключение к OpenLLM.
В боковом меню найдите пункт Other->AI LLM Application
Не будем удалять существующие сервера, а создадим свой OpenLLM.
Остальные настройки не трогаем
Откройте приложение
.
И в самом низу страницы перейдите в настройки моделей.
В разделе «Actions» нажмите на кнопку «ADD NEW ENTRY», затем во всплывающем окне введите название модели, которую вы развернули ранее с помощью OpenLLM. Это название будет отправляться в запросах к API. N.B. возможно в будущем логика изменится.
На открывшейся странице выберете сервер OpenLLM
Укажите id модели, такое же как название и выберите размер контекста, я наугад оставил 128000, но думаю тут всё зависит от ресурсов вашей электронно-вычислительной машины.
Остальные настройки пока не трогаем.
Сохраните настройки.
Пришло время вернутся в приложение и отправить наш первый запрос. Не забудьте выбрать модель, которую только что создали.
Ответ получен, программа минимум выполнена.
Дополнительные возможности
К сожалению, сегодня нам придется оставить за бортом, включение информации из страниц XWiki в контекст для работы с нейросетью.
Возможно из-за того, что проект еще в стадии беты у меня не заработало расширение Index for the LLM Application, реализующее данный функционал.
Может быть ему для работы необходимо расширение LLM Internal Inference Server (BETA), которое позволяет интегрировать встраиваемые модели PyTorch в XWiki. Однако, в процессе его установки возникли проблемы с несколькими зависимостями.
Но мы не будем расстраиваться, как говорится: «Если судьба преподносит тебе лимон, сделай из него лимонад». Теперь у меня есть повод дождаться полноценного релиза, проверить работоспособных этих расширений и написать еще одну статью.
Кстати, если вы хотите подключить LLM к XWiki, но не готовы обновится до версии 16.2.0 или вам хочется вместе со мной потренироваться в написании приложений с помощью встроенного в XWiki инструмента «App Within Minutes», напишите мне об этом в комментариях. Если я пойму, что тема вам интересна, то мы попробуем самостоятельно с нуля разработать простой функционал для интеграции OpenLLM и XWiki.
Надеюсь, статья получилась полезной. Буду рад почитать, конструктивные комментарии.