Этот проект реализует RAG-систему (Retrieval-Augmented Generation) на основе официальной документации scikit-learn, позволяя задавать вопросы и получать точные ответы с указанием источников.
Система построена с использованием современных инструментов:
- LangChain — для построения полного RAG-пайплайна: загрузки, разбиения, векторизации и поиска.
- Ollama — для запуска локальных моделей:
bge-m3
— генерация эмбеддингов для семантического поиска,llama3
— генерация ответов на естественном языке.
Проект автоматически скачивает актуальную документацию scikit-learn, обрабатывает её, создает векторное хранилище на основе FAISS и предоставляет удобный интерфейс через Gradio для взаимодействия с системой.
- 📥 Автоматически скачивает и распаковывает актуальную документацию scikit-learn.
- 🧹 Очищает HTML, извлекает контекст (хлебные крошки, заголовки) и разбивает на чанки.
- 🧠 Векторизует текст с помощью
bge-m3
(через Ollama). - 🔍 Использует FAISS для быстрого поиска.
- 🤖 Генерирует ответы с помощью
llama3
. - 🖥️ Предоставляет Gradio-интерфейс для удобного взаимодействия.
- Какой параметр в KMeans отвечает за количество кластеров?
- Чем отличаются KMeans и MiniBatchKMeans?
- Почему scikit-learn не поддерживает обучение с подкреплением?
pip install -r requirements.txt
Если у вас ещё не установлен Ollama, скачайте его с официального сайта:
👉 https://ollama.com/download
Выполните в терминале:
ollama pull bge-m3
ollama pull llama3
В отдельном терминале запустите:
ollama run llama3
⚠️ Оставьте этот терминал открытым — он нужен для генерации ответов.
jupyter notebook
RAG_scikit-learn.ipynb
💡 Первый запуск может занять 5–10 минут: система скачает документацию, построит чанки и FAISS-индекс.
После запуска Gradio, откроется веб-интерфейс, где можно задавать вопросы и видеть ответы с ссылками на официальную документацию.
scikit-learn-rag/
├── README.md
├── RAG_scikit-learn.ipynb
├── output/ # (опционально) сохранённые чанки и FAISS
├── requirements.txt
├── .gitignore
└── LICENSE
Проект распространяется под лицензией MIT.