Files
mp-answer-bot/WINDOWS_SETUP.md
T

14 KiB
Raw Blame History

Запуск проекта PrimeKraft на Windows (с нуля)

Проект — Telegram-бот для работы с отзывами Ozon/Wildberries, GPT-анализом и Google Таблицами. Изначально настроен под Linux, но на Windows запускается без изменений кода.

Ниже шаги для компьютера, где ничего не установлено (ни Python, ни что-то ещё).


Какие данные куда записать

1. Файл .env (в корне проекта)

Создайте файл .env в папке с проектом (рядом с pyproject.toml) и заполните переменные без кавычек, по одной в строке:

Переменная Что подставить Обязательно
BOT_TOKEN Токен бота от @BotFather Да
TG_CHAT_ID ID чата (число, например -1003569236790) — куда слать отзывы Да
GOOD_REVIEWS_THREAD_ID ID топика для положительных отзывов (число) Да
BAD_REVIEWS_THREAD_ID ID топика для отрицательных отзывов (число) Да
EMPTY_LOW_RATING_THREAD_ID ID топика для отзывов без текста 1–3 ★ (или не указывать) Нет
EMPTY_HIGH_RATING_THREAD_ID ID топика для отзывов без текста 4–5 ★ (или не указывать) Нет
NEGATIVE_RATING Порог «плохого» отзыва: оценка ≤ этого числа = плохой (по умолчанию 3) Нет
REVIEWS_SHEET_LINK Полная ссылка на Google-таблицу, куда пишутся отзывы Да (если нужна таблица)
PRODUCTS_WB_SHEET_LINK Ссылка на таблицу с товарами WB (артикулы и т.д.) Для WB
PRODUCTS_OZON_SHEET_LINK Ссылка на таблицу с товарами Ozon (Ozon ID и т.д.) Для Ozon
OZON_API_KEY API-ключ личного кабинета Ozon Для Ozon
OZON_CLIENT_ID Client-Id личного кабинета Ozon Для Ozon
WB_API_KEY Токен API Wildberries (кабинет продавца) Для WB
GPTUNNEL_API_KEY Ключ для GPTunnel (генерация ответов и анализ) Для GPT-функций
OZON_CHECK_INTERVAL Интервал проверки Ozon в секундах (по умолчанию 60) Нет
WB_CHECK_INTERVAL Интервал проверки WB в секундах (по умолчанию 300) Нет

Как узнать ID чата и топика: добавьте бота @userinfobot в чат — он покажет ID. ID топика в ссылке на обсуждение: https://t.me/c/1234567890/5 → топик = 5.

Сохраните .env в кодировке UTF-8.


Таблица, в которую бот дописывает строки с отзывами. В первой строке задайте заголовки ровно в таком порядке (12 столбцов):

Заголовок столбца
1 Дата
2 Площадка
3 Название товара
4 Категория
5 Подкатегория
6 ID товара
7 Оценка
8 Текст отзыва
9 Тональность
10 Причина
11 Критичность
12 Тэги

Бот сам заполняет данные; новые строки добавляются вниз. Доступ к таблице должен быть у сервисного аккаунта (см. ниже).


3. Google Sheets — ключ key.json

Чтобы бот мог читать и писать таблицы:

  1. Создайте проект в Google Cloud Console.
  2. Включите Google Sheets API.
  3. Создайте сервисный аккаунт, скачайте JSON-ключ.
  4. Положите файл в проект: google-auth/key.json (папка google-auth в корне проекта).
  5. В каждой нужной Google-таблице нажмите «Настройки доступа» и дайте доступ на редактирование email’у сервисного аккаунта (из key.json, поле client_email).

Шаг 1. Установить Python 3.12

  1. Откройте в браузере: https://www.python.org/downloads/
  2. Скачайте Python 3.12.x (кнопка "Download Python 3.12.x").
  3. Запустите установщик.
  4. Важно: в первом окне включите галочку "Add python.exe to PATH".
  5. Нажмите "Install Now" и дождитесь окончания установки.
  6. Закройте и заново откройте PowerShell или CMD, чтобы подхватился PATH.

Проверка в терминале:

python --version

Должно быть что-то вроде: Python 3.12.x.


Шаг 2. Установить менеджер зависимостей uv (рекомендуется)

В проекте используется uv (как на Linux). Его можно поставить одной командой.

В PowerShell выполните:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

После установки закройте и снова откройте терминал, затем проверьте:

uv --version

Если по какой-то причине uv ставить не хотите, можно обойтись только pip (см. альтернативу в конце).


Шаг 3. Перейти в папку проекта и установить зависимости

Откройте PowerShell (или CMD) и перейдите в каталог проекта, например:

cd C:\Users\a.shestakov\Desktop\primekraftProd

Установите зависимости и создайте виртуальное окружение одной командой:

uv sync

Эта команда по файлам pyproject.toml и uv.lock создаст виртуальное окружение (например, .venv) и установит все пакеты. На Windows всё то же самое, что и на Linux.


Шаг 4. Файл с переменными окружения (.env)

Приложение читает настройки из файла .env в корне проекта (рядом с pyproject.toml).

  1. В папке primekraftProd создайте файл с именем .env (точка в начале).
  2. Откройте его любым редактором и заполните переменные. Минимум для запуска бота:
