RAG без хайпа
Retrieval-augmented generation, который можно эксплуатировать — чанкинг, оценки и реальные failure modes.
Демо RAG выглядит магией. Прод — это контракты данных, eval-харнесс и скучный мониторинг.
Чанкинг — продуктовое решение
Размер чанка нельзя скопировать из чужого поста. Он зависит от:
- структуры документов
- UX цитирования (человек может проверить сниппет?)
- бюджета latency на retrieval + generation
Простая релевантность
Для эмбеддингов запроса и чанка :
Сортируем по и режем порогом, чтобы модель не фантазировала на шуме.
Минимальный цикл
async function answer(query: string) {
const hits = await vector.search(query, { k: 8 });
const context = hits
.filter((h) => h.score > 0.72)
.map((h) => h.text)
.join("\n---\n");
return llm.chat([
{ role: "system", content: "Цитируй только контекст. Если данных нет — так и скажи." },
{ role: "user", content: `Контекст:\n${context}\n\nВопрос: ${query}` },
]);
}Eval раньше полировки
| Метрика | Что ловит |
|---|---|
| Groundedness | Галлюцинации |
| Recall@k | Плохой чанкинг / дрейф индекса |
| Latency p95 | Регрессии инфраструктуры |
Итог
Сначала цикл оценки. Красивые агенты могут подождать.