Ce workshop, présenté à Devoxx FR, nécessite un certain nombre de prérequis que vous ne pourrez pas installer en début de séance à cause de leur taille. Merci donc de suivre la procédure suivante avant d’arriver au workshop.
En cas d’affluence, les animateurs du workshop se réservent le droit de donner la priorité aux participants qui auront installé les prérequis.
git clone https://github.com/bdauvissat/ragtime.git
cd ragtime
Assurez-vous d'avoir Java 17 ou plus installé et soit :
-
chargez le projet dans votre IDE favori,
-
ou téléchargez les librairies nécessaires en exécutant :
./mvnw dependency:resolve
ATTENTION: si votre PC est sous windows, vous pouvez utiliser WSL et docker, et eventuellement tirer profit des capacités de votre carte graphique. Voir le doc spécifique avant de continer.
Assurez-vous que Docker et sa ligne de commande sont installés.
Chargez les images Docker en exécutant :
docker compose pull
Tester l'installation de Elasticsearch et Kibana
Pour lancer Elasticsearch et Kibana, executez la commande :docker compose up devoxx-kibana
Connectez-vous ensuite à http://localhost:5601 avec le login
elastic
et le mot de passeelasticpwd
.
Ollama est un serveur permettant de faire fonctionner des LLM localement sur votre machine. Deux options sont possibles en fonction de votre configuration: installation locale (recommandé) ou avec Docker.
En plus de l'installation de Ollama, il est nécessaire de télécharger Gemma 2B, le petit LLM utilisé pour le workshop qui peut fonctionner sur des configurations modestes.
Installation locale (recommandé)
Cette installation permettra à Ollama de tirer partie du GPU présent sur votre machine. Suivez les instructions sur https://ollama.com/download.
Une fois installé et lancé, téléchargez le modèle avec ollama pull gemma:2b
.
Pour discuter avec le modèle, lancez ollama run gemma:2b
et dites quelque chose, par exemple "Bonjour, comment vas-tu ?"
Installation avec Docker
Si l'installation locale n'est pas possible, lancez Ollama en exécutant la commande suivante :
docker compose up ollama
Une fois lancé, chargez le modèle avec
docker exec -it ollama-devoxx ollama pull gemma:2b
Pour discuter avec le modèle, lancez docker exec -it ollama-devoxx ollama run gemma:2b
et dites quelque chose, par exemple "Bonjour, comment vas-tu ?"
Pour lancer l'application en "dev mode" qui permet aussi le live-reload, executez :
mvn quarkus:dev
La console de développement de Quarkus est alors disponible sur http://localhost:8080/q/dev/
le fichier json est à télécharger ici: https://drive.google.com/file/d/15eqcNCnb3igxGGt7d1qEXEsUM9nQwaXn/view?usp=sharing
(source: https://www.theregister.com/)
2 modeles disponibles sur Ollama qui sont intéressants à tester. N'oubliez pas que le modele pour faire les embeddings (des documents indexés et des questions posées) est indépendant du modele de génération des réponses (à partir du prompt et du contexte injecté). Il peut donc etre interéssant d'utiliser un modele spécialisé sur chacune des taches.
nomic-embed-text:latest
(0.25 GB) pour faire les embeddings (propertyquarkus.langchain4j.ollama.embedding-model.model-id
)wizardlm2:7b
(4.1 GB) pour le modele de génération / question answering (propertiesollama.model
etquarkus.langchain4j.ollama.chat-model.model-id
) Vous pouvez donc faire unollama pull
de ces modeles et les renseigner dans les properties pour les tester.