Цель заметки: вроде как можно к фреймворку ollama прикрутить Webинтерфейс дабы взаимодействовать не через консоль командной строки, а из браузера через Webинтерфейс. Это интересно, и я в подробностях хотел бы посмотреть и добиться чтобы это работало у меня.

Чтобы эта заметка имела практическое применение, сперва нужно выполнить все опираясь на заметку: "Пробуем фреймворк Ollama + языковая модель llama3:8b на Ubuntu 22.04 Server"

иначе в элементе на Web-странице не будет ничего:

  • Выберите модель: - пусто

Если в поиск ввести что нужно сделать, к примеру: 2 + 2 и нажать клавишу "ENTER"

! Пожалуйста, сначала выберите модель.

! Модель не выбрана

Если установлен только Web-интерфейс open webui без LLM то нет возможности его использовать.

Шаг №1: Поэтому клонируем репозитарий в котором содержится Webоснастка Webui которую и будем использовать для работы с фреймворком ollama и языковой моделью llama:8b:

ekzorchik@srv-host1:~$ git clone https://github.com/open-webui/open-webui

Cloning into 'open-webui'...

remote: Enumerating objects: 89651, done.

remote: Counting objects: 100% (246/246), done.

remote: Compressing objects: 100% (113/113), done.

error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)

error: 5204 bytes of body are still expected

fetch-pack: unexpected disconnect while reading sideband packet

fatal: early EOF

fatal: fetch-pack: invalid index-pack output

Это было единожды выше, запустив клонирование репозитария снова — все прошло успешно, от чего такое могло произойти пока нет мыслей. Нашел упоминание что можно изменить метод взаимодействия с HTTP/2 на HTTP/1.1 — попробовал и прошло успешно, т.е. раз на раз не приходится, но полезно знать, как выйти из такой ситуации.

ekzorchik@srv-host1:~$ git config --global http.version HTTP/1.1

ekzorchik@srv-host1:~$ git config --global http.postBuffer 157286400

ekzorchik@srv-host1:~$ git clone https://github.com/open-webui/open-webui

Cloning into 'open-webui'...

remote: Enumerating objects: 89358, done.

remote: Counting objects: 100% (35/35), done.

remote: Compressing objects: 100% (26/26), done.

remote: Total 89358 (delta 20), reused 10 (delta 9), pack-reused 89323 (from 2)

Receiving objects: 100% (89358/89358), 172.13 MiB | 1.17 MiB/s, done.

Resolving deltas: 100% (58812/58812), done.

ekzorchik@srv-host1:~$

Шаг №2: Перехожу в склонированный репозитарий и пробую запустить Webоснасткуopen-webui:

ekzorchik@srv-host1:~$ cd open-webui/

ekzorchik@srv-host1:~/open-webui$

ekzorchik@srv-host1:~/open-webui$ sudo docker compose open-webui:/app/backend/data -f docker-compose.yaml up

sudo: docker: command not found

ekzorchik@srv-host1:~/open-webui$

увы у меня не установлен еще Docker.

Шаг №3: Обращаюсь к заметкам где у меня разобрано как установить Docker и Docker Compose on Ubuntu 22.04 Server:

Проделываю все из них на этой системе

Шаг №4: Далее изучаю файл README.md в каталоге open-webui и уже исходя из него, запускаю (у меня только CPU):

ekzorchik@srv-host1:~/open-webui$ docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Unable to find image 'ghcr.io/open-webui/open-webui:main' locally

main: Pulling from open-webui/open-webui

c29f5b76f736: Pull complete

73c4bbda278d: Pull complete

acc53c3e87ac: Pull complete

ad3b14759e4f: Pull complete

b874b4974f13: Pull complete

4f4fb700ef54: Pull complete

dfcf69fcbc2b: Pull complete

e8bfaf4ee0e0: Pull complete

17b8c991f4f9: Pull complete

ea3744c58635: Pull complete

cac032ad5673: Pull complete

a4cf54c2eeb5: Pull complete

dc7c355883c3: Pull complete

e7358ddcbc8b: Pull complete

0708c20e8c23: Pull complete

Digest: sha256:4450eb013528cbb49d8c4ea83602fb918be7dc01cabd492f8302184b78b793f2

Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main

ffda25a355e9bb6a0b31b85ea037ae0070d7d0b02f91b3cf73874f865425b3a5

ekzorchik@srv-host1:~/open-webui$

Шаг №5: Проверяю docker контейнер оболочки open-webui работает:

