team-work-ai-denchik111

0
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
README.md

🚀 Проект: Анализ Ресторанов Yelp (FastAPI + Pandas)


👥 Команда и Вклад

Участник / МодельНикРольОсновной Вклад
Спецификатор
denchik111
Создание спецификацииОпределил структуру проекта, требования к функциям и технический стек.
Разработчик
lanzuelo
Основной кодИнтегрировал FastAPI, Pandas, NLTK; обеспечил работу всех API-функций.
Ревьюер
qwpolinn.ssd
Код-ревьюВыполнила финальную проверку кода, обработку исключений и устранение багов.

💻 Обзор Созданного Кода (dev/solution.py)

В папке

dev/
находится основной исполняемый файл
solution.py
, который реализует все требования спецификации с использованием FastAPI для API и Pandas для обработки данных.

Технологический Стек

  • API Framework: FastAPI (для высокопроизводительного, асинхронного API).
  • Обработка данных: Pandas, NumPy.
  • Загрузка данных: KaggleHub (для доступа к набору данных
    farukalam/yelp-restaurant-reviews
    ).
  • Анализ тональности: NLTK (VADER Lexicon).
  • Визуализация: Matplotlib/Seaborn (для генерации графиков).
  • Запуск сервера: Uvicorn.

Ключевые Функции API

Код реализует три обязательные конечные точки для аналитики:

  1. /api/top_restaurants

    • Функция:
      get_top_restaurants(cuisine, location, min_reviews)
    • Описание: Возвращает до 10 ресторанов, отсортированных по среднему рейтингу и количеству отзывов, с учетом фильтрации по кухне, местоположению и минимальному количеству отзывов.
    • Особенность: Поскольку оригинальный датасет не содержит столбцов
      Cuisine
      и
      Location
      , код выполняет их имитацию/извлечение из поля
      Yelp URL
      и имени ресторана.
  2. /api/cuisine_stats

    • Функция:
      get_cuisine_statistics(location)
    • Описание: Рассчитывает средний рейтинг для каждой категории кухни в заданном городе.
    • Особенность: Поддерживает два формата ответа: JSON (данные) и PNG Image (график, сгенерированный Matplotlib/Seaborn).
  3. /api/sentiment_summary

    • Функция:
      get_review_sentiment_summary(restaurant_name)
    • Описание: Проводит простой анализ тональности (sentiment analysis) с использованием VADER Lexicon для отзывов, связанных с указанным рестораном, и возвращает сводку (составной, положительный, нейтральный, отрицательный баллы).

💡 Процесс Выполнения Работы

Работа над проектом проходила в строгом соответствии с процессом: Спецификация → Разработка → Ревью.

1. Создание Файла Спецификации (
denchik111
)

  • Этап: Формализация требований, результатом чего стал файл в папке
    spec/codex.md
    .

2. Генерация и Отладка Кода (
lanzuelo
, GigaCode, Gemini 3)

  • Генерация: На основе спецификации, модель GigaCode предоставила первоначальный каркас кода.
  • Отладка и Адаптация: Участник
    lanzuelo
    и модель Gemini 3 совместно решили ключевые технические проблемы, включая:
    • Переход с Django REST API на FastAPI.
    • Устойчивое устранение ошибок NLTK LookupError/DownloadError.
    • Исправление логики загрузки данных KaggleHub для работы с уже распакованными CSV-файлами.
    • Финальная настройка команды запуска Uvicorn (
      "solution:app"
      ).

3. Код-ревью и Финализация (
qwpolinn.ssd
)

  • Ревью: Участник
    qwpolinn.ssd
    выполнил критический анализ кода, подтвердив его соответствие спецификации, работоспособность и корректную обработку граничных случаев.

🗂️ Структура Репозитория

Папка/ФайлСодержимоеКомментарий
.gitverse
Файлы для CI/CD и автотестовИспользуется для автоматизации процессов репозитория.
demo
Скриншоты работы программыВизуальные доказательства успешного запуска и работы API.
dev
Основной кодФайл
solution.py
с полной реализацией проекта.
spec
СпецификацииФайл
spec/codex.md
с техническими требованиями.
tasks
Файлы задачМожет содержать исходные формулировки заданий или документацию.
CONTRIBUTING.md
Правила внесения вклада
README.md
Описание проекта (текущий файл)