TGViewer
Юрий Петров | ai engineering Юрий Петров | ai engineering @mobile_developing · 1.57K subscribers
Post #1147 1.77K
Всем привет, на выходных пилил RAG-систему, и при векторизации данных для векторной базы данных Qdrant наткнулся на проблему плохой подготовки данных для векторизации, поискал в интернете, что-то толкового ничего не нашел, платные не рассматривал. Решил свой написать)

В итоге родился пакет ollama_embedder — CLI-инструмент на Dart для создания векторных представлений текста с помощью локального Ollama-сервера.

✨ Что умеет:
🔹 Генерирует эмбеддинги для файлов и целых директорий (рекурсивно).
🔹 Работает с локальным Ollama — проверяет установку, доступность сервера и наличие модели. Для векторизации по умолчанию использует модель nomic-embed-text.
🔹 Два режима предобработки: technical — сохраняет код как есть и textual — фокусируется на тексте, код заменяется на [CODE].
🔹 Умная очистка — удаляет HTML-шум, cookie-баннеры, навигацию, футеры, эмодзи.
🔹 Умное разбиение на чанки:
• Автоматически определяет оптимальный размер (до 1500 символов)
• Создает перекрытия между чанками (200 символов) для сохранения контекста (как же я задолбался это делать 🤯)
• Документы до 3000 символов остаются одним чанком
• Разбиение по границам параграфов, предложений и слов
• Автоматическая маркировка секций (intro, code, lists, urls, auto)

🔹 Надежные запросы — автоматические повторы при ошибках Ollama
🔹 Гибкая настройка — URL сервера, модель, таймауты, размер файлов, пути ввода/вывода
🔹 Структурированный итоговый JSON — готов для векторных БД и RAG-систем
🔹 Покрытие тестами — 78% покрытия кода

Пилил все выходные, но в итоге добился классной подготовки текста и кода для векторизации и, собственно, саму векторизацию.

Так что, если кому интересно про векторизацию данных, ставьте лайк, запилю видео, как оно работает.
Итоговый point в Qdrant на скрине...

Пример чанка:
[
{
"doc_id": "source/test.md",
"chunk_id": 0,
"clean_content": "Cleaned single-line chunk text without line breaks...",
"vector": [0.123, 0.456, "..."],
"metadata": {
"source": "source/test.md",
"section": "full_doc",
"type": "text",
"created_at": "2025-01-01T12:00:00.000Z"
}
}
]
  • 🔥 26
  • ❤ 5
More from @mobile_developing
  1. Sep 26, 2026Ну погнали ☺️
  2. Sep 24, 2026Я давно в мобильной разработке и быстро замечаю баги в приложениях. Причём не в каких-то п…
  3. Sep 23, 2026Благодарю ребят за такие тёплые слова, модули про Hugging Face добавлю, я думаю будет очен…
  4. Sep 23, 2026Вышла Claude Opus 5.5 Anthropic вчера выкатила Opus 5.5. При выходе новой модели обычно вс…
  5. Sep 21, 2026Сейчас все хайпуют на мозге мухи дрозофилы) Для тех, кто не в курсе: 3 сентября Google Res…
  6. Sep 17, 2026GitHub переписал рантайм Copilot с TypeScript на Rust руками агентов 832 тысячи строк прод…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →