176 lines
5.5 KiB
Markdown
176 lines
5.5 KiB
Markdown
# Local ollama + RAG
|
||
|
||
Набор скриптов для быстрого запуска локальных LLM и RAG-системы.
|
||
|
||
Модели примерно до 40 млрд параметров (обычно 32b) наиболее реально запускать на домашних ПК разных мощностей.
|
||
|
||
> Меньше параметров → меньше памяти на диске и в ОЗУ → выше скорость (tps) → ниже качество.
|
||
> Больше параметров → больше памяти на диске и в ОЗУ → ниже скорость (tps) → выше качество.
|
||
|
||
Модели до 7 млрд достаточно хорошо отвечают (до 5-10 tps) на i5-9400 CPU 2.90GHz + 32 Гб ОЗУ без видеокарты, при условии, что в один момент времени одна модель обрабатывает один запрос.
|
||
Например, [phi4-mini:3.8b](phi4-mini/3.8b), [qwen2.5:7b](qwen2.5/7b) или небольшая `llama`.
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
./
|
||
├── rag/ # Директория для работы с RAG
|
||
├── up # Скрипт для запуска docker-стека
|
||
├── down # Скрипт для остановки docker-стека
|
||
├── ollama # Скрипт для выполнения произвольных команд ollama
|
||
├── ollama.code-workspace # Конфигурация VSCode Workspace
|
||
└── README.md # Этот файл
|
||
```
|
||
|
||
## Стек
|
||
|
||
* bash
|
||
* python, venv, pip
|
||
* [docker](https://docker.com)
|
||
* [ollama](https://ollama.com)
|
||
* [qdrant](https://qdrant.tech/documentation/quickstart/)
|
||
* [open-webui](https://docs.openwebui.com)
|
||
|
||
## Как использовать
|
||
|
||
1. Запустить `./up`
|
||
2. Запустить `./ollama run <название модели>` для диалога в терминале
|
||
3. Открыть веб-морду по адресу [localhost:9999](http://localhost:9999) для более богатого функционала
|
||
|
||
<a id="models"></a>
|
||
<details>
|
||
<summary>Полный список лёгких и средних моделей, которые можно попробовать для разных целей</summary>
|
||
|
||
```
|
||
codegemma:2b
|
||
codegemma:7b
|
||
codellama:7b
|
||
codellama:13b
|
||
codellama:34b
|
||
codeqwen:1.5b
|
||
codeqwen:7b
|
||
codestral:22b
|
||
deepcoder:1.5b
|
||
deepcoder:14b
|
||
deepseek-coder:1.3b
|
||
deepseek-coder:6.7b
|
||
deepseek-coder:33b
|
||
deepseek-coder-v2:16b
|
||
deepseek-r1:1.5b
|
||
deepseek-r1:7b
|
||
deepseek-r1:8b
|
||
deepseek-r1:14b
|
||
deepseek-r1:32b
|
||
devstral:24b
|
||
dolphin3:8b
|
||
gemma:2b
|
||
gemma:7b
|
||
gemma3:1b
|
||
gemma3:4b
|
||
gemma3:12b
|
||
gemma3:27b
|
||
gemma3:270m
|
||
gemma3n:e2b
|
||
gemma3n:e4b
|
||
gpt-oss:20b
|
||
granite-code:3b
|
||
granite-code:8b
|
||
granite-code:20b
|
||
granite-code:34b
|
||
llama2:7b
|
||
llama2:13b
|
||
llama3:8b
|
||
llama3.1:8b
|
||
llama3.2:1b
|
||
llama3.2:3b
|
||
llava-llama3:8b
|
||
magistral:24b
|
||
mistral:7b
|
||
mistral-nemo:12b
|
||
mistral-small:22b
|
||
mistral-small:24b
|
||
mixtral:8x7b
|
||
mxbai-embed-large:latest
|
||
nomic-embed-text:latest
|
||
openthinker:7b
|
||
openthinker:32b
|
||
phi:2.7b
|
||
phi3:3.8b
|
||
phi3:14b
|
||
phi3:instruct
|
||
phi3:medium
|
||
phi3:mini
|
||
phi3.5:3.8b
|
||
phi4:14b
|
||
phi4-mini-reasoning:3.8b
|
||
phi4-mini:3.8b
|
||
phi4-reasoning:14b
|
||
qwen:0.5b
|
||
qwen:1.8b
|
||
qwen:4b
|
||
qwen:7b
|
||
qwen:14b
|
||
qwen:32b
|
||
qwen2:0.5b
|
||
qwen2:1.5b
|
||
qwen2:7b
|
||
qwen2.5:0.5b
|
||
qwen2.5:1.5b
|
||
qwen2.5:3b
|
||
qwen2.5:7b
|
||
qwen2.5:14b
|
||
qwen2.5:32b
|
||
qwen2.5-coder:0.5b
|
||
qwen2.5-coder:1.5b
|
||
qwen2.5-coder:3b
|
||
qwen2.5-coder:7b
|
||
qwen2.5-coder:14b
|
||
qwen2.5-coder:32b
|
||
qwen3:0.6b
|
||
qwen3:1.7b
|
||
qwen3:4b
|
||
qwen3:8b
|
||
qwen3:14b
|
||
qwen3:30b
|
||
qwen3:32b
|
||
qwen3-coder:30b
|
||
qwq:32b
|
||
smollm2:1.7m
|
||
smollm2:135m
|
||
smollm2:360m
|
||
stable-code:3b
|
||
stable-code:instruct
|
||
starcoder2:3b
|
||
starcoder2:7b
|
||
starcoder2:15b
|
||
```
|
||
|
||
</details>
|
||
|
||
Для настройки vscode поставить один из плагинов:
|
||
* [Cline](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) (полноценный агент/болталка)
|
||
* [Roo Code](https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline) (более удобный форк cline)
|
||
* [Continue](https://marketplace.visualstudio.com/items?itemName=Continue.continue) (замкнут на своей экосистеме, но позволяет работать с ollama)
|
||
* [Local AI Pilot](https://marketplace.visualstudio.com/items?itemName=nr-codetools.localaipilot) (примитивная болталка)
|
||
|
||
Для настройки idea поставить плагины:
|
||
* [MCP Server](https://plugins.jetbrains.com/plugin/26071-mcp-server)
|
||
* File | Settings | Tools | MCP Server:
|
||
* Enable MCP Server
|
||
* Copy SSE Config
|
||
* [AI Coding](https://plugins.jetbrains.com/plugin/21263-ai-coding)
|
||
* File | Settings | Other Settings | AI Coding — настроить API
|
||
* в панели AI Coding зайти в MCP и добавить новый, вставив JSON-конфиг SSE, скопированный выше
|
||
* в панели AI Coding зайти в Agents, создать нового и дать ему этот MCP-сервер
|
||
|
||
Плагины должны соединиться с `localhost:11434` и подгрузить доступные модели из контейнера.
|
||
|
||
### Использование RAG системы
|
||
|
||
Для работы RAG системы необходимо обратиться к документу [rag/README.md](rag/README.md).
|
||
|
||
## Дополнительные материалы
|
||
|
||
* https://habr.com/ru/companies/minerva_media/articles/909130/
|
||
* https://github.com/nagaraj-real/localaipilot-api/blob/main/README.md#chat-models
|