{"id":916,"date":"2025-06-09T15:35:09","date_gmt":"2025-06-09T13:35:09","guid":{"rendered":"https:\/\/serer.fr\/?p=916"},"modified":"2026-03-09T11:31:22","modified_gmt":"2026-03-09T10:31:22","slug":"creer-son-chatgpt-a-la-maison","status":"publish","type":"post","link":"https:\/\/serer.fr\/?p=916","title":{"rendered":"Cr\u00e9er son ChatGPT \u00e0 la maison"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li>Installer un LLM<\/li>\n\n\n\n<li>Charger un mod\u00e8le IA<\/li>\n\n\n\n<li>Installer Open WEBUI<\/li>\n\n\n\n<li>Configurer Open WEBUI<\/li>\n\n\n\n<li>Have a fun !<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installer un LLM<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Installation d&rsquo;Ollama du groupe M\u00e9ta<\/h3>\n\n\n\n<p>Les pr\u00e9requis pour un utilisateur sont 4 VCPU minimum. Il faut pour faire tourner de petits mod\u00e8les (7 Billions de param\u00e8tres) 16 Go de RAM. Pour l&rsquo;espace disque tout d\u00e9pendra du nombre de mod\u00e8les charg\u00e9, mais 30 Go me semble un minimum tout compris.<\/p>\n\n\n\n<p>Pour installer Ollama, il n&rsquo;y a rien de plus simple tout se fait en une commande avec le script d&rsquo;installation officiel.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install python3 python3-pip git\ncurl -fsSL https:\/\/ollama.com\/install.sh | sh<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/06\/image-4.png\" alt=\"\" class=\"wp-image-935\"\/><\/figure>\n\n\n\n<p>Le WARNING est normal dans un environnement virtuel sans pont vers le hardware. Pour lever cette contrainte, il faudra configurer proxmox sp\u00e9cifiquement pour le conteneur si toute fois la machine h\u00f4te comprend une carte Nvidia.<\/p>\n\n\n\n<p>V\u00e9rifions que tout fonctionne en affichant la version install\u00e9e.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama --version<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/06\/image-3.png\" alt=\"\" class=\"wp-image-934\"\/><\/figure>\n\n\n\n<p>Maintenant, v\u00e9rifiions que le service Linux fonctionne.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>service ollama status<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/06\/image-5-1024x337.png\" alt=\"\" class=\"wp-image-936\"\/><\/figure>\n\n\n\n<p>Si vous souhaitez ex\u00e9cuter Open WEBUI sur la m\u00eame instance, vous pouvez ignorer cette section.<\/p>\n\n\n\n<p>Nous allons changer l&rsquo;adresse d&rsquo;\u00e9coute de Ollama pour la faire \u00e9couter sur toutes les adresses (0.0.0.0) ou une adresse sp\u00e9cifique.<\/p>\n\n\n\n<p>On modifie le service Linux pour la prise en compte d&rsquo;une nouvelle variable d&rsquo;environnement.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vi \/etc\/systemd\/system\/ollama.service<\/code><\/pre>\n\n\n\n<p>Dans la section service, ajoute la ligne OLLAMA_HOST, <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Service]\nEnvironment=\"OLLAMA_HOST=0.0.0.0:11434\"<\/pre>\n\n\n\n<p>On red\u00e9marre le service pour une prise en compte<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload\nsudo systemctl restart ollama<\/code><\/pre>\n\n\n\n<p>On v\u00e9rifie que la prise en compte est faite, avec la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -tupln<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/06\/image-6-1024x32.png\" alt=\"\" class=\"wp-image-937\"\/><\/figure>\n\n\n\n<p>S&rsquo;il la commande indique une \u00e9toile alors l&rsquo;\u00e9coute se fait pour toutes les adresses IP (Attention IPV6 par d\u00e9faut). Au cas o\u00f9 il faut \u00e9couter sur les deux protocoles, il faut activer le forwarding au niveau TCP\/IP.<\/p>\n\n\n\n<p>Activons le forwarding TCP\/IP pour tous les protocoles TCP dans le fichier de configuration <code>sysctl.conf<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim \/etc\/sysctl.conf<\/code><\/pre>\n\n\n\n<p>Ajoutez o\u00f9 d\u00e9commentez les lignes suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>net.ipv4.ip_forward = 1<\/code><br><code><code>net.ipv6.conf.all.forwarding = 1<\/code><\/code> <\/pre>\n\n\n\n<p>Pour appliquer les changements imm\u00e9diatement<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sysctl -p<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Installation d&rsquo;un mod\u00e8le Hugging face<\/h3>\n\n\n\n<p>Il existe une multitude de mod\u00e8les sur <a href=\"https:\/\/huggingface.co\/meta-llama\" data-type=\"link\" data-id=\"https:\/\/huggingface.co\/meta-llama\">Hugging face<\/a>. Pour le Lab, nous installerons le mod\u00e8le Llama3.2 car il est peu gourmand en ressources.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama pull Llama3.2<\/code><\/pre>\n\n\n\n<p>On teste que tout fonctionne depuis l&rsquo;invite de commande shell.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama run Llama3.2<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/06\/image-10.png\" alt=\"\" class=\"wp-image-946\"\/><\/figure>\n\n\n\n<p>Par d\u00e9faut, le chemin de stockage des mod\u00e8les est :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>macOS<\/strong>&nbsp;:&nbsp;<code>~\/.ollama\/models<\/code><\/li>\n\n\n\n<li><strong>Linux<\/strong>&nbsp;:&nbsp;<code>\/usr\/share\/ollama\/.ollama\/models<\/code><\/li>\n\n\n\n<li><strong>Windows<\/strong>&nbsp;:&nbsp;<code>C:\\Users\\%username%\\.ollama\\models<\/code><\/li>\n<\/ul>\n\n\n\n<p>Il faut s&rsquo;assure que ces r\u00e9pertoires dispose de suffisamment d&rsquo;espace sur le FS \/ partition. <\/p>\n\n\n\n<p>Le chemin peut \u00eatre modifi\u00e9 avec la variable d&rsquo;environnement OLLAMA_MODELS du fichier ollama.service comme d\u00e9crit plus pour l&rsquo;adresse IP.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Environment=\"OLLAMA_MODELS=\/new\/path\/to\/models\"<\/pre>\n\n\n\n<p>Voici quelques exemples de mod\u00e8le et de commande ollama.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/serer.fr\/wp-content\/uploads\/2025\/06\/image-11.png\" alt=\"\" class=\"wp-image-951\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Installation d&rsquo;Open WEBUI<\/h3>\n\n\n\n<p>Les pr\u00e9requis techniques sont une version de python 3.x, le gestionnaire pip et un client git.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install python3 python3-pip git<\/code><\/pre>\n\n\n\n<p>Installation d&rsquo;Open WEBUI et met \u00e0 jour avec la derni\u00e8re version disponible.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install open-webui\npython -m pip install --upgrade pip\nopen-webui serve<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Installer un LLM Installation d&rsquo;Ollama du groupe M\u00e9ta Les pr\u00e9requis pour un utilisateur sont 4 VCPU minimum. Il faut pour faire tourner de petits mod\u00e8les (7 Billions de param\u00e8tres) 16 Go de RAM. Pour l&rsquo;espace disque tout d\u00e9pendra du nombre de mod\u00e8les charg\u00e9, mais 30 Go me semble un minimum tout compris. Pour installer Ollama, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1176,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,47],"tags":[30,35,36],"class_list":["post-916","post","type-post","status-publish","format-standard","hentry","category-intelligence-artificielle","category-large-langage-model","tag-ia","tag-ollama","tag-open-webui"],"_links":{"self":[{"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts\/916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=916"}],"version-history":[{"count":3,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts\/916\/revisions"}],"predecessor-version":[{"id":1396,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/posts\/916\/revisions\/1396"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=\/wp\/v2\/media\/1176"}],"wp:attachment":[{"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serer.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}