Skip to content

Latest commit

 

History

History
220 lines (162 loc) · 9.46 KB

File metadata and controls

220 lines (162 loc) · 9.46 KB

Typing SVG

CI Python 3.11+ License: Apache 2.0 Code style: ruff Telegram

OCR SQLite Aiogram


🇬🇧 English documentation: README.md


Русская документация по проекту InvoiceFlowBot.

📋 Описание

InvoiceFlowBot это Telegram бот для обработки инвойсов с помощью OCR. Бот принимает PDF или изображение, отправляет его в Mindee, извлекает реквизиты счета и сохраняет их в SQLite. Через интерфейс Telegram можно просматривать счета, редактировать шапку и позиции, добавлять комментарии и выгружать товары в CSV.

🎯 Как это работает

graph LR
    A[📱 Пользователь] -->|Загружает PDF/Фото| B[🤖 Telegram Бот]
    B -->|Отправляет в OCR| C[🔍 Mindee API]
    C -->|Извлекает данные| D[✏️ Черновик]
    D -->|Редактирование| E[💾 SQLite]
    E -->|Запросы| F[📊 Отчёты]

    style A fill:#4A90E2,stroke:#2c3e50,stroke-width:2px,color:#fff
    style B fill:#50C878,stroke:#2c3e50,stroke-width:2px,color:#fff
    style C fill:#FF6B6B,stroke:#2c3e50,stroke-width:2px,color:#fff
    style D fill:#FFD93D,stroke:#2c3e50,stroke-width:2px,color:#333
    style E fill:#A8E6CF,stroke:#2c3e50,stroke-width:2px,color:#333
    style F fill:#B19CD9,stroke:#2c3e50,stroke-width:2px,color:#fff
Loading

📤 Загрузка
Отправьте счёт через Telegram

🔍 Обработка
OCR извлекает данные автоматически

💾 Сохранение
Хранение в базе SQLite

✨ Возможности

Функция Описание Статус
🤖 OCR Обработка Автоматическое извлечение через Mindee API
📎 Множество форматов PDF, JPEG, PNG, HEIC, HEIF, WebP
✏️ Интерактивное редактирование Правка через интерфейс Telegram
💾 Хранение данных SQLite с миграциями Alembic
📅 Запросы по периоду Фильтрация по датам и поставщику
💬 Система комментариев Добавление заметок к счетам
📊 Экспорт CSV Выгрузка позиций для анализа

🚀 Быстрый старт с Docker

Tip

Самый быстрый способ запуска! Docker автоматически настроит все зависимости.

# 1. Клонируйте и настройте окружение
git clone https://github.com/AmaLS367/InvoiceFlowBot.git
cd InvoiceFlowBot
Copy-Item .env.example .env

# 2. Отредактируйте .env с вашими токенами
notepad .env

# 3. Запустите бота
docker-compose up --build -d

# 4. Просмотр логов
docker-compose logs -f

# 5. Остановка
docker-compose down

🔧 Требования

  • 🐍 Python 3.11+
  • 🤖 Токен Telegram бота
  • 🔑 Mindee API Key и Model ID
  • 💾 Доступ к SQLite (идет в комплекте с Python)

💻 Установка и запуск локально

Note

Требуется Python 3.11+ и Git

📦 Пошаговая инструкция по установке

1. Клонируйте репозиторий

git clone https://github.com/AmaLS367/InvoiceFlowBot.git
cd InvoiceFlowBot

2. Создайте виртуальное окружение

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

3. Установите зависимости

pip install -e .

4. Настройте переменные окружения

Copy-Item .env.example .env
notepad .env

Пример .env:

BOT_TOKEN=123456:ABCDEF_your_bot_token
MINDEE_API_KEY=your-mindee-api-key
MINDEE_MODEL_ID=mindee/invoices/v4
DB_FILENAME=data.sqlite

[!WARNING] Не забудьте заменить значения на свои реальные токены!

5. Запустите бота

python bot.py

[!TIP] Логи по умолчанию пишутся в каталог logs/ - проверьте их при возникновении проблем.

📚 Документация

📖 Полное руководство (docs/ru/)
Раздел Описание
📖 Обзор Архитектура и компоненты системы
💻 Настройка локально Установка без Docker
🐳 Запуск в Docker Контейнеризация и развертывание
⚙️ Конфигурация Переменные окружения
🗄️ База данных Структура SQLite и миграции
🧪 Тесты Запуск тестов и проверки качества
🔧 Устранение неполадок Решение типовых проблем
📸 Скриншоты Визуальные примеры

[!NOTE] 🇬🇧 Английская версия документации: README.md


🌟 История звёзд

Star History Chart

Сделано с ❤️ от Ama