🧬Cum construiești un sistem AI medical complet local cu Proxmox și Ollama

Unul dintre cele mai interesante proiecte AI pe care le poți realiza acasă este un sistem expert medical complet local, capabil să funcționeze offline, fără restricții de conținut și fără dependență de servicii externe. În acest ghid complet vei învăța cum să creezi un astfel de sistem folosind Proxmox, Ollama și un model medical AI optimizat pentru uz local.


🎯 Scopul final

Vom construi un asistent medical AI care rulează complet pe infrastructura ta locală, fără conexiune la cloud, integrabil ulterior cu un website existent (de exemplu, prin AI Engine).
Fluxul complet va arăta astfel:

Website → AI Engine → Ollama Local → Răspuns Medical


🧱 Capitolul 1: Configurarea Proxmox de bază

Cerințe hardware minime

  • 8 GB RAM (16 GB recomandat)
  • 50 GB spațiu liber
  • Acces root/SSH
  • Proxmox instalat pe serverul host

Verificarea resurselor disponibile

În interfața web Proxmox:

  • Monitorizează CPU și RAM
  • Verifică spațiul de stocare liber

📦 Capitolul 2: Crearea containerului LXC

Recomandăm un LXC Container în loc de o mașină virtuală, fiind mai ușor și mai rapid.

Configurație recomandată

  • Template: ubuntu-22.04-standard_22.04-1_amd64.tar.zst
  • RAM: 4 GB + 512 MB swap
  • CPU: 2 cores
  • Stocare: 40 GB (20 GB root + 20 GB pentru modele)
  • IP static: 192.168.0.27
  • Firewall activat

Configurare rețea

  • Bridge: vmbr0
  • Gateway: 192.168.0.1
  • DNS: 192.168.0.1 sau 8.8.8.8

După finalizare, dă click pe Finish și verifică setările.


🔑 Capitolul 3: Configurarea SSH în container

Instalare și activare SSH

apt update && apt upgrade -y
apt install openssh-server sudo curl wget -y
systemctl enable ssh
systemctl start ssh
passwd root

Permitere login root

Editează fișierul:

nano /etc/ssh/sshd_config

Și modifică linia:

PermitRootLogin yes

Apoi repornește serviciul:

systemctl restart ssh

Test:

ssh [email protected]

🦙 Capitolul 4: Instalarea Ollama

Configurare storage dedicat modelelor

export OLLAMA_HOME=/var/lib/ollama
echo 'export OLLAMA_HOME=/var/lib/ollama' >> ~/.bashrc
source ~/.bashrc

Instalare Ollama

curl -fsSL https://ollama.ai/install.sh | sh
systemctl enable ollama
systemctl start ollama
ollama --version

🧠 Capitolul 5: Modele AI

Ollama permite descărcarea și rularea locală a modelelor open-source. Pentru acest proiect vom folosi Llama 3.2 (3B) — suficient de performant pentru inferență medicală de bază.

Descărcare model

ollama pull llama3.2:3b

Verificare instalare

ollama list

Testare rapidă

ollama run llama3.2:3b "Explică polineuropatia diabetică"

Modelul va răspunde complet offline, direct din containerul tău.

🧬 Capitolul 6: Modele AI recomandate pentru Ollama (medicale și generale)

Ollama suportă o gamă largă de modele, atât generale (pentru conversații, programare sau analiză de text), cât și specializate (medicale, științifice sau pentru sumarizare).
Mai jos este un tabel comparativ care te ajută să alegi modelul potrivit în funcție de resursele disponibile și scopul aplicației.

Tabel Comparativ Modele AI Medicale

text
MODEL           TIP       PARAMETRI   RAM MINIMĂ   CERINȚE GPU  DIMENSIUNE   PUNCTE TARI                  UTILIZARE RECOMANDATĂ
--------------- --------- ----------- ------------ ------------ ------------ ---------------------------- -----------------------------------------
Llama 3.2:3b    General   3B          4 GB         Opțional     ~2.8 GB      Rapid și compact             Chat general, AI medical de bază
Llama 3.1:8b    General   8B          8 GB         Recomandat   ~7.8 GB      Analiză coerentă și clară    Explicații medicale complexe
Mistral 7B      General   7B          8 GB         Recomandat   ~6.9 GB      Calitate GPT-3.5, viteză     Conversații generale
Gemma 7B        General   7B          8 GB         Recomandat   ~6.5 GB      Multi-lingv, bine instruit   Traduceri și explicații medicale
MedLlama2:7b    Medical   7B          8 GB         Opțional     ~6.8 GB      Limbaj clinic specializat    Diagnostic diferențial
BioMedLM        Medical   2.7B        4 GB         Opțional     ~2.5 GB      Bazat pe articole PubMe

