Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Smart Grep

Локальный ИИ-ассистент по личной базе знаний
Ищет в ваших текстовых файлах ответы на естественно-языковые вопросы — полностью офлайн, без интернета, используя локальную модель через Ollama.

✨ Что умеет

  • Понимает вопросы на русском языке (и не только).
  • Сама выделяет ключевые слова для поиска в файлах.
  • Находит релевантные фрагменты в куче .md и .txt файлов (рекурсивно по всем папкам).
  • Лемматизирует слова для точного совпадения (pymorphy2 или встроенный стеммер).
  • Генерирует развёрнутый ответ, опираясь только на содержимое ваших заметок.
  • Ведёт историю диалогов.

🔧 Требования

  • Python 3.10+
  • Ollama (должен быть запущен)
  • Установленная модель gemma4:e4b-it-q4_K_M (или любая другая, которую вы укажете в коде)
  • pymorphy2 и словари pymorphy2-dicts-ru (опционально, но крайне желательно — повышает качество поиска)
# Рекомендуется
pip install pymorphy2 pymorphy2-dicts-ru

🚀 Быстрый старт

1. Клонируйте репозиторий

git clone https://github.com/your-username/smart_grep.git
cd smart_grep

2. Загрузите модель (если ещё нет)

ollama pull gemma4:e4b-it-q4_K_M

3. Запустите

uv run main.py "C:\путь\к\вашей\базе\знаний"

или (если без uv)

python main.py "C:\путь\к\вашей\базе\знаний"

Укажите путь к папке, в которой лежат ваши .md/.txt заметки.

💬 Пример работы

🤖 База знаний: C:\Users\pwrmind\Desktop\обучение
📚 Лемматизация: встроенный стеммер
Задайте вопрос (exit для выхода):

❓ Вы: что такое когнитивные искажения?
🔍 Извлекаю ключевые слова...
📂 Ключевые леммы: ['когнитивн', 'искажен']
📄 Поиск по файлам...
🧠 Формирую ответ...

🤖 Ответ:
Когнитивные искажения — это систематические ошибки в мышлении, которые влияют на принятие решений и суждений. Примеры: чёрно-белое мышление, катастрофизация, чтение мыслей.

📂 Как работает

  1. Извлечение ключевых слов
    Локальная модель (Gemma 4B) получает вопрос и возвращает 2–4 главных слова в начальной форме.

  2. Лемматизация
    Слова приводятся к нормальной форме (pymorphy2) или, если он недоступен, к основе через регулярные выражения.

  3. Поиск по файлам
    Сканируются все .md и .txt файлы внутри указанной папки (включая вложенные). Для каждой строки проверяется вхождение целых слов (не подстрок). Фрагменты с бо́льшим количеством совпадений ранжируются выше. К каждому берётся контекст ±10 строк и заголовок файла.

  4. Генерация ответа
    10 лучших фрагментов передаются модели вместе с вопросом. Модель обязана отвечать строго по предоставленному контексту — никаких галлюцинаций или внешних знаний.

🧠 Настройка модели

По умолчанию используется gemma4:e4b-it-q4_K_M. Чтобы поменять, отредактируйте переменную в коде:

MODEL_NAME = "ваша_модель"

🛟 Если pymorphy2 не установлен

Программа автоматически переключится на встроенный стеммер (регулярные выражения).
Качество поиска немного снизится, но всё будет работать.

📖 История диалогов

Все разговоры сохраняются в папку .chat_history внутри базы знаний. Формат:

.chat_history/
  chat_2026-06-16.md

📜 Лицензия

MIT


Сделано с ❤️ для тех, кто хочет думать локально.

About

🧠 Smart Grep ИИ-ассистент. Ищет в ваших текстовых файлах ответы на естественно-языковые вопросы

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages