configuration et usage d'une IA avec Chatbox AI et Telegram
Sun, 13 Oct 2024 16:30:30 +0200[update 10.24]
mistral-small
(à noter que le modèle mistral-large
nécessite au moins 70Go de RAM que je n’ai pas encore)Ollama est un outil opensource qui permet d’utiliser un modèle LLM sur son PC ou serveur personnel. Je l’utilise sur mon PC de gamer afin d’exploiter les capacités matérielle de ma carte graphique AMD Radeon RX 7800 XT. Voici une liste des cartes supportées par Ollama : GPU, si la votre n’est pas dans la liste, il est inutile d’aller plus loin votre CPU risquant de souffir.
Mon PC utilise Manjaro donc l’installation est simple : sudo pacman -S ollama-rocm
. J’installe le package ollama-rocm et non ollama car ayant une carte AMD il est nécessaire d’installer la stack GPU AMD ROCm. Si vous avez une NVidia il faudra sans doute installer le paquet ollama-cuda
.
Il suffit ensuite de lancer le service pour directement l’utiliser dans un terminal
sudo systemctl enable --now ollama
# list les modèles locaux
ollama list
# telecharge un modèle
ollama pull mistral-small
# utilise un modèle
ollama run mistral-small
>>> qui es-tu ?
Je suis un assistant virtuel conçu pour aider les gens à trouver des informations, répondre à des questions et fournir une assistance générale. Si vous avez des questions ou des
préoccupations, je suis là pour vous aider !
C’est bien gentil mais cela limite l’usage à un terminal sur le PC gamer. On va donc modifier le service afin qu’il écoute sur toutes les interfaces réseaux (et non localhost uniquement) pour permettre l’usage de l’API Ollama dans le réseau local.
sudo systemctl edit ollama
puis on ajoute la variable OLLAMA_HOST en début de fichier
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
A noter que si comme moi vous avez peu d’espace disque sur la partition système / vous pouvez modifier la variable OLLAMA_MODELS pour quelle pointe sur /home par exemple. Dans ce cas il faut également modifier la variable ProtectHome à no
Environment="OLLAMA_MODELS=/home/ollama"
ProtectHome=no
sudo systemctl daemon-reload
sudo systemctl restart ollama
J’ai découvert il y a peu Chatbox AI, qui est une application desktop et smartphone qui permet d’utiliser une IA en cloud ou bien comme ici Ollama en local.
Dans les paramètres de l’application il suffit de choisir le fournisseur de modèle OLLAMA et d’indiquer l’URL du PC :
http://IP_LOCALE:11434
Sur smartphone il est plus intéressant de pouvoir accèder à Ollama en 5G, pour cela il suffit d’installer Tailscale sur le smartphone et le PC gamer. Et dans les paramétrages de l’application smartphone de Chatbox indiquer l’IP tailscale du PC gamer, et BOOM une IA à dispo gratuitement (hormis la facture d’électricité).
ChatboxAI sur Linux Manjaro
J’utilise Telegram intensivement (voir mon avis sur l’affaire Telegram) aussi il est intéressant d’avoir un bot qui utilise le service hébergé chez soi. J’ai trouvé ce projet ollama-telegram qui peut fonctionner dans un conteneur Docker. A ce jour il y a un bug aussi j’utilise une version que j’ai patché avec une image personnelle.
Évidement il faut auparavant créer un bot Telegram et obtenir sa token. C’est plutot simple à faire avec le bot BotFather. A noter que vous pouvez obtenir votre ID et celui d’un groupe avec le bot myidbot.
Voici le fichier hcl Nomad du bot
job "ollama-telegram" {
datacenters = ["dc1"]
type = "service"
group "home" {
count = 1
task "ollama-telegram" {
driver = "docker"
constraint {
attribute = "${attr.unique.hostname}"
value = "nuc"
}
env {
TOKEN = "BOT_TOKEN"
ADMIN_IDS = "ADMIN_ID"
USER_IDS = "USER_ID"
ALLOW_ALL_USERS_IN_GROUPS = "0"
INITMODEL = "mistral-small"
TIMEOUT=3000
OLLAMA_BASE_URL = "IP_PC_GAMER"
OLLAMA_PORT = "11434"
# Log level
# https://docs.python.org/3/library/logging.html#logging-levels
LOG_LEVEL=DEBUG
}
config {
image = "fredix/ollama-telegram"
volumes = [
"/data/volumes/ollama-telegram/users.db:/code/users.db"
]
}
resources {
cpu = 200
memory = 500
}
service {
name = "ollama-telegram"
provider = "consul"
}
}
}
}
nomad job run ollama-telegram.hcl
La déception est que l’IA ne peut accéder à Internet pour par exemple donner la météo ou récupérer des informations en temps réel. Nul doute que cela changera dans l’avenir… (qui a dit Skynet ? 😱)
(Ce texte a été écrit avec VNote)