Цель заметки: вроде как можно к фреймворку ollama
прикрутить Web
—интерфейс дабы взаимодействовать не через консоль командной строки, а из браузера через Web
—интерфейс. Это интересно, и я в подробностях хотел бы посмотреть и добиться чтобы это работало у меня.
Чтобы эта заметка имела практическое применение, сперва нужно выполнить все опираясь на заметку: "Пробуем фреймворк Ollama + языковая модель llama3:8b на Ubuntu 22.04 Server"
иначе в элементе на Web
-странице не будет ничего:
Выберите модель: - пусто
Если в поиск ввести что нужно сделать, к примеру: 2 + 2
и нажать клавишу "ENTER"
! Пожалуйста, сначала выберите модель.
! Модель не выбрана
Шаг №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
ну что еще? — это через Google Chrome
не открылась страница, а через Internet Explorer 11
но дальше тоже ничего, за исключением символа OI
и страница пуста все еще.
Через некоторое время в браузере Google Chrome
в строке адреса увидел:
На заметку: В моем случае нужно было просто подождать покуда либо все закешируется либо загрузится в память, досконально не разбирался.
http://172.33.33.142:3000/auth
нажимаю на Get started
задаю администратора
Get started with Open WebUI
Open WebUI не устанавливает никаких внешних соединений, и ваши данные надежно хранятся на вашем локальном сервере.
Имя: указываю, к примеру, ekzorchik
Электронная почта: указываю к примеру support@ekzorchik.com
Пароль: указываю, к примеру, 712mbddr@
и нажимаю "Создать Аккаунт Администратора"
вижу
На заметку: я бы сказал что очень долго открывается Web
-интерфейс и вот такая вот ситуация что кажется что при обращении на http://172.33.33.142:3000
белый экран, возможно из-за того что на этой же системе Ubuntu 22.04 Server
у меня стоит ollama
+ модель llama3:8b
, а ресурсы системы на которой это все развернуто не столь быстры как хотелось. Ну да ладно. Моя цель пока попробовать.
через поиск к примеру, указываю: mikrotik wireguard tunnel mangle youtube
и нажимаю клавишу "ENTER"
но вот в Web
-интерфейсе есть возможность остановить ответ и появляется меню вида
где можно:
Редактировать
Копировать
Прочитать вслух
Хороший ответ
Плохой ответ
Продолжить ответ
Перегенерировать
Если обратиться к официальному сайту: 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.