Два вида въпроси, два различни пътя
В 11. клас RAG отговаряше по текстови документи. В реална система въпросите са смесени: едни искат текст („какво пише в правилника за…“), други искат сметка („колко поръчки има този клиент“).
Класическа грешка
Да се качат числовите данни като текст в парчетата и после да се очаква моделът да ги сумира. Работи за пет реда и се проваля за петстотин — а грешката е невидима, защото отговорът звучи уверено.
Пътят на текстовите въпроси
Точно веригата от урок 26 в 11. клас, но с базата от урок 9 тук: хибридно търсене, филтър по действащи документи, вмъкване на намереното в промпта, отговор с цитат.
- Заявката се превръща във вектор.
- Хибридно търсене връща 20 кандидата.
- Филтър: само действащи документи, само разрешени за този потребител.
- Пренареждане и избор на първите 3–5.
- Промпт с текста и изричното указание да не се излиза извън него.
- Отговор с посочен източник и връзка към документа.
Пътят на числовите въпроси
Заявка, генерирана от модела
Моделът получава схемата на базата и въпроса и връща SELECT. Приложението го изпълнява и подава резултата обратно за формулиране на отговора.
Текст към SQL (text-to-SQL)
Превръщане на въпрос на естествен език в заявка към базата.
Задължителните предпазни мерки
- Само за четене: отделен потребител на базата с права само SELECT.
- Само върху изгледи, не върху сурови таблици — така се скриват и лични колони.
- Проверка на генерираната заявка: забранени ключови думи, задължителен LIMIT.
- Таймаут — генерирана заявка може да е много скъпа.
- Показвайте заявката на потребителя. Прозрачността е и защита, и полза.
Правилото
Генерираният SQL е вход от чужд източник. Отнасяйте се към него както към данни от уеб формуляр — с валидиране и с минимални права.
По-безопасната алтернатива
Вместо свободен SQL — готови параметризирани заявки. Моделът избира коя от няколко предварително написани справки да се изпълни и с какви параметри. Губи се гъвкавост, печели се предвидимост. За училищен проект това често е по-добрият избор.
Насочването
Кой път да поеме въпросът решава отделна стъпка — най-често самият модел, с кратък промпт за класификация, или инструменти (урок 29 от 11. клас): единият инструмент търси в документи, другият изпълнява справка.
- Класификация: по-просто и по-евтино, но с грешки при смесени въпроси.
- Инструменти: моделът сам решава кое да извика и може да ги съчетае.
- Винаги предвиждайте трети изход: „това не мога да го отговоря“.
Правата на потребителя
Най-опасната дупка
Ако търсенето обхожда всички парчета, потребител може да получи откъс от документ, до който няма достъп. Филтърът по права влиза в самата заявка, а не в промпта — на модела не се разчита да пази тайни.