Какво предстои
Пет часа до края на годината. Четири от тях са работа в клас плюс работа вкъщи, а петият е защита. Проектът тежи 45% от годишната оценка — колкото всичко останало от втория срок, взето заедно.
Задачата е приложение с база от данни и AI компонент. Базата е MySQL или SQLite — каквото сте ползвали в уроци 22–23. AI компонентът минава през Gemini API от Python в Colab или от C#, според това какво екипът владее. Всичко, което сте правили в уроци 19–26 — извикване на модела, JSON изход, „разговор с базата“, обобщаване, семантично търсене, RAG — е строителен материал за проекта. Нищо ново не се учи; сглобява се.
Успешен проект
Работи от край до край, ползва се без автора, границите му са описани честно и всеки от екипа може да обясни всяко решение.
Каква е добрата тема
Най-честата грешка е прекалено голяма тема. Ориентир: ако не можете да опишете входа и изхода в едно изречение, темата е твърде голяма. Добрата тема има четири белега:
- Малка — три до пет таблици и една AI функция, не „система за управление на…“.
- С ясен потребител — можете да кажете кой сяда пред приложението и какво го пита.
- С данни, които може да се съберат или построят — публични, ваши собствени или синтетични (урок 28).
- Без лични данни — никакви истински имена, снимки на хора, оценки на съученици, телефони. Синтетичните заместват всичко това.
| Твърде голямо | Точно колкото трябва |
|---|---|
| Система за управление на училището с AI | Помощник по правилника с отговори и цитирано парче |
| Интелигентен онлайн магазин | Извличане на данни от 30 обяви в таблица и справка по категория |
| AI за библиотеката | „Разговор с базата“ на библиотеката: въпрос на български → SQL → резултат |
| Платформа за анализ на спортисти | Справка за един отбор с графика и абзац текстов анализ |
Каталог от примерни теми
Всяка от темите по-долу е с обхват точно колкото за четири часа в клас плюс работа вкъщи. Колоната „минимум, за да работи“ е долната граница: ако я имате, проектът е защитим; всичко отгоре е плюс. Може и своя тема — по същия шаблон.
| Тема | AI функцията | Минимум, за да работи |
|---|---|---|
| „Разговор с базата“ на училищната библиотека (автори, книги, заемания) | въпрос на български → SQL → резултат; само SELECT | 3 таблици, 30 книги, 5 въпроса дават верен резултат |
| „Разговор с базата“ на малък склад или магазин (стоки, доставки, продажби) | въпрос → SQL с JOIN и GROUP BY | 3 таблици, 50 продажби, 5 верни въпроса |
| Чатбот по правилника на училището или устава на клуб (RAG) | въпрос → най-близки парчета → отговор с посочен източник | 1 документ на 20–40 парчета, 8 от 10 въпроса верни, „не знам“ при въпрос извън документа |
| Помощник по конспекта на един предмет (RAG върху темите) | въпрос → отговор само от конспекта, с номер на темата | 15 теми в базата, 10 тестови въпроса |
| Извличане на данни от обяви (техника, велосипеди, учебници втора ръка) | свободен текст → JSON по схема → INSERT; справка „средна цена по категория“ | 20 обяви, 5 полета, 1 справка с GROUP BY |
| Дневник на тренировки или четене със свободен текст | „днес пробягах 5 км за 28 мин“ → структуриран запис; седмична справка | 1 таблица, 20 записа, 1 справка |
| Класификатор на отзиви за училищния бюфет или за събитие (синтетични) | текст → тон и тема като етикети в базата; справка по етикети | 40 отзива, 2 етикета, 1 справка с GROUP BY |
| Автоматична справка за спортен клуб или отбор | SQL справка → кратък текстов анализ от модела + графика с matplotlib | 2 таблици, 1 справка, 1 графика, 1 абзац анализ |
| Семантично търсене в каталог на рецепти | „нещо бързо без месо“ → вектори → 5 най-близки рецепти | 40 рецепти с вектори, 5 заявки по смисъл |
| Каталог на настолни игри или филми с препоръка по описание | описание → вектори + филтър по SQL (брой играчи, времетраене) | 30 записа, търсене + един SQL филтър |
| Разписание на училищни събития с помощник | „какво има следващата седмица за 10. клас“ → SQL с дати | 1 таблица, 50 събития, 5 верни въпроса |
| Попълване на каталог от снимки на корици или етикети (мултимодален модел) | снимка → заглавие, автор, година като JSON → INSERT | 15 снимки, проверка на ръка на всяко поле |
Екипът и ролите
Работи се в екип от 2–3 души. Всеки има основна роля, но всеки разбира целия проект — на защитата въпросите не се отправят към „отговорника“, а към когото попадне.
| Роля | Отговаря за | Готово в час |
|---|---|---|
| База | схема, скрипт за създаване, данни, основните справки, изгледи | 28 |
| AI компонент | промпт, извикване, проверка на отговора, запис в базата, ключът | 29 |
| Интерфейс, тестове и документация | най-простият ползваем интерфейс, таблица с тестове, документация, декларация | 29–30 |
В екип от двама третата роля се дели. Записвайте от днес кой какво е правил — това е един от шестте критерия и един от разделите на документацията.
Задание, схема и описание на AI функцията
Шаблон на заданието
- Заглавие и едно изречение: „Приложението получава ____ от ____, пази ____ в базата и връща ____ с помощта на модела.“
- Потребител и полза: кой го ползва и какво му спестява.
- Данни: източник, обем, реални или синтетични; лични данни — не (и как е осигурено).
- Схема на базата: таблици, ключове, връзки (ER схемата отдолу).
- AI функция: вход → промпт → извикване → проверка → изход, в четири реда.
- Среда: SQLite или MySQL; Python в Colab или C#.
- Роли: кой за какво отговаря.
- План по часове 28–30 и резервен вариант, ако нещо се провали.
Схема на базата
Три до пет таблици от предметната област, както в модули 3 и 4, плюс една служебна таблица, в която AI функцията записва какво е попитано и какво е върнала. Тя е вашето доказателство на защитата.
Описание на AI функцията
Едно и също за всяка тема — само съдържанието на стъпките се сменя. Напишете го за вашата функция, преди да е написан и ред код.
ВХОД какво подава потребителят (въпрос, обява, снимка)
ПРОМПТ какво добавяте към входа: схема на базата, парчета текст,
JSON схема, правила („само SELECT“, „отговаряй само от текста“)
ИЗВИКВАНЕ модел, температура 0, формат на изхода
ПРОВЕРКА какво проверявате, преди да се доверите: започва ли със SELECT,
валиден ли е JSON-ът, има ли източник, празен ли е отговорът
ИЗХОД какво се записва в базата и какво вижда потребителят;
какво вижда при грешкаОценяване и график
| Критерий | Тежест | Какво се търси |
|---|---|---|
| База и заявки | 25% | смислена схема, реални или добре построени данни, основните справки работят |
| AI компонент | 25% | цялата верига — вход, извикване, проверка на отговора, запис |
| Интерфейс и тестване | 15% | приложението се ползва без автора; изпробвани гранични случаи |
| Документация | 15% | включително ограничения, лични данни и декларация за AI инструментите |
| Защита | 10% | обяснение на решенията и отговори на въпроси |
| Екип | 10% | ясни роли и принос на всеки |
Отрицателният резултат е резултат: опит, който не е подобрил системата, се описва наравно с успешния. Оценява се разбирането, не късметът — проект, който работи на 70% и има точен анализ защо, получава повече от проект, който „работи“ без авторът да може да каже защо.
| Час | Какво е готово в края |
|---|---|
| 27 (днес) | задание, схема на базата, роли; одобрена тема |
| 28 | работеща база с данни и основните заявки |
| 29 | AI функция от край до край и минимален интерфейс |
| 30 | тестове, документация, декларация; репетиция |
| 31 | защита |
Какво трябва да запомниш
- Проектът е приложение с база (MySQL/SQLite) и една AI функция през Gemini API — сглобява се от уроци 19–26.
- Добрата тема е малка, с ясен потребител, с данни, които може да се построят, и без лични данни.
- Екип от 2–3 с роли „база“, „AI компонент“, „интерфейс и документация“; всеки обяснява всичко.
- Заданието описва входа и изхода в едно изречение, схемата и AI функцията в пет стъпки.
- Шест критерия; автоматично сваляне при лични данни, ключ в хранилището или недеклариран инструмент.
- Ако в края на час 28 няма данни в базата — темата се свива веднага.