🧬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.1sau8.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 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