Une application de bureau et une API locale pour interagir avec les modèles LFM2 de LiquidAI, optimisée par la bibliothèque transformers.
- Interface Graphique Intuitive : Une application de bureau simple et efficace construite avec PyQt6.
- Support Multimodal (Image + Texte) : Interagissez avec les modèles Vision-Language (VL) en fournissant une image en plus de votre question.
- Gestion Dynamique des Modèles : Chargez et déchargez les modèles de langue et de vision à la volée pour libérer les ressources (VRAM/RAM).
- Support RAG (Retrieval-Augmented Generation) : Améliorez les réponses des modèles textuels en leur fournissant le contexte de vos propres documents (
.txt,.pdf,.docx). - API Compatible OpenAI : Exposez le modèle via une API locale qui imite la structure de l'API OpenAI, vous permettant de connecter vos outils et scripts existants.
- Streaming de Texte : Obtenez des réponses en temps réel, mot par mot, pour une expérience plus fluide.
- Paramètres Personnalisables : Ajustez finement les paramètres de génération comme la température, le
min_pet la pénalité de répétition via une interface dédiée. - Historique des Conversations : Toutes vos discussions sont sauvegardées localement et peuvent être rechargées.
- Python 3.8+
- Git
Pour que l'installation des dépendances fonctionne correctement, vous DEVEZ activer le support des chemins de fichiers longs sur votre système. C'est une opération unique et sans danger.
- Ouvrez PowerShell en tant qu'administrateur et exécutez la commande suivante :
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
- Redémarrez votre ordinateur. C'est une étape cruciale pour que le changement soit pris en compte.
Les scripts d'installation créent un environnement virtuel et installent toutes les dépendances nécessaires.
- Première fois : Double-cliquez sur
install.bat. L'application se lancera automatiquement après l'installation. - Les fois suivantes : Double-cliquez sur
run.batpour un démarrage rapide.
- Première fois :
- Rendez les scripts exécutables :
chmod +x install.sh run.sh run_api.sh. - Exécutez le script d'installation :
./install.sh. L'application se lancera automatiquement.
- Rendez les scripts exécutables :
- Les fois suivantes : Exécutez
./run.sh.
Ce projet offre deux modes d'utilisation principaux : une interface de bureau et une API.
Lancez l'application en utilisant run.bat (Windows) ou ./run.sh (macOS/Linux).
-
Panneau de Gauche (Historique) :
- Affiche toutes vos conversations passées.
- Cliquez sur "Nouvelle Discussion" pour en commencer une nouvelle.
- Faites un clic droit sur une conversation pour la supprimer.
-
Panneau de Droite (Chat) :
- Sélection de Modèle : Choisissez un modèle dans la liste déroulante, qui inclut désormais les modèles de texte et les modèles Vision-Language (VL).
- Utilisation des Modèles VL : Si vous sélectionnez un modèle VL (par ex.,
LiquidAI/LFM2-VL-3B), une nouvelle zone apparaîtra pour vous permettre de sélectionner une image. Cliquez dessus pour choisir un fichier image (.png,.jpg, etc.). L'image sera envoyée avec votre prochain message. - Éjecter le Modèle : Libère les ressources VRAM/RAM en déchargeant le modèle actuel.
- Paramètres : Ajustez les paramètres de génération.
- Champ de Saisie : Tapez votre question (même si vous avez chargé une image) et envoyez.
La fonctionnalité RAG permet au modèle de répondre à des questions sur des informations contenues dans vos documents personnels.
- Charger des documents : Cliquez sur le bouton "Charger Documents" pour sélectionner un ou plusieurs fichiers (
.txt,.pdf,.docx). - Création de l'index : L'application traite ces documents, les découpe en morceaux, et les transforme en vecteurs numériques à l'aide d'un modèle d'embedding local. Ces vecteurs sont stockés dans un index en mémoire (FAISS).
- Activer le RAG : Cochez la case "Activer RAG".
- Posez votre question : Lorsque le RAG est actif, l'application recherche les morceaux de documents les plus pertinents et les injecte dans le contexte avant d'interroger le modèle.
Lancez le serveur d'API avec run_api.bat (Windows) ou ./run_api.sh (macOS/Linux). Le serveur démarrera sur http://localhost:8000.
Vous pouvez maintenant utiliser cette URL dans n'importe quel client ou bibliothèque compatible avec l'API OpenAI.
Exemple avec curl (Modèle Texte) :
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "LiquidAI/LFM2-1.2B",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explique le concept de RAG en une phrase."}
]
}'Exemple avec curl (Modèle Vision-Language) :
Pour envoyer une image, vous pouvez fournir une URL publique ou une image encodée en base64.
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "LiquidAI/LFM2-VL-1.6B",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Que vois-tu sur cette image ?"},
{
"type": "image_url",
"image_url": {
"url": "https://www.ilankelman.org/stopsigns/australia.jpg"
}
}
]
}
]
}'Réponse attendue :
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1677652288,
"model": "LiquidAI/LFM2-350M",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Le RAG (Retrieval-Augmented Generation) est une technique où un modèle de langue récupère des informations pertinentes dans une base de connaissances externe avant de générer une réponse."
},
"finish_reason": "stop"
}
]
}Les dépendances sont listées dans le fichier requirements.txt et sont installées automatiquement. Les principales bibliothèques utilisées sont :
- GUI :
PyQt6 - Modèles IA :
transformers,torch,accelerate,Pillow - API :
fastapi,uvicorn - RAG :
langchain,langchain-community,sentence-transformers,faiss-cpu,pypdf,python-docx - Autres :
markdown2