BOT_TOKEN=ваш_токен_от_BotFather
TG_CHAT_ID=ид_вашего_чата_в_Telegram
GOOD_REVIEWS_THREAD_ID=ид_топика_хороших_отзывов
BAD_REVIEWS_THREAD_ID=ид_топика_плохих_отзывов

Остальные переменные из app/config.py (Ozon, WB, GPT, таблицы) можно добавить позже или оставить пустыми по умолчанию. Пример полного набора:

BOT_TOKEN=...
TG_CHAT_ID=...
GOOD_REVIEWS_THREAD_ID=...
BAD_REVIEWS_THREAD_ID=...
# Топики для отзывов без текста (только оценка): 1–3 и 4–5 звёзд (необязательно; если не заданы, используются топики плохих/хороших)
EMPTY_LOW_RATING_THREAD_ID=...
EMPTY_HIGH_RATING_THREAD_ID=...
NEGATIVE_RATING=3

REVIEWS_SHEET_LINK=...
PRODUCTS_WB_SHEET_LINK=...
PRODUCTS_OZON_SHEET_LINK=...

OZON_API_KEY=...
OZON_CLIENT_ID=...
WB_API_KEY=...
GPTUNNEL_API_KEY=...

OZON_CHECK_INTERVAL=60
WB_CHECK_INTERVAL=300

Сохраните файл в кодировке UTF-8.


Шаг 5. Google Таблицы (key.json)

Для работы с Google Таблицами нужен сервисный аккаунт.

  1. В корне проекта должна быть папка google-auth и в ней файл key.json (ключ сервисного аккаунта из Google Cloud).
  2. Если у вас уже есть key.json с Linux-сервера — просто скопируйте его в primekraftProd\google-auth\key.json.
  3. Если ключа нет — создайте проект в Google Cloud, включите Google Sheets API и создайте сервисный аккаунт, затем скачайте JSON-ключ и положите его в google-auth\key.json.

Путь в коде задан как google-auth/key.json — на Windows такой относительный путь тоже работает, если запуск идёт из корня проекта.


Шаг 6. Запуск бота

Обязательно запускайте из корня проекта (там, где лежат pyproject.toml и .env):

cd C:\Users\a.shestakov\Desktop\primekraftProd
uv run python -m app

Либо, если сначала активируете виртуальное окружение:

.\.venv\Scripts\Activate.ps1
python -m app

В консоли должны появиться логи; бот начнёт опрос Telegram и фоновые проверки Ozon/WB по таймерам.

Остановка: Ctrl+C в том же окне терминала.


Краткая шпаргалка (если уже всё установлено)

cd C:\Users\a.shestakov\Desktop\primekraftProd
uv sync
# Проверить .env и google-auth/key.json
uv run python -m app

Если не хотите использовать uv

  1. Установите Python 3.12 (шаг 1).
  2. В папке проекта создайте виртуальное окружение и установите зависимости:
cd C:\Users\a.shestakov\Desktop\primekraftProd
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .
  1. Создайте и заполните .env, положите key.json в google-auth\ (шаги 45).
  2. Запуск:
python -m app

Возможные проблемы на Windows

  • "python не найден" — при установке Python не была отмечена опция "Add to PATH". Переустановите Python с этой галочкой или добавьте путь к python.exe в PATH вручную.
  • Ошибки при uv sync — убедитесь, что открыт именно PowerShell/CMD и вы в папке primekraftProd (проверьте: dir pyproject.toml или ls pyproject.toml).
  • Ошибка про .env или BOT_TOKEN — файл .env должен быть в корне проекта и переменные записаны без кавычек: BOT_TOKEN=123:ABC....
  • Google Sheets / key.json — если не используете таблицы, часть функций бота будет падать при обращении к ним; для минимального запуска достаточно BOT_TOKEN и TG_CHAT_ID (и при необходимости топиков).

После выполнения этих шагов проект на Windows запускается так же, как на Linux: те же зависимости, та же точка входа python -m app.


Как запустить на Windows (кратко)

  1. Проверьте, что заполнено:

    • Файл .env в корне проекта (минимум: BOT_TOKEN, TG_CHAT_ID, GOOD_REVIEWS_THREAD_ID, BAD_REVIEWS_THREAD_ID; для таблицы — REVIEWS_SHEET_LINK; для Ozon/WB — ключи и ссылки на таблицы товаров).
    • Файл google-auth/key.json — ключ сервисного аккаунта Google (если используете таблицы).
    • В таблице отзывов первая строка — заголовки (Дата, Площадка, … Тэги).
  2. Откройте PowerShell (или CMD) и перейдите в папку проекта:

    cd "C:\Users\a.shestakov\Downloads\бот телеграм прайм\бот телеграм прайм\primekraftProd_02_02_2026_23_30\primekraftProd"
    

    (или ваш путь к папке primekraftProd; если в пути есть пробелы — возьмите путь в кавычки.)

  3. Установите зависимости (если ещё не ставили):

    uv sync
    
  4. Запустите бота:

    uv run python -m app
    
  5. В консоли появятся логи; бот начнёт опрос Telegram и проверки Ozon/WB. Остановка — Ctrl+C.