IA et LLM

IA : Une web interface à Ollama avec Ollama LLM UI

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

ollama-logo



Introduction



Dans un précédent article, on a vu comment mettre en place Ollama et déployer des modèles de LLM.

Dans cet article, on va voir comment installer et utiliser Ollama LLM UI qui est une interface web permettant d'interragir avec nos modèles LLM.

La base de cet article a été faite sur Red Hat Enterprise Linux 9.
L'installation se fait de façon classique, sans Docker.

Prérequis



Ollama et modèles LLM



Dans un premier temps, il est nécessaire d'avoir installé et configuré Ollama tel que décrit dans cet article : Installer un Modèle de Langage (LLM) avec Ollama.
Il sera nécessaire d'avoir au moins installé un modèle !

NodeJS



La webinterface fonctionne avec NodeJS. Il est nécessaire d'avoir nodejs et npm installés dans une version 18 au moins.

Red Hat Enterprise Linux et dérivées



Dans le cas d'une base Red Hat Enterprise Linux (ou ses clones) la version de nodejs est un peu ancienne :
RHEL 8 et dérivées : nodejs version 10
RHEL 9 et dérivées : nodejs version 16

Lister les versions de nodejs à travers les modules disponibles via :
Code BASH :
dnf module list nodejs


On va basculer grâce aux modules sur la version 20 de nodejs :
Code BASH :
dnf module switch-to nodejs:20


Ensuite on installe nodejs :
Code BASH :
dnf install nodejs


Debian et Ubuntu



La version 18 de nodejs est présente dans Ubuntu 24.04 et dans Debian 12. Il suffit de l'installer :
Code BASH :
apt install nodejs


Pour les versions plus anciennes de Debian ou Ubuntu, il faut visiblement passer par leur dépôt : https://deb.nodesource.com

Gentoo



La version 20 et 22 de nodejs sont présentes dans les dépôts fin 2024. Il suffit de l'installer via :
Code BASH :
emerge -av net-libs/nodejs



Installer Ollama LLM UI



Pour installer Ollama LLM UI, on va cloner le repo Github dans la localisation de notre choix :

Code BASH :
cd /opt
git clone https://github.com/jakobhoeg/nextjs-ollama-llm-ui


Une fois installé on se rend dans le dossier du projet :
Code BASH :
cd nextjs-ollama-llm-ui 


Copier la config proposée sous le nom .env :
Code BASH :
mv .example.env .env


Ce fichier contient l'URL permettant d'accéder à Ollama :
Code BASH :
NEXT_PUBLIC_OLLAMA_URL="http://localhost:11434"


Si Ollama est installé sur une autre machine, vérifier qu'il écoute sur toutes les interfaces et toutes les adresses. Modifier le fichier .env en conséquence.

On installe les dépendances nécessaire au bon fonctionnement du projet :
Code BASH :
npm install


On prépare l'application pour le déploiement :
Code BASH :
npm run build


Le déploiement prend un peu de temps :
Code TEXT :
  ▲ Next.js 14.2.13
  - Environments: .env
 
   Creating an optimized production build ...


A cet instant, l'application est prête à fonctionner.

Création d'un service systemd



Pour que notre application se démarre automatiquement au démarrage du système, on va créer un service systemd :
Code BASH :
vim /etc/systemd/system/nextjs-ollama-llm-ui.service


Dedans, on va y indiquer ceci (il y a peut être mieux, je prends vos améliorations) :
Code BASH :
[Unit]
Description=Next.js Ollama LLM UI
 
[Service]
WorkingDirectory=/opt/nextjs-ollama-llm-ui
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10
User=root
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
 
[Install]
WantedBy=multi-user.target


On recharge systemd pour prendre en compte le nouveau service :
Code BASH :
systemctl daemon-reload


On démarre le service :
Code BASH :
systemctl start nextjs-ollama-llm-ui



Accéder à l'interface



On peut accéder à l'interface avec le nom du serveur (ou son adresse IP) sur le port 3000. Exemple : http://tutollm.linuxtricks.lan:3000/

Au premier lancement on peut saisir notre nom pour retrouver nos discussions :

ollama-ui-1



Dans l'interface, on retrouvera la liste des modèles installés en haut à droite :

ollama-ui-2



On pourra utilise l'interface comme avec chatGPT ou tout autre LLM public :

ollama-ui-3



Et voilà, on a une interface graphique à Ollama !