|
|
--- |
|
|
title: AI Examiner Agent |
|
|
emoji: 📝 |
|
|
colorFrom: blue |
|
|
colorTo: green |
|
|
sdk: gradio |
|
|
sdk_version: "4.0.0" |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
--- |
|
|
|
|
|
# AI Examiner Agent |
|
|
|
|
|
Міні-екзаменатор (LLM-агент з tools): питає ім’я та email, обирає 2–3 теми, веде короткий діалог по темах, виставляє оцінку (0..10) та зберігає історію іспиту у файли. |
|
|
|
|
|
## Функціонал |
|
|
|
|
|
- Збір **name + email** |
|
|
- Tool `start_exam(email, name) -> list[str]`: |
|
|
- перевіряє, чи є студент у `data/students.json` |
|
|
- обирає 2–3 теми з `data/topics.json` |
|
|
- створює сесію у `data/sessions.json` |
|
|
- Tool `get_next_topic() -> str`: |
|
|
- повертає наступну тему з черги сесії |
|
|
- Tool `end_exam(email, score, history)`: |
|
|
- зберігає результат у `data/results.json` |
|
|
- `history` зберігається у форматі `{role, content, datetime}` |
|
|
|
|
|
## Структура проєкту |
|
|
|
|
|
```text |
|
|
. |
|
|
├── app.py |
|
|
├── agent.py |
|
|
├── llm.py |
|
|
├── tools.py |
|
|
├── requirements.txt |
|
|
└── data |
|
|
├── students.json |
|
|
├── topics.json |
|
|
├── sessions.json |
|
|
└── results.json |
|
|
``` |
|
|
|