ekzorchik@srv-host1:~$ sudo docker ps

CONTAINER ID   IMAGE                                COMMAND           CREATED         STATUS                     PORTS                                         NAMES

ffda25a355e9   ghcr.io/open-webui/open-webui:main   "bash start.sh"   2 minutes ago   Up 2 minutes (unhealthy)   0.0.0.0:3000->8080/tcp, [::]:3000->8080/tcp   open-webui

ekzorchik@srv-host1:~$

Шаг №6: Открываю браузер и обращаюсь на URL адрес через браузер Google Chrome (http://IP&DNS:3000 or http://172.33.33.142:3000/) текущей системы, но увы

Не удается получить доступ к сайту

Сайт 172.33.33.142 не позволяет установить соединение.

ERR_CONNECTION_REFUSED

Пробую обратиться к Web-интерфейсу, но получаю ошибку: ERR_CONNECTION_REFUSED

ну что еще? — это через Google Chrome не открылась страница, а через Internet Explorer 11

Браузер IE при доступе к Web-интерфейсу open webui отобразил лишь символ OI

но дальше тоже ничего, за исключением символа OI и страница пуста все еще.

Через некоторое время в браузере Google Chrome в строке адреса увидел:

На заметку: В моем случае нужно было просто подождать покуда либо все закешируется либо загрузится в память, досконально не разбирался.

http://172.33.33.142:3000/auth

Web-интерфейс Open WebUI отобразился.

нажимаю на Get started

задаю администратора

Get started with Open WebUI

Open WebUI не устанавливает никаких внешних соединений, и ваши данные надежно хранятся на вашем локальном сервере.

  • Имя: указываю, к примеру, ekzorchik
  • Электронная почта: указываю к примеру support@ekzorchik.com
  • Пароль: указываю, к примеру, 712mbddr@

Задаю административный аккаунт для Open WebUI.

и нажимаю "Создать Аккаунт Администратора"

вижу

После входа в Open WebUI вижу информацию что нового.

На заметку: я бы сказал что очень долго открывается Web-интерфейс и вот такая вот ситуация что кажется что при обращении на http://172.33.33.142:3000 белый экран, возможно из-за того что на этой же системе Ubuntu 22.04 Server у меня стоит ollama + модель llama3:8b, а ресурсы системы на которой это все развернуто не столь быстры как хотелось. Ну да ладно. Моя цель пока попробовать.

В Web-интерфейсе Open WebUI выбираю модель: llama3:8b

через поиск к примеру, указываю: mikrotik wireguard tunnel mangle youtube и нажимаю клавишу "ENTER"

Через "Поиск" указываю что мне необходимо.

но вот в Web-интерфейсе есть возможность остановить ответ и появляется меню вида

В Web-интерфейсе Open WebUI есть множетсво удобных возможностей которых нет в консоли взаимодействия с языковой моделью.

где можно:

  • Редактировать
  • Копировать
  • Прочитать вслух
  • Хороший ответ
  • Плохой ответ
  • Продолжить ответ
  • Перегенерировать

Если обратиться к официальному сайту: https://docs.openwebui.com/, то можно подчерпнуть много интересного:

Обращение через Web посредством синтаксиса: https://<your-open-webui-url>/?models=<model_id>&q=%s

и многое другое, лучше все это не перечислять в своей заметке, а по мере надобности опираясь на нее проверять, читая и делая у себя. Не забывая конспектировать в виде пошаговых заметок так проще в дальнейшем.

Шаг №7: Останавливаем Webинтерфейс Open-Webui:

ekzorchik@srv-host1:~$ docker ps

CONTAINER ID   IMAGE                                COMMAND           CREATED             STATUS                       PORTS                                         NAMES

ffda25a355e9   ghcr.io/open-webui/open-webui:main   "bash start.sh"   About an hour ago   Up About an hour (healthy)   0.0.0.0:3000->8080/tcp, [::]:3000->8080/tcp   open-webui

ekzorchik@srv-host1:~$

ekzorchik@srv-host1:~$ docker stop ffda25a355e9

ffda25a355e9

Останавливаем контейнер если Вам все же лучше консоль чем Web-интерфейс:

ekzorchik@srv-host1:~$ docker ps

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

ekzorchik@srv-host1:~$

Получается я для себя успешно разобрал как на Ubuntu 22.04 Server развернуть Web-оснастку на доступ к использованию связки ollama + языковая модель llama3:8b, буду продолжать изучение, это интересно.

Пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.