Решенията, които се вземат сега
| Решение | Скъпо ли е да се промени после | Защо |
|---|---|---|
| Схема на базата | средно | миграции и повторно зареждане |
| Модел за вектори | скъпо | цялата колекция се преизчислява |
| Размер на парчетата | средно | повторно нарязване и векторизиране |
| Разделяне на слоеве | скъпо, ако не е направено | кодът се преплита |
| Име на промпта и версия | евтино | стига да е предвидено от началото |
| Доставчик на модела | евтино при добри слоеве | иначе засяга целия проект |
Схемата
Три групи таблици: вашите данни от предметната област, данните за търсенето и данните за работата на AI функцията.
-- 1. предметна област (вашата тема)
dokumenti(id, zaglavie, vid, v_sila, sazdaden_na, nivo_dostap)
-- 2. търсене
parcheta(id, dokument_id, poredno, tekst, model, vektor, izchisleno_na)
-- 3. работа на функцията
razgovori(id, potrebitel_id, zaglavie, zapochnat_na)
sabshtenia(id, razgovor_id, rolya, tekst, model, versia_prompt,
tokeni_vhod, tokeni_izhod, ms, ocenka, sazdadeno_na)
sabshtenie_iztochnici(sabshtenie_id, parche_id, blizost)- Външни ключове и каскадно изтриване — иначе остават сираци.
- Индекси по това, по което ще търсите (потребител, дата, документ).
- Полета за версии още от началото — добавянето им после изисква миграция.
- Ниво на достъп, дори ако засега всички са равни.
Слоевете
interface (уеб или C# форма)
→ услуга (сглобява промпта, вика модела, проверява отговора)
→ клиент на модела (HTTP, ключ, таймаут, повторни опити)
→ хранилище (търсене, запис, права)
→ базаПроверка за качеството на разделянето
- Може ли услугата да се тества с фалшив модел?
- Ако сменя доставчика, колко файла се променят?
- Има ли SQL в интерфейса? (Ако да — размесени слоеве.)
- Има ли промпт, зашит насред логиката?
Диаграми за документацията
- ER диаграма на базата — както в модул 3.
- Диаграма на компонентите: четирите слоя и външната услуга.
- Последователност за един въпрос: кой кого вика и в какъв ред.
Диаграмата е инструмент, не украса
Нарисувайте я сега — половината пропуснати решения се виждат при рисуването, а не при писането на код.