Skip to content

QurusX/OrderAssistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 OrderAssistant Bot

Интеллектуальный Telegram-ассистент для автоматизации учета заказов в Google Таблицах.

Бот позволяет превращать неструктурированные текстовые или голосовые сообщения в четкие записи в таблице, используя мощь нейросетей OpenAI. Больше не нужно заполнять ячейки вручную — просто скажите боту детали заказа.


✨ Основные возможности

  • 🤖 AI-парсинг (GPT-4.1-nano): Извлекает дату, время, адрес, имя клиента и суть проблемы из любого свободного описания.
  • 🎙 Голосовой ввод: Поддержка распознавания речи через Whisper API.
  • 🔄 Живой интерфейс: Сообщения об обработке автоматически редактируются в карточки заказов с кнопками подтверждения.
  • 📝 Умное редактирование: Изменяйте существующие заказы по их номеру, просто написав «измени время на 18:00».
  • 📊 Синхронизация с Google Sheets: Мгновенная запись данных в облачную таблицу.
  • 💾 Надежное хранение: Состояние пользователя и контекст заказов сохраняются в PostgreSQL.

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


🚀 Быстрый старт (Локальный запуск)

1. Подготовка окружения

Убедитесь, что у вас установлен Python 3.11 или выше.

# Клонирование репозитория
git clone https://github.com/QurusX/OrderAssistant.git
cd OrderAssistant

# Создание и активация виртуального окружения
python -m venv .venv
source .venv/bin/activate  # Для Linux/Mac
.venv\Scripts\activate     # Для Windows

# Установка зависимостей
pip install -r requirements.txt

2. Настройка базы данных (Docker)

Самый простой способ запустить базу данных — использовать Docker. Мы используем порт 5433, чтобы не конфликтовать с другими проектами.

docker run -d \
  --name postgres-orderassistant \
  -p 5433:5432 \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=orderassistant \
  postgres:15

3. Конфигурация переменных (.env)

Создайте файл .env в корне проекта и заполните его:

# Telegram
TELEGRAM_BOT_TOKEN=your_bot_token_from_botfather

# База данных (порт 5433 для локального Docker)
POSTGRES_DSN=postgresql://postgres:postgres@localhost:5433/orderassistant

# Google Sheets
GSHEETS_DOC_ID=1x7MTA5y7bRRNS2jb2Y9WoxNVozgk9nu9RmQc8YVSqDA
# Весь JSON сервисного аккаунта одной строкой или путь к файлу
GSHEETS_CREDENTIALS_JSON={"type": "service_account", ...}

# OpenAI (Официальный API)
OPENAI_API_KEY=sk-proj-your_official_key

4. Настройка Google Sheets

  1. Создайте сервисный аккаунт в Google Cloud Console.
  2. Скачайте JSON-ключ и добавьте его в .env.
  3. Скопируйте client_email из этого JSON.
  4. Откройте вашу Google Таблицу и нажмите Поделиться (Share).
  5. Добавьте email сервисного аккаунта с правами Редактор.

🎮 Использование

Запустите бота в режиме опроса (polling):

python run_local.py

Доступные команды:

  • /start или /menu — Показать приветствие и инструкцию.
  • /add_order — Начать добавление нового заказа (пришлите текст или голос).
  • /edit_order — Редактировать существующий заказ (бот попросит номер заказа).

📂 Структура проекта

OrderAssistant/
├── app/
│   ├── bot/
│   │   ├── handlers.py      # Логика обработки команд и сообщений
│   │   ├── keyboards.py     # Инлайн-клавиатуры
│   │   └── texts.py         # Все тексты и шаблоны сообщений
│   ├── services/
│   │   ├── llm_service.py   # Работа с OpenAI Responses API
│   │   ├── stt_service.py   # Распознавание голоса (Whisper)
│   │   ├── order_service.py # Бизнес-логика заказов
│   │   └── user_service.py  # Управление состоянием пользователей
│   ├── db.py                # Асинхронный клиент PostgreSQL
│   ├── sheets.py            # Клиент Google Sheets
│   ├── models.py            # Pydantic модели данных
│   └── config.py            # Валидация настроек через Pydantic
├── run_local.py             # Скрипт для локального запуска (Polling)
├── requirements.txt         # Список зависимостей
└── .env                     # Конфиденциальные данные (не для git)

🌍 Production (Webhook)

Для развертывания в облаке (например, Amvera) используйте:

python -m app.main

Не забудьте указать WEBHOOK_URL в переменных окружения.


Разработано с ❤️ для автоматизации бизнеса.

About

elegram bot for business order management using OpenAI gpt-4.1-nano and Google Sheets API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages