01
ЗАЩО ЛОКАЛЕН AI
Кога Ollama има смисъл и кога не
| CLOUD AI (ChatGPT, Claude.ai) | ЛОКАЛЕН AI (Ollama) |
|---|---|
| Данните минават през сървъри на трети страни | Данните остават на твоята машина |
| Месечен абонамент $20+ | Безплатно след хардуера |
| Rate limits при heavy usage | Без ограничения |
| Нужен интернет | Работи офлайн |
| По-умни модели (GPT-4o, Claude Opus) | Локалните модели са по-слаби |
| Бърз отговор (мощни datacenter GPU) | По-бавен без добра GPU |
| Не можеш да кастомизираш | Пълен контрол, fine-tuning |
КОГА ДА ПОЛЗВАШ OLLAMA
Чувствителни данни (клиенти, лични файлове, вътрешна документация).
Автоматизации с много извиквания — cloud цената расте, локалното е безплатно.
Офлайн среди. Тестване и разработка на AI приложения без API разходи.
02
ИНСТАЛАЦИЯ
Linux, macOS — под минута
LINUX (DEBIAN / UBUNTU / ARCH)
# Официален скрипт — инсталира и стартира service
curl -fsSL https://ollama.com/install.sh | sh
# Провери дали работи
systemctl status ollama
ollama --version
curl -fsSL https://ollama.com/install.sh | sh
# Провери дали работи
systemctl status ollama
ollama --version
macOS
# Homebrew
brew install ollama
ollama serve & # стартирай в background
# Или свали .app от ollama.com и пусни
brew install ollama
ollama serve & # стартирай в background
# Или свали .app от ollama.com и пусни
EXPOSE НА МРЕЖАТА (за достъп от други машини)
# По подразбиране слуша само на localhost:11434
# За да го достъпваш от LAN:
# systemd override
sudo systemctl edit ollama
# Добави:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl daemon-reload
sudo systemctl restart ollama
# За да го достъпваш от LAN:
# systemd override
sudo systemctl edit ollama
# Добави:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl daemon-reload
sudo systemctl restart ollama
СИГУРНОСТ ПРИ EXPOSE
Ако exposваш Ollama на мрежата — постави firewall rule. Ollama няма authentication по подразбиране. Всеки в LAN-а (или интернет ако exposваш навън) може да изпраща заявки. ufw allow from 192.168.0.0/24 to any port 11434
03
КОИ МОДЕЛИ ДА ТЕГЛИШ
Размерът определя RAM нуждите и качеството
ПРАВИЛОТО ЗА RAM
Модел 7B ≈ 4-5GB RAM при 4-bit квантизация. 13B ≈ 8GB. 32B ≈ 20GB. 70B ≈ 40GB.
Ако нямаш достатъчно RAM — моделът се зарежда на диска (swap) и е бавен.
По-малкият модел в RAM > по-голям модел на диска.
LLAMA 3.2
Meta · Препоръчан за старт
Размери1B, 3B, 11B, 90B
RAM (3B)~2GB
Инсталация
ollama pull llama3.2Добър заОбщо ползване, чат
MISTRAL
Mistral AI · Бърз и умен
Размери7B, 22B
RAM (7B)~4GB
Инсталация
ollama pull mistralДобър заАнализ, summarizing
PHI-4
Microsoft · Малък, мощен
Размери14B
RAM~8GB
Инсталация
ollama pull phi4Добър заReasoning, математика
GEMMA 3
Google · Multilingual
Размери1B, 4B, 12B, 27B
RAM (4B)~3GB
Инсталация
ollama pull gemma3Добър заМногоезичен текст
CODELLAMA
Meta · Само за код
Размери7B, 13B, 34B
RAM (7B)~4GB
Инсталация
ollama pull codellamaДобър заBash, Python, PHP код
DEEPSEEK-R1
DeepSeek · Reasoning
Размери7B, 14B, 32B, 70B
RAM (7B)~5GB
Инсталация
ollama pull deepseek-r1Добър заЛогика, анализ, код
ПРЕПОРЪКА ЗА СТАРТ
Започни с llama3.2:3b — бърз, ~2GB RAM, за всичко ежедневно.
Имаш 16GB+ RAM? Пробвай mistral:7b или llama3.2:11b.
62GB RAM (сървър)? llama3.2:90b или deepseek-r1:32b без проблем.
04
CLI — ОСНОВНИ КОМАНДИ
Всичко от терминала
ОСНОВНИ КОМАНДИ
# Изтегли модел
ollama pull llama3.2
ollama pull llama3.2:11b # конкретна версия
# Интерактивен чат
ollama run llama3.2
# Едно питане от терминала
echo "Обясни как работи TCP/IP" | ollama run llama3.2
# Списък изтеглени модели
ollama list
# Изтрий модел
ollama rm llama3.2
# Информация за модел
ollama show llama3.2
# Текущо работещи модели
ollama ps
# Копирай модел под ново име (за customization)
ollama cp llama3.2 moj-asistent
ollama pull llama3.2
ollama pull llama3.2:11b # конкретна версия
# Интерактивен чат
ollama run llama3.2
# Едно питане от терминала
echo "Обясни как работи TCP/IP" | ollama run llama3.2
# Списък изтеглени модели
ollama list
# Изтрий модел
ollama rm llama3.2
# Информация за модел
ollama show llama3.2
# Текущо работещи модели
ollama ps
# Копирай модел под ново име (за customization)
ollama cp llama3.2 moj-asistent
PIPE — АНАЛИЗИРАЙ ФАЙЛОВЕ И ЛОГОВЕ
# Анализирай лог файл
cat /var/log/nginx/error.log | ollama run llama3.2 "Намери грешките и обясни"
# Обясни bash скрипт
cat backup.sh | ollama run codellama "Обясни какво прави скриптът"
# Преведи документ
cat readme_en.txt | ollama run llama3.2 "Преведи на BG"
# Обобщи дълъг файл
cat document.txt | ollama run mistral "Обобщи в 5 bullet points"
cat /var/log/nginx/error.log | ollama run llama3.2 "Намери грешките и обясни"
# Обясни bash скрипт
cat backup.sh | ollama run codellama "Обясни какво прави скриптът"
# Преведи документ
cat readme_en.txt | ollama run llama3.2 "Преведи на BG"
# Обобщи дълъг файл
cat document.txt | ollama run mistral "Обобщи в 5 bullet points"
MODELFILE — КАСТОМЕН АСИСТЕНТ
# Създай Modelfile
cat > Modelfile <<EOF
FROM llama3.2
SYSTEM """
Ти си технически асистент за DTGaraGe форум.
Специализираш в: Linux, автомобили, заваряване, AI.
Отговаряй на БГ. Бъди директен и практичен.
"""
PARAMETER temperature 0.7
PARAMETER num_ctx 4096
EOF
# Създай модела
ollama create dtgarage-bot -f Modelfile
# Пусни го
ollama run dtgarage-bot
cat > Modelfile <<EOF
FROM llama3.2
SYSTEM """
Ти си технически асистент за DTGaraGe форум.
Специализираш в: Linux, автомобили, заваряване, AI.
Отговаряй на БГ. Бъди директен и практичен.
"""
PARAMETER temperature 0.7
PARAMETER num_ctx 4096
EOF
# Създай модела
ollama create dtgarage-bot -f Modelfile
# Пусни го
ollama run dtgarage-bot
05
REST API
Ollama слуша на localhost:11434 — HTTP заявки като OpenAI
CURL — GENERATE ENDPOINT
curl http://localhost:11434/api/generate \
-d '{"model":"llama3.2","prompt":"Как да настроя nginx?","stream":false}'
-d '{"model":"llama3.2","prompt":"Как да настроя nginx?","stream":false}'
CURL — CHAT ENDPOINT (OpenAI-съвместим)
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [
{"role":"system","content":"Отговаряй на БГ."},
{"role":"user","content":"Какво е Docker?"}
]
}'
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [
{"role":"system","content":"Отговаряй на БГ."},
{"role":"user","content":"Какво е Docker?"}
]
}'
OPENAI-СЪВМЕСТИМ API
Ollama поддържа /v1/chat/completions endpoint в OpenAI формат. Това означава, че можеш да използваш всяка библиотека или код, написан за OpenAI, само като смениш base URL на http://localhost:11434 и модела на локален. Нулева промяна в логиката.
06
PYTHON
Ollama SDK или OpenAI SDK — и двата работят
ИНСТАЛАЦИЯ
pip install ollama
# или OpenAI SDK (за v1/ endpoint)
pip install openai
# или OpenAI SDK (за v1/ endpoint)
pip install openai
OLLAMA SDK — ПРОСТ ЧАТ
import ollama
response = ollama.chat(
model='llama3.2',
messages=[
{'role': 'system', 'content': 'Отговаряй на БГ.'},
{'role': 'user', 'content': 'Обясни RAID 1 с прости думи.'},
]
)
print(response['message']['content'])
response = ollama.chat(
model='llama3.2',
messages=[
{'role': 'system', 'content': 'Отговаряй на БГ.'},
{'role': 'user', 'content': 'Обясни RAID 1 с прости думи.'},
]
)
print(response['message']['content'])
OLLAMA SDK — STREAMING
import ollama
for chunk in ollama.chat(
model='llama3.2',
messages=[{'role': 'user', 'content': 'Напиши bash скрипт за backup.'}],
stream=True,
):
print(chunk['message']['content'], end='', flush=True)
for chunk in ollama.chat(
model='llama3.2',
messages=[{'role': 'user', 'content': 'Напиши bash скрипт за backup.'}],
stream=True,
):
print(chunk['message']['content'], end='', flush=True)
OPENAI SDK КЪМ OLLAMA (drop-in замяна)
from openai import OpenAI
# Само base_url се сменя — останалото е идентично с OpenAI
client = OpenAI(
base_url='http://localhost:11434/v1',
api_key='ollama', # задължителен параметър, стойността няма значение
)
response = client.chat.completions.create(
model='mistral',
messages=[{'role': 'user', 'content': 'Как работи MIG заваряване?'}]
)
print(response.choices[0].message.content)
# Само base_url се сменя — останалото е идентично с OpenAI
client = OpenAI(
base_url='http://localhost:11434/v1',
api_key='ollama', # задължителен параметър, стойността няма значение
)
response = client.chat.completions.create(
model='mistral',
messages=[{'role': 'user', 'content': 'Как работи MIG заваряване?'}]
)
print(response.choices[0].message.content)
07
PHP
За уебсайтове — cURL към локалния Ollama
OLLAMA PHP ФУНКЦИЯ
<?php
function ollama_ask(string $prompt, string $model = 'llama3.2'): string {
$payload = json_encode([
'model' => $model,
'prompt' => $prompt,
'stream' => false,
]);
$ch = curl_init('http://localhost:11434/api/generate');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_TIMEOUT => 120,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
return $result['response'] ?? 'Грешка.';
}
// Употреба
echo ollama_ask('Какво е Docker Compose?');
function ollama_ask(string $prompt, string $model = 'llama3.2'): string {
$payload = json_encode([
'model' => $model,
'prompt' => $prompt,
'stream' => false,
]);
$ch = curl_init('http://localhost:11434/api/generate');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_TIMEOUT => 120,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
return $result['response'] ?? 'Грешка.';
}
// Употреба
echo ollama_ask('Какво е Docker Compose?');
ТАЙМАУТ
Локалните модели са по-бавни от cloud API. Постави CURLOPT_TIMEOUT на поне 120 секунди. При CPU-only изпълнение на голям модел — може да са нужни и 3-5 минути за дълъг отговор.
08
ХАРДУЕР
Какво имаш = какво можеш да пуснеш
NVIDIA GPU
CUDA поддръжка — Ollama го ползва автоматично.
8GB VRAM → до 7B модели в GPU
16GB VRAM → до 13B
24GB+ VRAM → до 34B
Най-бърз вариант.
8GB VRAM → до 7B модели в GPU
16GB VRAM → до 13B
24GB+ VRAM → до 34B
Най-бърз вариант.
AMD GPU
ROCm поддръжка — работи, но изисква настройка.
RX 580 8GB → малки модели (3B-7B)
RX 6800 XT 16GB → до 13B
По-бавно от NVIDIA при равен VRAM.
RX 580 8GB → малки модели (3B-7B)
RX 6800 XT 16GB → до 13B
OLLAMA_GPU_DRIVER=rocmПо-бавно от NVIDIA при равен VRAM.
CPU ONLY
Работи, но бавно.
16GB RAM → 7B модели
32GB RAM → 13B
62GB RAM → до 32B удобно
Xeon E5 с 62GB ECC RAM → mistral:7b или deepseek-r1:14b без проблем.
16GB RAM → 7B модели
32GB RAM → 13B
62GB RAM → до 32B удобно
Xeon E5 с 62GB ECC RAM → mistral:7b или deepseek-r1:14b без проблем.
AMD ROCm SETUP (RX 580 и подобни)
# Инсталирай ROCm
sudo apt install rocm-hip-runtime
# Добави потребителя в render групата
sudo usermod -aG render,video $USER
# Стартирай Ollama с ROCm
HSA_OVERRIDE_GFX_VERSION=10.3.0 OLLAMA_GPU_DRIVER=rocm ollama serve
# Провери дали GPU се разпознава
ollama ps # след pull и run на модел — трябва да пише GPU
sudo apt install rocm-hip-runtime
# Добави потребителя в render групата
sudo usermod -aG render,video $USER
# Стартирай Ollama с ROCm
HSA_OVERRIDE_GFX_VERSION=10.3.0 OLLAMA_GPU_DRIVER=rocm ollama serve
# Провери дали GPU се разпознава
ollama ps # след pull и run на модел — трябва да пише GPU
09
СЪВЕТИ ЗА ОПТИМИЗАЦИЯ
Как да извлечеш максимума от хардуера
ПОЛЕЗНИ ENV ПРОМЕНЛИВИ
# Брой паралелни заявки (default: 1)
OLLAMA_NUM_PARALLEL=4
# Колко модела да стоят заредени в RAM
OLLAMA_MAX_LOADED_MODELS=2
# Колко да чака преди да изхвърли модела от RAM (default: 5m)
OLLAMA_KEEP_ALIVE=10m
# Debug logging
OLLAMA_DEBUG=1
# Задай в /etc/systemd/system/ollama.service.d/override.conf
OLLAMA_NUM_PARALLEL=4
# Колко модела да стоят заредени в RAM
OLLAMA_MAX_LOADED_MODELS=2
# Колко да чака преди да изхвърли модела от RAM (default: 5m)
OLLAMA_KEEP_ALIVE=10m
# Debug logging
OLLAMA_DEBUG=1
# Задай в /etc/systemd/system/ollama.service.d/override.conf
| ПАРАМЕТЪР В MODELFILE | ЕФЕКТ | ПРЕПОРЪКА |
|---|---|---|
PARAMETER temperature 0.1 | По-детерминистичен отговор | Код, факти |
PARAMETER temperature 0.8 | По-творчески отговор | Писане, идеи |
PARAMETER num_ctx 4096 | Контекст прозорец | Повече = повече RAM |
PARAMETER num_predict 512 | Максимална дължина отговор | Ограничи за скорост |
PARAMETER top_k 40 | Token sampling | Default е добър |
OPEN WEBUI — GRAPHICAL INTERFACE
Искаш ChatGPT-like интерфейс за Ollama? Open WebUI е самохостван и безплатен:docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway ghcr.io/open-webui/open-webui:mainПосле отвори
http://localhost:3000. Свързва се с Ollama автоматично.