Open WebUI Kurulumu: ChatGPT Benzeri Arayüz ile Yerel AI
Open WebUI kurulumu Docker ile, Ollama entegrasyonu, kullanıcı yönetimi, RAG (belge sorgulama), model yönetimi, özel promptlar ve çoklu kullanıcı desteği.
Ollama kurulumu, yerel LLM modelleri çalıştırma (Llama 3, Mistral, Gemma), API kullanımı, model yönetimi, GPU hızlandırma ve Docker ile deployment.
Ollama, büyük dil modellerini (LLM) yerel sunucunuzda kolayca çalıştırmanızı sağlayan açık kaynaklı bir araçtır. Llama 3, Mistral, Gemma, Phi-3 ve daha birçok modeli tek bir komutla indirip kullanabilirsiniz. Bu rehberde Ollama kurulumunu, model yönetimini, API kullanımını ve GPU hızlandırmayı detaylı olarak ele alacağız.
Ollama, LLM modellerini yerel ortamda çalıştırmak için tasarlanmış hafif bir çalışma zamanıdır. Docker benzeri bir yaklaşımla modelleri indirip yönetmenizi sağlar. Temel özellikleri:
| Bileşen | Minimum | Önerilen |
|---|---|---|
| RAM | 8 GB | 16 GB+ |
| Disk | 20 GB | 50 GB+ |
| GPU (opsiyonel) | NVIDIA 4 GB VRAM | NVIDIA 8 GB+ VRAM |
| İşletim Sistemi | Linux, macOS, Windows | Ubuntu 22.04 LTS |
Ollama'yı Linux'a kurmak için resmi kurulum scriptini kullanın:
curl -fsSL https://ollama.com/install.sh | sh
Kurulum tamamlandıktan sonra Ollama servisi otomatik olarak başlar. Durumu kontrol edin:
systemctl status ollama
Çıktı:
● ollama.service - Ollama Service
Loaded: loaded (/etc/systemd/system/ollama.service.d/...)
Active: active (running)
Eğer script çalışmazsa manuel kurulum yapabilirsiniz:
# Binary indirme
curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama
# Ollama kullanıcısı oluşturma
useradd -r -s /bin/false -m -d /usr/share/ollama ollama
# Systemd servis dosyası
cat > /etc/systemd/system/ollama.service << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="HOME=/usr/share/ollama"
[Install]
WantedBy=default.target
EOF
systemctl daemon-reload
systemctl enable --now ollama
Ollama'yı Docker container olarak çalıştırmak için:
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
docker run -d \
--name ollama \
--gpus all \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
version: '3.8'
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
volumes:
ollama_data:
# Llama 3.1 8B modeli
ollama pull llama3.1
# Mistral 7B
ollama pull mistral
# Google Gemma 2 9B
ollama pull gemma2
# Microsoft Phi-3
ollama pull phi3
# CodeLlama (kod üretimi için)
ollama pull codellama
# Küçük model (düşük RAM için)
ollama pull llama3.1:8b-q4_0
# İnteraktif sohbet
ollama run llama3.1
# Tek seferlik soru
ollama run llama3.1 "Linux'ta disk kullanımını nasıl kontrol ederim?"
# Sistem promptu ile
ollama run llama3.1 --system "Sen bir Linux sistem yöneticisisin."
# Yüklü modelleri listele
ollama list
# Model bilgisi
ollama show llama3.1
# Model silme
ollama rm mistral
# Çalışan modelleri göster
ollama ps
# Model kopyalama
ollama cp llama3.1 my-llama
Ollama, port 11434'te bir REST API sunar:
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [
{
"role": "system",
"content": "Sen yardımcı bir asistansın."
},
{
"role": "user",
"content": "Docker nedir?"
}
],
"stream": false
}'
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Nginx reverse proxy yapılandırması yaz",
"stream": false
}'
curl http://localhost:11434/api/embeddings -d '{
"model": "llama3.1",
"prompt": "Sunucu güvenliği en iyi uygulamalar"
}'
import requests
import json
def chat_with_ollama(prompt, model="llama3.1"):
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": model,
"messages": [{"role": "user", "content": prompt}],
"stream": False
}
)
return response.json()["message"]["content"]
# Kullanım
result = chat_with_ollama("Python'da liste sıralama nasıl yapılır?")
print(result)
Modelfile, Docker'daki Dockerfile benzeri bir yapılandırma dosyasıdır:
# Modelfile
FROM llama3.1
# Sistem promptu
SYSTEM """Sen REXE Teknoloji teknik destek asistanısın.
Sunucu yönetimi, Docker, Linux ve ağ konularında yardımcı olursun.
Yanıtlarını Türkçe ver."""
# Model parametreleri
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
PARAMETER stop "<|eot_id|>"
Özel modeli oluşturun:
ollama create rexe-assistant -f Modelfile
ollama run rexe-assistant
Ollama, NVIDIA GPU'ları otomatik algılar. CUDA sürücülerinin kurulu olduğundan emin olun:
# NVIDIA sürücü kontrolü
nvidia-smi
# CUDA versiyonu
nvcc --version
# Ollama GPU kullanımını doğrulama
ollama run llama3.1 "test" 2>&1 | grep -i gpu
# ROCm desteği ile Ollama
curl -fsSL https://ollama.com/install.sh | OLLAMA_ACCELERATION=rocm sh
# Docker ile AMD GPU
docker run -d \
--name ollama \
--device /dev/kfd \
--device /dev/dri \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama:rocm
# Ortam değişkenleri ile GPU yapılandırması
export OLLAMA_NUM_GPU=1 # Kullanılacak GPU sayısı
export OLLAMA_GPU_MEMORY=6144 # Maksimum GPU belleği (MB)
export OLLAMA_MAX_LOADED_MODELS=2 # Aynı anda yüklü model sayısı
# Belirli GPU'yu seçme
export CUDA_VISIBLE_DEVICES=0
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434" # Tüm arayüzlerden erişim
Environment="OLLAMA_MODELS=/data/ollama" # Model dizini
Environment="OLLAMA_NUM_PARALLEL=4" # Paralel istek sayısı
Environment="OLLAMA_MAX_LOADED_MODELS=2" # Yüklü model limiti
Environment="OLLAMA_KEEP_ALIVE=5m" # Model bellekte kalma süresi
Değişiklikleri uygulayın:
systemctl daemon-reload
systemctl restart ollama
# Quantize model kullanarak RAM tasarrufu
ollama pull llama3.1:8b-q4_0 # 4-bit quantize (~4.7 GB)
ollama pull llama3.1:8b-q5_1 # 5-bit quantize (~5.7 GB)
ollama pull llama3.1:8b-q8_0 # 8-bit quantize (~8.5 GB)
# Context window ayarı
ollama run llama3.1 --num-ctx 2048 # Daha düşük = daha az bellek
REXE GPU sunucularında Ollama ile büyük dil modellerini yüksek performansla çalıştırabilirsiniz. NVIDIA A100/H100 GPU'lar ile 70B parametreli modeller bile hızlı yanıt verir.
Ollama; Llama 3.1, Mistral, Gemma 2, Phi-3, CodeLlama, Qwen 2, DeepSeek Coder, Vicuna, Neural Chat ve daha birçok açık kaynak modeli destekler. Tam liste için 'ollama list' komutunu veya ollama.com/library adresini ziyaret edin.
Evet, Ollama CPU modunda da çalışır. Ancak yanıt süreleri GPU'ya kıyasla çok daha yavaş olacaktır. CPU modunda 7B parametreli modeller makul hızda çalışır. Daha büyük modeller için GPU önerilir.
Ollama, /api/chat ve /api/generate endpoint'leri sunar. Ayrıca OpenAI uyumlu /v1/chat/completions endpoint'i de mevcuttur. Bu sayede OpenAI SDK kullanan uygulamalar minimal değişiklikle Ollama'ya yönlendirilebilir.
Evet, OLLAMA_MAX_LOADED_MODELS ortam değişkeni ile aynı anda bellekte tutulacak model sayısını ayarlayabilirsiniz. Yeterli RAM/VRAM olduğu sürece birden fazla model paralel olarak hizmet verebilir.
Linux'ta modeller varsayılan olarak /usr/share/ollama/.ollama/models dizininde saklanır. OLLAMA_MODELS ortam değişkeni ile bu dizini değiştirebilirsiniz. Docker kullanıyorsanız volume mount ile kalıcı depolama sağlayın.
Varsayılan olarak Ollama sadece localhost'tan erişilebilir. Uzaktan erişim için OLLAMA_HOST=0.0.0.0:11434 ortam değişkenini ayarlayın. Güvenlik için reverse proxy (Nginx) arkasına alın ve kimlik doğrulama ekleyin.
Open WebUI kurulumu Docker ile, Ollama entegrasyonu, kullanıcı yönetimi, RAG (belge sorgulama), model yönetimi, özel promptlar ve çoklu kullanıcı desteği.
NVIDIA sürücü kurulumu, CUDA toolkit, nvidia-container-toolkit, vLLM ile model serving, GPU monitoring ve Docker ile AI model deployment rehberi.
Stable Diffusion kurulumu, AUTOMATIC1111 ve ComfyUI arayüzleri, model indirme, LoRA eğitimi, ControlNet kullanımı ve Docker ile self-hosted görsel üretimi rehberi.