RAG (Retrieval-Augmented Generation) — это технология, при которой модель ищет ответы в ваших документах, а не полагается только на свои знания.
Как это работает:
Преимущества:
Плагин уже установлен в папке:
Чтобы активировать:
| Инструмент | Описание | Параметры |
|---|---|---|
rag_load_documents | Загружает документы из папки | directory (обязательно), chunk_size, overlap |
rag_search | Ищет информацию в загруженных документах | query (обязательно), top_n |
rag_list_documents | Показывает список загруженных файлов | — |
rag_clear | Очищает базу документов | — |
Создайте папку и положите туда файлы:
В чате с моделью напишите:
Или используйте инструмент напрямую:
Ответ плагина:
Теперь спрашивайте что угодно по содержимому файлов:
Модель автоматически вызовет rag_search и найдет ответ.
Ответ:
Ответ:
| Формат | Расширения | Описание |
|---|---|---|
| Текст | .txt | Обычные текстовые файлы |
| Markdown | .md | Документация, заметки |
| JSON | .json | Конфиги, данные |
| CSV | .csv | Табличные данные |
| Python | .py | Исходный код |
| JavaScript | .js, .jsx | Исходный код |
| TypeScript | .ts, .tsx | Исходный код |
| HTML | .html | Веб-страницы |
| CSS | .css | Стили |
| YAML | .yaml, .yml | Конфигурации |
| TOML | .toml | Конфигурации |
| XML | .xml | Структурированные данные |
| Логи | .log | Файлы журналов |
Не поддерживаются: PDF, DOCX, изображения, аудио, видео
Результат поиска:
Результат:
По умолчанию: 500 слов
| Размер | Когда использовать |
|---|---|
| 200-300 | Короткие факты, определения, конфиги |
| 500 | Универсальный вариант (по умолчанию) |
| 1000+ | Длинные тексты, статьи, документация |
По умолчанию: 100 слов
Перекрытие нужно, чтобы важная информация не "разрезалась" между фрагментами. Чем больше overlap — тем точнее поиск, но больше фрагментов в памяти.
По умолчанию: 5
Увеличьте, если нужно больше контекста. Уменьшите для более точных ответов.
Причина: В папке нет файлов с поддерживаемыми расширениями.
Решение: Проверьте, что файлы имеют расширения .txt, .md, .json, .py, .ts и т.д.
Причина: Запрос не совпадает с содержимым документов.
Решение:
chunk_size при загрузкеrag_list_documents, что файлы загрузилисьПричина: Нет доступа к папке или неверный путь.
Решение:
C:\\docs)Причина: Модель не понимает, что нужно искать в документах.
Решение: Добавьте в System Prompt:
Разбивайте большие файлы на логические части. Один файл — одна тема.
api-auth-setup.md лучше, чем doc1.md — модель видит имя файла в результатах поиска.
Если хотите работать с другим набором документов:
Затем загружайте новые файлы.
Для полных ответов используйте оба плагина:
rag_search — для ваших документовinternet_search — для свежей информации из интернетаПри загрузке исходного кода:
Так функции не будут разрезаться посередине.
Всегда используйте rag_list_documents после загрузки, чтобы убедиться, что все файлы подхвачены.
Используется BM25 — классический алгоритм полнотекстового поиска.
Все данные хранятся в оперативной памяти и удаляются при перезапуске LM Studio.
Если вышла новая версия:
Затем перезапустите LM Studio.
~/.lmstudio/extensions/plugins/lmstudio/rag-local/
C:\Users\cerko\Documents\my-knowledge-base\
├── project-specs.md
├── api-documentation.txt
├── meeting-notes-2024.md
├── config.json
└── code-examples.py
Загрузи документы из папки "C:\Users\cerko\Documents\my-knowledge-base"
{
"name": "rag_load_documents",
"arguments": {
"directory": "C:\\Users\\cerko\\Documents\\my-knowledge-base"
}
}
✅ Loaded 5 document(s) into RAG knowledge base.
Files: project-specs.md, api-documentation.txt, meeting-notes-2024.md, config.json, code-examples.py
Total fragments: 42
Total characters: 125,430
Chunk size: 500 words, overlap: 100 words
Use `rag_search` to search these documents.
Какие требования к API описаны в моих документах?
rag_list_documents
## Loaded Documents (5 files, 42 fragments)
- project-specs.md (12 fragments, 45,200 chars)
- api-documentation.txt (15 fragments, 38,100 chars)
- meeting-notes-2024.md (8 fragments, 22,500 chars)
- config.json (3 fragments, 1,200 chars)
- code-examples.py (4 fragments, 18,430 chars)
rag_clear
✅ Cleared 5 document(s) from RAG knowledge base.
Пользователь: Загрузи документы из "C:\Projects\myapp\docs"
Плагин: ✅ Loaded 8 document(s)...
Пользователь: Как настроить подключение к базе данных?
Модель: [вызывает rag_search]
Found 3 relevant document fragment(s) for "настройка подключения к базе данных":
## Fragment 1 (Source: setup-guide.md, Relevance: 12.45)
Для подключения к базе данных используйте следующие параметры:
- HOST: localhost
- PORT: 5432
- DATABASE: myapp_db
- USER: admin
Пример подключения в Python:
import psycopg2
conn = psycopg2.connect(host="localhost", port=5432, ...)
Пользователь: Загрузи файлы из "C:\Projects\myapp\src"
Пользователь: Где определена функция авторизации?
Found 2 relevant fragment(s):
## Fragment 1 (Source: auth.ts, Relevance: 15.32)
export async function authenticateUser(email: string, password: string) {
const user = await db.users.findOne({ email });
if (!user) throw new Error("User not found");
const valid = await bcrypt.compare(password, user.passwordHash);
if (!valid) throw new Error("Invalid password");
return generateToken(user);
}
Пользователь: Загрузи "C:\Users\cerko\Documents\notes"
Пользователь: Какие задачи я записал на эту неделю?
Пользователь: Загрузи "C:\Projects\myapp"
Пользователь: Какие переменные окружения нужны для продакшена?
{
"directory": "C:\\docs",
"chunk_size": 1000
}
{
"directory": "C:\\docs",
"overlap": 200
}
{
"query": "как настроить сервер",
"top_n": 10
}
When the user asks about information that might be in their loaded documents,
use the `rag_search` tool to find relevant information before answering.
rag_clear
{
"directory": "C:\\Projects\\myapp\\src",
"chunk_size": 300,
"overlap": 150
}
cd ~/.lmstudio/extensions/plugins/lmstudio/rag-local
npm install
npm run build
npx esbuild src/index.ts --bundle --outfile=.lmstudio/production.js --platform=node --format=cjs --external:@lmstudio/sdk --minify=false