🔍 Recomandări practice

  • Pentru Proxmox LXC cu 4 GB RAM, recomand Llama 3.2:3b sau BioMedLM.

  • Pentru server cu GPU dedicat (RTX 3060 / 8 GB), poți rula MedLLama2:7b sau Gemma 7B fără probleme.

  • Dacă vrei răspunsuri în limbaj natural român/englez combinat, Phi-3 Mini e cel mai echilibrat model ușor.

  • Modelele mari (>8B) pot fi încărcate doar parțial pe RAM și necesită swap rapid sau GPU.


Vrei să continui lucrarea cu această secțiune complet integrată și stilizată (cu emoji-uri, anteturi și format identic cu restul documentului), ca versiunea v1.1 a ghidului?
Pot include și instrucțiunile exacte pentru descărcarea fiecărui model (ollama pull) și recomandările de utilizare în terminal.


🌐 Capitolul 7: Interfață web locală (Web UI simplu)

Poți crea o interfață web minimală în Flask pentru testarea rapidă a sistemului.

Creează fișierul simple_webui.py:

from flask import Flask, request, jsonify, render_template_string
import requests

app = Flask(__name__)

HTML = '''
<!DOCTYPE html>
<html>
<body>
    <h2>🦙 Ollama Medical Chat</h2>
    <input id="input" placeholder="Întreabă modelul medical..." style="width:300px">
    <button onclick="ask()">Trimite</button>
    <div id="response" style="margin-top:20px; padding:10px; border:1px solid #ccc"></div>

    <script>
        async function ask() {
            const input = document.getElementById('input').value;
            document.getElementById('response').innerText = "Se procesează...";
            const response = await fetch('/chat', {
                method: 'POST',
                headers: {'Content-Type': 'application/json'},
                body: JSON.stringify({prompt: input})
            });
            const data = await response.json();
            document.getElementById('response').innerText = data.response;
        }
    </script>
</body>
</html>
'''

@app.route('/')
def home():
    return render_template_string(HTML)

@app.route('/chat', methods=['POST'])
def chat():
    data = request.json
    response = requests.post('http://localhost:11434/api/generate', json={
        "model": "llama3.2:3b",
        "prompt": data['prompt'],
        "stream": False
    })
    return jsonify(response.json())

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000, debug=True)

Instalare Flask și pornire:

apt install python3-pip -y
pip3 install flask requests
python3 simple_webui.py

Apoi accesează din browser:

http://192.168.0.27:3000

🩺 Capitolul 8: Teste și validare

Testează întregul flux:

  • Website → AI Engine → Ollama Local
  • Întrebări medicale complexe (ex: tratament pentru polineuropatie, utilizare toxină botulinică)
  • Verifică dacă răspunsurile nu sunt cenzurate sau incomplete

🟢 Capitolul 9: Ollama și WebUI permanent și vizibil extern

Pentru a evita situația în care terminalul închis oprește Ollama și WebUI, creăm servicii systemd:

Serviciul Ollama

Creează /etc/systemd/system/ollama.service:

[Unit]
Description=Ollama Service
After=network-online.target
Wants=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
User=ollama
Group=ollama
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

[Install]
WantedBy=multi-user.target

Activează și pornește:

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl restart ollama
ss -tuln | grep 11434

✅ Ollama ascultă acum pe toate interfețele și pornește automat la boot.

Serviciul WebUI

Creează /etc/systemd/system/ollama-webui.service:

[Unit]
Description=Ollama Simple WebUI
After=network.target ollama.service
Requires=ollama.service

[Service]
Type=simple
WorkingDirectory=/root
ExecStart=/usr/bin/python3 /root/simple_webui.py
Restart=always
RestartSec=5
User=root
Environment=PATH=/usr/bin:/usr/local/bin

[Install]
WantedBy=multi-user.target

Activează și pornește:

sudo systemctl daemon-reload
sudo systemctl enable ollama-webui
sudo systemctl start ollama-webui
sudo systemctl status ollama-webui

Acum WebUI-ul tău va porni automat după boot și se va conecta direct la Ollama.

🩺 Capitolul 10: Monitorizare și mentenanță

Monitorizare resurse:

htop
df -h
ollama ps

Backup recomandat:

  • Snapshot complet al containerului în Proxmox
  • Backup periodic pentru /var/lib/ollama

🧭 Concluzie

Prin configurarea corectă a unui container Proxmox, instalarea Ollama cu modele AI locale și sistemul WebUI automatizat, ai un sistem expert medical complet autonom, complet offline și gata pentru integrare cu website-uri sau alte aplicații locale.

Acest setup garantează:

  • Stabilitate și pornire automată
  • Vizibilitate externă pentru Cloudflare Tunnel
  • Capacitate completă de testare și dezvoltare AI fără restricții