276 lines
14 KiB
Markdown
276 lines
14 KiB
Markdown
# Запуск проекта PrimeKraft на Windows (с нуля)
|
||
|
||
Проект — Telegram-бот для работы с отзывами Ozon/Wildberries, GPT-анализом и Google Таблицами. Изначально настроен под Linux, но на Windows запускается без изменений кода.
|
||
|
||
Ниже шаги для компьютера, где **ничего не установлено** (ни Python, ни что-то ещё).
|
||
|
||
---
|
||
|
||
## Какие данные куда записать
|
||
|
||
### 1. Файл `.env` (в корне проекта)
|
||
|
||
Создайте файл **`.env`** в папке с проектом (рядом с `pyproject.toml`) и заполните переменные **без кавычек**, по одной в строке:
|
||
|
||
| Переменная | Что подставить | Обязательно |
|
||
|------------|----------------|-------------|
|
||
| `BOT_TOKEN` | Токен бота от [@BotFather](https://t.me/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](https://t.me/userinfobot) в чат — он покажет ID. ID топика в ссылке на обсуждение: `https://t.me/c/1234567890/5` → топик = **5**.
|
||
|
||
Сохраните `.env` в кодировке **UTF-8**.
|
||
|
||
---
|
||
|
||
### 2. Google-таблица отзывов (REVIEWS_SHEET_LINK)
|
||
|
||
Таблица, в которую бот дописывает строки с отзывами. В **первой строке** задайте заголовки ровно в таком порядке (12 столбцов):
|
||
|
||
| № | Заголовок столбца |
|
||
|---|--------------------|
|
||
| 1 | Дата |
|
||
| 2 | Площадка |
|
||
| 3 | Название товара |
|
||
| 4 | Категория |
|
||
| 5 | Подкатегория |
|
||
| 6 | ID товара |
|
||
| 7 | Оценка |
|
||
| 8 | Текст отзыва |
|
||
| 9 | Тональность |
|
||
| 10 | Причина |
|
||
| 11 | Критичность |
|
||
| 12 | Тэги |
|
||
|
||
Бот сам заполняет данные; новые строки добавляются вниз. Доступ к таблице должен быть у сервисного аккаунта (см. ниже).
|
||
|
||
---
|
||
|
||
### 3. Google Sheets — ключ `key.json`
|
||
|
||
Чтобы бот мог читать и писать таблицы:
|
||
|
||
1. Создайте проект в [Google Cloud Console](https://console.cloud.google.com/).
|
||
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.
|
||
|
||
Проверка в терминале:
|
||
|
||
```powershell
|
||
python --version
|
||
```
|
||
|
||
Должно быть что-то вроде: `Python 3.12.x`.
|
||
|
||
---
|
||
|
||
## Шаг 2. Установить менеджер зависимостей uv (рекомендуется)
|
||
|
||
В проекте используется **uv** (как на Linux). Его можно поставить одной командой.
|
||
|
||
В **PowerShell** выполните:
|
||
|
||
```powershell
|
||
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
||
```
|
||
|
||
После установки закройте и снова откройте терминал, затем проверьте:
|
||
|
||
```powershell
|
||
uv --version
|
||
```
|
||
|
||
Если по какой-то причине uv ставить не хотите, можно обойтись только pip (см. альтернативу в конце).
|
||
|
||
---
|
||
|
||
## Шаг 3. Перейти в папку проекта и установить зависимости
|
||
|
||
Откройте PowerShell (или CMD) и перейдите в каталог проекта, например:
|
||
|
||
```powershell
|
||
cd C:\Users\a.shestakov\Desktop\primekraftProd
|
||
```
|
||
|
||
Установите зависимости и создайте виртуальное окружение одной командой:
|
||
|
||
```powershell
|
||
uv sync
|
||
```
|
||
|
||
Эта команда по файлам `pyproject.toml` и `uv.lock` создаст виртуальное окружение (например, `.venv`) и установит все пакеты. На Windows всё то же самое, что и на Linux.
|
||
|
||
---
|
||
|
||
## Шаг 4. Файл с переменными окружения (.env)
|
||
|
||
Приложение читает настройки из файла **`.env`** в **корне проекта** (рядом с `pyproject.toml`).
|
||
|
||
1. В папке `primekraftProd` создайте файл с именем **`.env`** (точка в начале).
|
||
2. Откройте его любым редактором и заполните переменные. Минимум для запуска бота:
|
||
|
||
```env
|
||
BOT_TOKEN=ваш_токен_от_BotFather
|
||
TG_CHAT_ID=ид_вашего_чата_в_Telegram
|
||
GOOD_REVIEWS_THREAD_ID=ид_топика_хороших_отзывов
|
||
BAD_REVIEWS_THREAD_ID=ид_топика_плохих_отзывов
|
||
```
|
||
|
||
Остальные переменные из `app/config.py` (Ozon, WB, GPT, таблицы) можно добавить позже или оставить пустыми по умолчанию. Пример полного набора:
|
||
|
||
```env
|
||
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`):
|
||
|
||
```powershell
|
||
cd C:\Users\a.shestakov\Desktop\primekraftProd
|
||
uv run python -m app
|
||
```
|
||
|
||
Либо, если сначала активируете виртуальное окружение:
|
||
|
||
```powershell
|
||
.\.venv\Scripts\Activate.ps1
|
||
python -m app
|
||
```
|
||
|
||
В консоли должны появиться логи; бот начнёт опрос Telegram и фоновые проверки Ozon/WB по таймерам.
|
||
|
||
Остановка: **Ctrl+C** в том же окне терминала.
|
||
|
||
---
|
||
|
||
## Краткая шпаргалка (если уже всё установлено)
|
||
|
||
```powershell
|
||
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. В папке проекта создайте виртуальное окружение и установите зависимости:
|
||
|
||
```powershell
|
||
cd C:\Users\a.shestakov\Desktop\primekraftProd
|
||
python -m venv .venv
|
||
.\.venv\Scripts\Activate.ps1
|
||
pip install -e .
|
||
```
|
||
|
||
3. Создайте и заполните `.env`, положите `key.json` в `google-auth\` (шаги 4–5).
|
||
4. Запуск:
|
||
|
||
```powershell
|
||
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) и перейдите в папку проекта:
|
||
```powershell
|
||
cd "C:\Users\a.shestakov\Downloads\бот телеграм прайм\бот телеграм прайм\primekraftProd_02_02_2026_23_30\primekraftProd"
|
||
```
|
||
(или ваш путь к папке `primekraftProd`; если в пути есть пробелы — возьмите путь в кавычки.)
|
||
|
||
3. **Установите зависимости** (если ещё не ставили):
|
||
```powershell
|
||
uv sync
|
||
```
|
||
|
||
4. **Запустите бота:**
|
||
```powershell
|
||
uv run python -m app
|
||
```
|
||
|
||
5. В консоли появятся логи; бот начнёт опрос Telegram и проверки Ozon/WB. Остановка — **Ctrl+C**.
|