Если ваши данные — золото, то мы просто открыли сейф и вынесли облако за дверь. Поставил чайник, поднял кластер, и — не смейтесь — уложился в восемь минут.
Мы в Skald хотели, чтобы RAG работал локально: без третьих сторон, без компромиссов с приватностью. Базовый конструктор прост: векторное хранилище, эмбеддинги, LLM, а часто ещё реранкер и парсинг документов. Мы взяли максимально опенсорсный путь: Postgres+pgvector (да, спорно, но до сотен тысяч документов — огонь), Docling для парсинга, sentence-transformers по умолчанию (all‑MiniLM‑L6‑v2) или bge‑m3 для мультиязычности, реранкеры на cross‑encoder, и любой LLM, который вы поднимете сами. В тестах — GPT‑OSS 20B через llama.cpp на g5.2xlarge.
Дальше — практика. Мы импортировали контент PostHog (около 2000 документов), задали набор вопросов и прогнали эксперименты Skald. Конфигурация честная: topK 100 для векторного поиска и 50 после реранкинга — чтобы проверить, справимся ли с ответами, которые требуют собирать контекст из 15+ кусков.
Контрольный прогон в облаке: Voyage для эмбеддингов и реранка + Claude Sonnet 3.7. Результат — блестящий, средний балл ~9.45/10. Затем заменили только LLM: оставили Voyage, но ответчик — GPT‑OSS 20B локально. Средняя оценка ~9.18 — очень близко к фронтирной модели.
Полностью локально с популярным стеком MiniLM: ~7.10. Сильные стороны — скорость и точные «пойнт‑квери» по-английски; слабые — неоднозначные запросы, мультиязычность и агрегация фактов из множества документов. Перешли на мультиязычные bge‑m3 + мульти‑реранкер — уже ~8.63, без провалов и с уверенным португальским, хоть иногда и с лишним контекстом или неполной агрегацией.
Вывод простой: локальный RAG «здесь и сейчас» закрывает массу задач, а кривые качества неуклонно растут. Мы продолжим шлифовать стек, бенчмаркать открытые модели и тестировать техники улучшения агрегации. Нужен air‑gapped? Пишите нам и заглядывайте в наш MIT‑лицензированный GitHub и Slack. Конфиденциальность больше не противопоставлена удобству — она просто включена по умолчанию.
