team-work-ai-denchik111
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
README.md
🚀 Проект: Анализ Ресторанов Yelp (FastAPI + Pandas)
👥 Команда и Вклад
| Участник / Модель | Ник | Роль | Основной Вклад |
|---|---|---|---|
| Спецификатор | | Создание спецификации | Определил структуру проекта, требования к функциям и технический стек. |
| Разработчик | | Основной код | Интегрировал FastAPI, Pandas, NLTK; обеспечил работу всех API-функций. |
| Ревьюер | | Код-ревью | Выполнила финальную проверку кода, обработку исключений и устранение багов. |
💻 Обзор Созданного Кода (dev/solution.py)
В папке находится основной исполняемый файл dev/, который реализует все требования спецификации с использованием FastAPI для API и Pandas для обработки данных.solution.py
Технологический Стек
- API Framework: FastAPI (для высокопроизводительного, асинхронного API).
- Обработка данных: Pandas, NumPy.
- Загрузка данных: KaggleHub (для доступа к набору данных
).farukalam/yelp-restaurant-reviews - Анализ тональности: NLTK (VADER Lexicon).
- Визуализация: Matplotlib/Seaborn (для генерации графиков).
- Запуск сервера: Uvicorn.
Ключевые Функции API
Код реализует три обязательные конечные точки для аналитики:
-
/api/top_restaurants
- Функция: get_top_restaurants(cuisine, location, min_reviews)
- Описание: Возвращает до 10 ресторанов, отсортированных по среднему рейтингу и количеству отзывов, с учетом фильтрации по кухне, местоположению и минимальному количеству отзывов.
- Особенность: Поскольку оригинальный датасет не содержит столбцов
иCuisine, код выполняет их имитацию/извлечение из поляLocationи имени ресторана.Yelp URL
- Функция:
-
/api/cuisine_stats
- Функция: get_cuisine_statistics(location)
- Описание: Рассчитывает средний рейтинг для каждой категории кухни в заданном городе.
- Особенность: Поддерживает два формата ответа: JSON (данные) и PNG Image (график, сгенерированный Matplotlib/Seaborn).
- Функция:
-
/api/sentiment_summary
- Функция: get_review_sentiment_summary(restaurant_name)
- Описание: Проводит простой анализ тональности (sentiment analysis) с использованием VADER Lexicon для отзывов, связанных с указанным рестораном, и возвращает сводку (составной, положительный, нейтральный, отрицательный баллы).
- Функция:
💡 Процесс Выполнения Работы
Работа над проектом проходила в строгом соответствии с процессом: Спецификация → Разработка → Ревью.
1. Создание Файла Спецификации (denchik111)
denchik111
- Этап: Формализация требований, результатом чего стал файл в папке
.spec/codex.md
2. Генерация и Отладка Кода (lanzuelo, GigaCode, Gemini 3)
lanzuelo
- Генерация: На основе спецификации, модель GigaCode предоставила первоначальный каркас кода.
- Отладка и Адаптация: Участник
и модель Gemini 3 совместно решили ключевые технические проблемы, включая:lanzuelo- Переход с Django REST API на FastAPI.
- Устойчивое устранение ошибок NLTK LookupError/DownloadError.
- Исправление логики загрузки данных KaggleHub для работы с уже распакованными CSV-файлами.
- Финальная настройка команды запуска Uvicorn (
)."solution:app"
3. Код-ревью и Финализация (qwpolinn.ssd)
qwpolinn.ssd
- Ревью: Участник
выполнил критический анализ кода, подтвердив его соответствие спецификации, работоспособность и корректную обработку граничных случаев.qwpolinn.ssd
🗂️ Структура Репозитория
| Папка/Файл | Содержимое | Комментарий |
|---|---|---|
| Файлы для CI/CD и автотестов | Используется для автоматизации процессов репозитория. |
| Скриншоты работы программы | Визуальные доказательства успешного запуска и работы API. |
| Основной код | Файл с полной реализацией проекта. |
| Спецификации | Файл с техническими требованиями. |
| Файлы задач | Может содержать исходные формулировки заданий или документацию. |
| Правила внесения вклада | |
| Описание проекта (текущий файл) |