sadium/content/posts/nextcloud_x_litellm_x_ollama.md
2024-07-21 12:41:47 +03:00

4.6 KiB
Raw Blame History

title date author tags description showFullContent readingTime hideComments
Nextcloud Assistant ← LiteLLM ← Ollama 2024-07-19 Сисадмин Линк
ai
nextcloud
litellm
ollama
Настройка локального ИИ для Nextcloud Assistant через прослойку LiteLLM false false false
Опять же, как было в случае с принтером, у меня Arch-based дистрибутив, поэтому буду расписывать по нему. Начнём с установки Ollama. У меня карточка от красных, поэтому я ставлю версию rocm. bash yay -S ollama-rocm или bash sudo pacman -S ollama-rocm Как в моём случае, почему-то оно не подхватывало мою RX 6700 XT (но тут нашлось решение), поэтому мне пришлось редактировать сервис systemd следующим образом: bash sudo systemctl edit --full ollama bash [Unit] Description=Ollama Service Wants=network-online.target After=network.target network-online.target [Service] ExecStart=/usr/bin/ollama serve WorkingDirectory=/var/lib/ollama Environment="HOME=/var/lib/ollama" Environment="HSA_OVERRIDE_GFX_VERSION=10.3.0" # Добавлено, чтобы увидело карточку Environment="OLLAMA_HOST=0.0.0.0" # Возможность локально подключатся извне User=ollama Group=ollama Restart=on-failure RestartSec=3 Type=simple PrivateTmp=yes ProtectSystem=full ProtectHome=yes [Install] WantedBy=multi-user.target Далее устанавливаем желаемую модель, в моём случае это llama3 и qwen2 bash ollama pull llama3 bash ollama pull qwen2 Далее идём ставить LiteLLM. Это прослойка между Ollama и Nextcloud LocalAI, которая использует запросы в формате OpenAI API. bash pipx install 'litellm[proxy]' Нам нужна именно litellm[proxy], а не просто litellm! Теперь нужно собственно, запустить модели, с которыми впоследствии мы будем общаться через Nextcloud Assistant.
Однако, перед тем, как мы перейдём к запуску наших моделей, нам нужно создать файлик config.yaml, который мы впоследствии "скормим" litellm bash model_list: - model_name: ollama/llama3 litellm_params: model: ollama/llama3 - model_name: ollama/qwen2 litellm_params: model: ollama/qwen2 # ну далее по шаблону, если есть другие модели Затем я сделал systemd сервис, чтобы не запускать это дело ручками, он должен располагаться в bash /home/ваш_пользователь/.config/systemd/user/litellm.service bash [Unit] Description=LiteLLM for Ollama [Service] ExecStart=/home/ваш_пользователь/.local/bin/litellm --config путь_до/config.yaml Restart=on-failure RestartSec=5s [Install] WantedBy=default.target Далее bash systemctl --user daemon-reload systemctl --user enable --now litellm Теперь идём в настройки сервера Искусственный интеллект [/settings/admin/ai], предварительно установив Nextcloud Assistant и OpenAI and LocalAI integration, листаем ниже до OpenAI и локальная интеграция. bash Service URL - ip_пк:4000 Service Name (optional) - LiteLLM (или другое, какое хотите) API key - не нужен Default completion model to use - выбираем ollama/вашаодель (openai) Max new tokens per request - я поставил 17500, но это уже индивидуально Select enabled features отключил: Image generation provider Speech-to-text потому что модель такое не умеет Статья написана без использования ИИ. Хотя, наверное, это и так видно 🙃