ChefBot — AI-асистент для домашнього кухаря. Він знаходить рецепти з локальної структурованої бази, конвертує підтримувані кулінарні одиниці та підбирає перевірені заміни інгредієнтів.
- шукати рецепт за назвою, продуктами, категорією або вимогою без глютену;
- конвертувати підтримувані склянки та ложки у грами або мілілітри й назад;
- знаходити локально збережені заміни інгредієнтів;
- зберігати контекст короткої розмови й застосовувати підтверджені зміни до актуального рецепта;
- показувати фактичний tool routing, latency, токени та орієнтовну вартість.
ChefBot не вигадує точні дані, яких немає в tools, не гарантує безпечність при серйозних алергіях і не є медичним або дієтологічним сервісом.
Colab ───────┐
├─> ChefBot agent ─> recipe_search ────────┐
Streamlit ───┘ ├> unit_converter ├─> data/*.json
├> substitution_finder ─┘
└> recipe_editor ─> current recipe state
│
└─> tool events + usage → evaluation/results.csv
Colab і Streamlit імпортують ті самі Python-модулі. База рецептів, tools і system prompt не дублюються у frontend або notebook.
- Відкрийте notebook кнопкою Open in Colab.
- У Colab відкрийте Secrets і додайте
OPENAI_API_KEY. - Запустіть Runtime → Run all.
Notebook сам клонує публічний репозиторій, встановлює залежності, запускає
детерміновані тести, ключові сценарії та повний evaluation. Наприкінці він
показує таблицю результатів; щоб зберегти CSV, виконайте download_results().
git clone https://github.com/delef/o-ai.git
cd o-ai
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export OPENAI_API_KEY="your-key"
streamlit run app.pyЗамість змінної середовища локально можна створити .streamlit/secrets.toml:
OPENAI_API_KEY = "your-key"Файл secrets і .env виключені з Git.
pip install -r requirements-dev.txt
python -m pytest -qpython -m chefbot.evaluation --output evaluation/results.csvEvaluation перевіряє не лише текст відповіді, а й фактичні виклики tools,
статус grounded-результату, контекст, boundary cases, latency, токени та
орієнтовну вартість. Конфігурація ціни gpt-4o-mini має дату та посилання на
офіційну сторінку моделі.
Поточна база невелика і структурована. Детермінований lookup дешевший, швидший і легше перевіряється. Vector database або кілька агентів додали б latency та нові точки відмови без доведеного покращення основного сценарію.