diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index c07aa91..faa3b03 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -2,6 +2,7 @@
"recommendations": [
"saoudrizwan.claude-dev",
"nr-codetools.localaipilot",
- "continue.continue"
+ "continue.continue",
+ "rooveterinaryinc.roo-cline"
]
}
diff --git a/README.md b/README.md
index 6d40f76..8de15f4 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,14 @@
-# Local ollama
+# Local ollama + RAG
-Набор скриптов для быстрого запуска локальных LLM.
+Набор скриптов для быстрого запуска локальных LLM и RAG-системы.
Модели примерно до 40 млрд параметров (обычно 32b) наиболее реально запускать на домашних ПК разных мощностей.
-Меньше параметров → меньше памяти на диске и в ОЗУ → выше скорость (tps) → ниже качество.
-
-Больше параметров → больше памяти на диске и в ОЗУ → ниже скорость (tps) → выше качество.
+> Меньше параметров → меньше памяти на диске и в ОЗУ → выше скорость (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.
+Например, [phi4-mini:3.8b](phi4-mini/3.8b), [qwen2.5:7b](qwen2.5/7b) или небольшая `llama`.
## Структура проекта
@@ -35,17 +34,133 @@
## Как использовать
1. Запустить `./up`
-2. Запустить скрипт из любой и поддиректорий для скачивания и запуска модели в терминале
-3. Открыть веб-морду по адресу [localhost:9999](http://localhost:9999)
+2. Запустить `./ollama run <название модели>` для диалога в терминале
+3. Открыть веб-морду по адресу [localhost:9999](http://localhost:9999) для более богатого функционала
+
+
+ Полный список лёгких и средних моделей, которые можно попробовать для разных целей
+
+ ```
+ 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
+ ```
+
+
Для настройки vscode поставить один из плагинов:
-* [Cline](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev)
-* [Continue](https://marketplace.visualstudio.com/items?itemName=Continue.continue)
-* [Local AI Pilot](https://marketplace.visualstudio.com/items?itemName=nr-codetools.localaipilot)
+* [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 поставить плагин:
-* [AI Coding](https://plugins.jetbrains.com/plugin/21263-ai-coding)
+Для настройки 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` и подгрузить доступные модели из контейнера.
diff --git a/rag/README.md b/rag/README.md
index d0c6ac3..f71f366 100644
--- a/rag/README.md
+++ b/rag/README.md
@@ -159,7 +159,7 @@ python3 vectorize.py
python3 vectorize.py --help
```
-## 4. Запуск
+### 4. Запуск
Для работы с RAG в интерактивном режиме (симуляция диалога) следует выполнить команду:
@@ -186,7 +186,7 @@ python3 rag.py --help
> [!NOTE]
> У скрипта очень довольно аргументов для гибкой настройки.
-### Кастомный системный промпт
+#### Кастомный системный промпт
Если хочется уточнить роль генеративной модели, можно создать текстовый файл и прописать туда всё необходимое, учитывая следующие правила:
@@ -204,30 +204,30 @@ python3 rag.py --help
Посмотреть полный промпт можно указав аргумент `--show_prompt` при вызове `rag.py`.
-### Неплохие модели для экспериментов
+## Неплохие модели для экспериментов
Обозначения:
* ☑️ — по умолчанию
* 🧠 — размышляющая
* 🏋️ — требуются ресурсы
-#### Эмбеддинг
+### Эмбеддинг
- [`sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2`](https://hf.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2) ☑️
- [`nomad-embed-text`](https://ollama.com/library/nomad-embed-text)
- ...
-#### Ранжирование
+### Ранжирование
- [`cross-encoder/ms-marco-MMarco-mMiniLMv2-L12-V1`](https://hf.co/cross-encoder/ms-marco-MMarco-mMiniLMv2-L12-V1) ☑️
-- `cross-encoder/ms-marco-MiniLM-L-6-v2`
-- `cross-encoder/ms-marco-TinyBERT-L-2-v2`
+- [`cross-encoder/ms-marco-MiniLM-L-6-v2`](https://hf.co/cross-encoder/ms-marco-MiniLM-L-6-v2)
+- [`cross-encoder/ms-marco-TinyBERT-L-2-v2`](https://hf.co/cross-encoder/ms-marco-TinyBERT-L-2-v2)
- ...
> [!NOTE]
> Другие можно найти здесь: https://github.com/AlexeyMalafeev/ruformers
-#### Генеративные
+### Генеративные
Перечислен список: по убыванию качества ответов и размера модели, по возрастанию скорости ответов на обычном домашнем ПК.
@@ -241,115 +241,6 @@ python3 rag.py --help
- [`gemma3n:e4b`](https://ollama.com/library/gemma3n)
- [`gemma3n:e2b`](https://ollama.com/library/gemma3n)
-
- Полный список лёгких и средних моделей, которые можно использовать не только в RAG
-
- ```
- 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
- ```
-
-
-
## Дисклеймер
Проект родился на энтузиазме из личного любопытства.