IA et LLM

IA : Une web interface à Ollama avec Ollama LLM UI (Projet en dev)

Cet article est en cours de travaux, des modifications sont en cours de réalisation, revenez plus tard le reconsulter. Merci.
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 page du projet est ici : https://github.com/jakobhoeg/nextjs-ollama-llm-ui

Il existe une multitudes de projet, je trouve celui là très simple et efficace.

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 :
Copier vers le presse-papierCode BASH :
dnf module list nodejs


On va basculer grâce aux modules sur la version 20 de nodejs :
Copier vers le presse-papierCode BASH :
dnf module switch-to nodejs:20


Ensuite on installe nodejs :
Copier vers le presse-papierCode BASH :
dnf install nodejs


Si on utilise SELinux, je vous laisse le désactiver, car je n'ai pas trouvé un moyen propre d'autoriser le lancement du serveur nodejs et que SELinux ne bloque pas le service.

Debian et Ubuntu



La version 18 de nodejs est présente dans Ubuntu 24.04 et dans Debian 12. Il suffit de l'installer :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode 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 :

Copier vers le presse-papierCode BASH :
cd /opt
git clone https://github.com/jakobhoeg/nextjs-ollama-llm-ui


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


Copier la config proposée sous le nom .env :
Copier vers le presse-papierCode BASH :
mv .example.env .env


Ce fichier contient l'URL permettant d'accéder à Ollama :
Copier vers le presse-papierCode 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 :
Copier vers le presse-papierCode BASH :
npm install


On teste l'application pour le déploiement :
Copier vers le presse-papierCode BASH :
npm run dev


A cet instant, l'application est prête à fonctionner et on peut tester.

Pour le moment (Octobre 2024), l'application ne se déploie pas, elle ne fonctionne qu'en mode dev.

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 :
Copier vers le presse-papierCode BASH :
vim /etc/systemd/system/nextjs-ollama-llm-ui.service


Dedans, on va y indiquer ceci (il y a peut être mieux) :
Copier vers le presse-papierCode BASH :
[Unit]
Description=Next.js Ollama LLM UI
After=ollama.service
[Service]
WorkingDirectory=/opt/nextjs-ollama-llm-ui
ExecStart=/usr/bin/npm run dev
Restart=always
RestartSec=10
User=root
Environment=PATH=/usr/bin:/usr/local/bin
[Install]
WantedBy=multi-user.target


On recharge systemd pour prendre en compte le nouveau service :
Copier vers le presse-papierCode BASH :
systemctl daemon-reload


On démarre le service :
Copier vers le presse-papierCode 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 !
Cette page a été vue 3732 fois