Skip to content

Commit

Permalink
Update the tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
svenja11 committed Aug 19, 2024
1 parent c29cde1 commit 182fee0
Show file tree
Hide file tree
Showing 20 changed files with 66 additions and 72 deletions.
69 changes: 33 additions & 36 deletions tutorials/ai-chatbot-with-ollama-and-open-webui/01.de.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,32 @@ cta: "gpu"

Dieses Tutorial erklärt wie man auf einem Server mit Ubuntu oder Debian [Ollama](https://github.com/ollama/ollama) installiert und Sprachmodelle hinzufügt. Es wird auch gezeigt, wie man mit [Open WebUI](https://github.com/open-webui/open-webui) eine Chat-Benutzeroberfläche einrichtet und wie man ein eigenes Sprachmodell erstellt.

![webui-preview](images/01_chatui_preview.jpg)
![webui-preview](images/01_chatui_preview.de.jpg)

**Voraussetzungen**

* **Ein Server** mit Ubuntu/Debian
* Zugriff auf den root-Benutzer oder einen Benutzer mit sudo-Rechten.
* Basiseinstellungen einschließlich einer Firewall sollten bereits eingerichtet worden sein.

* **Mindestanforderungen** für die Hardware
* CPU: Im Idealfall Intel/AMD CPU die AVX512 oder DDR5 unterstützt. Zum Prüfen:
```bash
lscpu | grep -o 'avx512' && sudo dmidecode -t memory | grep -i "DDR5"
```
* RAM: 16GB
* Speicherplatz: ca. 50GB
* GPU: Nicht erforderlich

> Du kannst Ollama und die Web-UI entweder auf demselben Server installieren oder auf zwei unterschiedlichen Servern. Wenn du es auf zwei **unterschiedlichen** Servern installierst, brauchst du zwei Server mit Ubuntu/Debian.

Das Tutorial wurde getestet mit *Ubuntu 22.04* und *Debian 12*.
Das Tutorial wurde getestet mit *Ubuntu 24.04* und *Debian 12*.

## Schritt 1 - Ollama installieren

Folgend wird erklärt, wie man Ollama manuell installiert. Für einen schnellen Start, kannst du das Installations-Skript nutzen und direkt mit "[Schritt 2 - Open WebUI installieren](#schritt-2---open-webui-installieren)" fortfahren.

> Installations-Skript: `curl https://ollama.ai/install.sh | sh`
> Installations-Skript: `curl -fsSL https://ollama.com/install.sh | sh`

Um Ollama selbst zu installieren, folge diesen Schritten:

Expand All @@ -55,7 +64,7 @@ Um Ollama selbst zu installieren, folge diesen Schritten:

* Lade Ollama herunter und erstelle einen neuen Benutzer namens "ollama".
```bash
sudo curl -L https://ollama.ai/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo chmod +x /usr/bin/ollama
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama
```
Expand Down Expand Up @@ -115,7 +124,7 @@ Im nächsten Schritt wird erklärt, wie man eine Benutzeroberfläche installiert

In der Ollama-Dokumentation auf GitHub werden mehrere verschiedene [Web- und Terminal-Integrations](https://github.com/ollama/ollama?tab=readme-ov-file#web--desktop) gelistet. In diesem Beispiel wird erklärt, wie man [Open WebUI](https://github.com/open-webui/open-webui) installiert.

![Open WebUI preview](images/01_chatui_preview.jpg)
![Open WebUI preview](images/01_chatui_preview.de.jpg)

Du kannst Open WebUI entweder auf demselben Server wie Ollama installieren, oder auf einem anderen Server. Wenn du Open WebUI auf einem **anderem** Server installierst, stelle vorher sicher, dass die Ollama API über dein Netzwerk erreichbar ist. Um sicherzugehen, kannst du auf dem Server, auf dem Ollama installiert wurde, nochmal prüfen ob der Wert für `OLLAMA_HOST` in der Datei `/etc/systemd/system/ollama.service` korrekt ist.

Expand All @@ -128,9 +137,9 @@ Folgend wird erklärt wie man die Benutzeroberfläche installiert:

* Installiere npm und pip, klone das WebUI-Repository und erstelle eine Kopie der "environment"-Datei:
```bash
sudo apt update && sudo apt install npm python3-pip git -y
git clone https://github.com/ollama-webui/ollama-webui.git
cd ollama-webui
sudo apt update && sudo apt install npm python3-pip python3-venv git -y
git clone https://github.com/open-webui/open-webui.git
cd open-webui
cp -RPp .env.example .env
```
In `.env` wird standardmäßig `localhost:11434` angegeben, um sich mit der Ollama API zu verbinden. Wenn du die Ollama API auf demselben Server installiert hast wie Open WebUI, kannst du die Einstellung so lassen. Wenn du Open WebUI auf einem anderen Server installiert hast als die Ollama API, musst du `.env` bearbeiten und den Standardwert mit der Adresse des Servers austauschen, auf dem Ollama installiert ist.
Expand All @@ -146,7 +155,7 @@ Folgend wird erklärt wie man die Benutzeroberfläche installiert:
Wenn eine Fehlermeldung wie `Not compatible with your version` angezeigt wird, führe folgende Befehle aus, um die aktuellste Version zu verwenden:

```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install node && nvm use node
npm install -g npm@latest
Expand All @@ -159,24 +168,13 @@ Folgend wird erklärt wie man die Benutzeroberfläche installiert:
* Installiere die benötigten Python-Pakete:
```bash
cd backend
sudo pip install -r requirements.txt -U
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt -U
```
<blockquote>
<details>
<summary>Hier klicken falls eine Fehlermeldung erscheint</summary>

Bei einer Fehlermeldung kannst du es evtl. mit `--break-system-packages` erneut versuchen.

```bash
sudo pip install -r requirements.txt -U --break-system-packages
```

</blockquote>
</details>

* Starte die WebUI mit `ollama-webui/backend/start.sh`.
```bash
sh start.sh
bash start.sh
```
> Wenn du Ollama auf einem anderen Server installiert hast, stelle sicher, dass die Firewall auf dem Server mit Ollama den Zugriff auf den API-Port erlaubt. Der Standardport für die API ist `11434`.

Expand Down Expand Up @@ -209,7 +207,7 @@ Wie zuvor bereits erwähnt kann man Ollama und Open WebUI entweder auf demselben
> Bevor du Open WebUI startest, stelle sicher, dass die Firewall auf dem Server mit Ollama den Zugriff auf den Port der API erlaubt. Der Standard-Port für die API ist `11434`.

```bash
sudo docker run -d -p 3000:8080 -e OLLAMA_API_BASE_URL=http://<ip-adress>:11434/api -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
sudo docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://<ip-adress>:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
```
> Ersetze `<ip-adress>:11434` mit der Adresse des Servers auf dem Ollama installiert ist.

Expand Down Expand Up @@ -279,22 +277,21 @@ Es gibt verschiedene Firewall-Tools. In diesem Tutorial wird das Standard-Firewa

Nachdem du die WebUI geöffnet hast, musst du den ersten Benutzer-Account erstellen. Der erste Benutzer besitzt Admin-Rechte. Um den ersten Chat zu starten, muss ein Modell ausgewählt werden. Auf der [offiziellen Ollama-Webseite](https://ollama.com/library) gibt es eine Liste mit verfügbaren Modellen. In diesem Beispiel wird "llama2" hinzugefügt.

* Wähle oben rechts das "Einstellungen"-Symbol
![settings icon](images/02_chatui-model-settings.jpg)
* Gehe zu "Models", gib ein Modell an und klicke auf das Symbol zum Herunterladen.
![download model](images/03_chatui-model-download.jpg)
* Klicke unten links auf den Benutzer und wähle "Administrationsbereich" aus.
![settings icon](images/02_chatui-model-settings.de.jpg)
* Gehe zu "Einstellungen" » "Modelle", gib ein Modell an und klicke auf das Symbol zum Herunterladen.
![download model](images/03_chatui-model-download.de.jpg)
Warte bis diese Nachricht erscheint:
```markdown
Model 'llama2' has been successfully downloaded.
Modell 'llama2' wurde erfolgreich heruntergeladen.
```
> Wenn eine Fehlermeldung wie `Ollama WebUI: Server Connection Error` angezeigt wird, ist es möglich, dass Ollama nicht aktiv ist. Auf dem Server kann mit `systemctl status ollama` der Status geprüft werden. Stelle sicher, dass du `sudo systemctl start ollama` ausgeführt hast.
* Schließe die Einstellungen und gehe zurück zum Chat.
* Wähle oben vom Chat "Select a model" aus und füge dein Modell hinzu.
![](images/04_chatui-model-llama2.jpg)
> Wenn eine Fehlermeldung wie `WebUI could not connect to Ollama` angezeigt wird, ist es möglich, dass Ollama nicht aktiv ist. Auf dem Server kann mit `systemctl status ollama` der Status geprüft werden. Stelle sicher, dass du `sudo systemctl start ollama` ausgeführt hast.
* Gehe zurück zum Chat, wähle "Wählen Sie ein Modell" aus und füge dein Modell hinzu.
![](images/04_chatui-model-llama2.de.jpg)
* Wenn du mehrere Modelle hinzufügen willst, kannst du dafür das `+`-Symbol verwenden.
![several models](images/05_chatui-model-several.jpg)
* Sobald du die Modelle ausgewählt hast, die du verwenden möchtest, kannst du anfangen Fragen zu stellen. Wenn du mehrere Modelle ausgewählt hast, kannst du zwischen den Antworten wechseln.
![switch-answers](images/06_chatui-model-responses.jpg)
![several models](images/05_chatui-model-several.de.jpg)
* Sobald du die Modelle ausgewählt hast, die du verwenden möchtest, kannst du anfangen Fragen zu stellen. Wenn du mehrere Modelle ausgewählt hast, erhältst du mehrere Antworten.
![switch-answers](images/06_chatui-model-responses.de.jpg)

## Schritt 5 - Eigene Modelle hinzufügen

Expand Down
69 changes: 33 additions & 36 deletions tutorials/ai-chatbot-with-ollama-and-open-webui/01.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,32 @@ cta: "gpu"

This tutorial explains how to install [Ollama](https://github.com/ollama/ollama) to run language models on a server with Ubuntu or Debian. It also shows how to setup a chat interface with [Open WebUI](https://github.com/open-webui/open-webui), and how to use a custom language model.

![webui-preview](images/01_chatui_preview.jpg)
![webui-preview](images/01_chatui_preview.en.jpg)

**Prerequisites**

* **One server** with Ubuntu/Debian
* You need access to the root user or a user with sudo permissions.
* Before you start, you should complete some basic configuration, including a firewall.

* **Minimum** hardware requirements
* CPU: Ideally an Intel/AMD CPU that supports AVX512 or DDR5. To check, you can run:
```bash
lscpu | grep -o 'avx512' && sudo dmidecode -t memory | grep -i "DDR5"
```
* RAM: 16GB
* Disk space: about 50GB
* GPU: Not mandatory

> You can choose to either install Ollama and the web UI on the same server or on two separate servers. If you install them on **separate** servers, you will need two servers with Ubuntu/Debian.

The tutorial was tested with *Ubuntu 22.04* and *Debian 12*.
The tutorial was tested with *Ubuntu 24.04* and *Debian 12*.

## Step 1 - Install Ollama

The following step explains how to install Ollama manually. For a quick start, you can use the installation script and continue with "[Step 2 - Install Ollama WebUI](#step-2---install-open-webui)".

> Installation script: `curl https://ollama.ai/install.sh | sh`
> Installation script: `curl -fsSL https://ollama.com/install.sh | sh`

To install Ollama yourself, follow these steps:

Expand All @@ -55,7 +64,7 @@ To install Ollama yourself, follow these steps:

* Download the Ollama binary and create a Ollama user
```bash
sudo curl -L https://ollama.ai/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
sudo chmod +x /usr/bin/ollama
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama
```
Expand Down Expand Up @@ -102,7 +111,7 @@ To install Ollama yourself, follow these steps:
Use `systemctl status ollama` to check the status. If Ollama is not active and running, make sure you ran `systemctl start ollama`.
In the terminal, you can now start [language models](https://ollama.com/library) and aks questions. For example:
In the terminal, you can now start [language models](https://ollama.com/library) and ask questions. For example:
```bash
ollama run llama2
Expand All @@ -115,7 +124,7 @@ The next step explains how to install a web UI so that you can ask questions in
In the Ollama documentation on GitHub, you can find a [list of different web and terminal integrations](https://github.com/ollama/ollama?tab=readme-ov-file#web--desktop). This example explains how to install [Open WebUI](https://github.com/open-webui/open-webui).
![Open WebUI preview](images/01_chatui_preview.jpg)
![Open WebUI preview](images/01_chatui_preview.en.jpg)
You can choose to either install Open WebUI on the same server as Ollama, or install Ollama and Open WebUI on two separate servers. If you install Open WebUI on a **separate** server, make sure the Ollama API is exposed to your network. To double-check, view `/etc/systemd/system/ollama.service` on the server that has the Ollama installed and verify the value of `OLLAMA_HOST`.
Expand All @@ -128,9 +137,9 @@ The steps below explain how to install the user interface:
* Install npm and pip, clone the WebUI repository, and create a copy of the example environment file:
```bash
sudo apt update && sudo apt install npm python3-pip git -y
git clone https://github.com/ollama-webui/ollama-webui.git
cd ollama-webui
sudo apt update && sudo apt install npm python3-pip python3-venv git -y
git clone https://github.com/open-webui/open-webui.git
cd open-webui
cp -RPp .env.example .env
```
In `.env`, the address to connect to the Ollama API is set to `localhost:11434` by default. If you installed the Ollama API on the same server as your Open WebUI, you can leave this setting as is. If you installed Open WebUI on a separate server than the Ollama API, edit `.env` and replace the default value with the address of the server that has Ollama installed.
Expand All @@ -146,7 +155,7 @@ The steps below explain how to install the user interface:
If you get an error like `Not compatible with your version`, run the following commands to use the latest version:
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install node && nvm use node
npm install -g npm@latest
Expand All @@ -159,24 +168,13 @@ The steps below explain how to install the user interface:
* Install required python packages:
```bash
cd backend
sudo pip install -r requirements.txt -U
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt -U
```
<blockquote>
<details>
<summary>Click here if you get an error</summary>

If you get an error, you can consider using `--break-system-packages` like this:

```bash
sudo pip install -r requirements.txt -U --break-system-packages
```

</blockquote>
</details>
* Start the web UI with `ollama-webui/backend/start.sh`.
```bash
sh start.sh
bash start.sh
```
> If you installed Ollama on a different server, make sure the firewall on the server with Ollama allows access to the port of the API before you start the web UI. The default port for the API is `11434`.
Expand Down Expand Up @@ -209,7 +207,7 @@ As mentioned before, you can choose to either install Open WebUI on the same ser
> Before you start the Open WebUI, make sure the firewall on the server with Ollama allows access to the port of the API. The default port for the API is `11434`.
```bash
sudo docker run -d -p 3000:8080 -e OLLAMA_API_BASE_URL=http://<ip-adress>:11434/api -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
sudo docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://<ip-adress>:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
```
> Replace `<ip-adress>:11434` with the address of the server that has Ollama installed.
Expand Down Expand Up @@ -278,22 +276,21 @@ Managing `ufw` firewall rules:
After you accessed the web UI, you need to create the first user account. This user will have admin priviliges. To start your first chat, you need to select a model. You can browse a list of models on the [official Ollama website](https://ollama.com/library). In this example, we will add "llama2".
* In the top right corner, select the settings icon
![settings icon](images/02_chatui-model-settings.jpg)
* Go to "Models", enter a model and select the download button.
![download model](images/03_chatui-model-download.jpg)
* In the bottom left corner, click on the user and select "Admin Panel".
![settings icon](images/02_chatui-model-settings.en.jpg)
* Go to "Settings" » "Models", enter a model and select the download button.
![download model](images/03_chatui-model-download.en.jpg)
Wait until this message pops up:
```markdown
Model 'llama2' has been successfully downloaded.
```
> If you get an error such as `Ollama WebUI: Server Connection Error`, it can mean that Ollama is not active and running. On the server, use `systemctl status ollama` to check the status and make sure you ran `sudo systemctl start ollama`.
* Close the settings to go back to the chat.
* In the chat, click on "Select a model" at the top and add your model.
![](images/04_chatui-model-llama2.jpg)
> If you get an error such as `WebUI could not connect to Ollama`, it can mean that Ollama is not active and running. On the server, use `systemctl status ollama` to check the status and make sure you ran `sudo systemctl start ollama`.
* Go back to the chat, click on "Select a model" at the top and add your model.
![](images/04_chatui-model-llama2.en.jpg)
* If you want to add several models, you can use the `+` sign at the top.
![several models](images/05_chatui-model-several.jpg)
* Once you added the models you want to use, you can start asking your questions. If you added several models, you can switch between the answers.
![switch-answers](images/06_chatui-model-responses.jpg)
![several models](images/05_chatui-model-several.en.jpg)
* Once you added the models you want to use, you can start asking your questions. If you added several models, you will get several answers.
![switch-answers](images/06_chatui-model-responses.en.jpg)
## Step 5 - Add you own model
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.

0 comments on commit 182fee0

Please sign in to comment.