Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    Почта органайзер · Письма в задачи с помощью AI

    example-c3-mail-organizer.jpg

    Каркас системы: входящие письма → черновик задачи → UI оператора. Сейчас это MVP-скелет: FastAPI и React уже поднимаются, почтовые коннекторы, БД и живой LLM ещё не подключены.

    Не путать с Android EmailInterface и плагином Email Bot на HuskyServer.

    Возможности

    • Приём письмаPOST /mails/ingest: нормализация темы, превью тела, отправителя.
    • Черновик задачи — пайплайн собирает TaskProposal (заголовок, резюме, действия). Сейчас используется fake_proposal, не ответ модели.
    • Демо для UIGET /tasks/example-proposal.
    • Экран входящих и задач — React: Inbox и Tasks, карточки письма/задачи.
    • Промпт — шаблон извлечения задач в ai/prompts/task_extractor.md.
    • Docker Compose — api, worker (Celery), Postgres, Redis для будущего стека.

    Inbox и список задач с API возвращают пустые массивы: persistence нет. OpenAI-провайдер — заглушка (мок-строка), ключ не обязателен для запуска.

    Требования

    • Python 3.11+, Node.js 18+ (для Vite).
    • Опционально Docker + Compose.
    • Опционально Tesseract не нужен. Для живого LLM позже — ключ провайдера в infra/env/dev.env (файл не коммитить).

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

    cd "D:\WinProjects\Почта органайзер"
    python -m venv .venv
    .\.venv\Scripts\activate
    pip install -e backend[dev]
    if (-not (Test-Path infra\env\dev.env)) { Copy-Item infra\env\dev.env.example infra\env\dev.env }
    uvicorn backend.app.main:app --reload

    API: http://localhost:8000 · health: GET /health.

    Frontend (второй терминал):

    cd frontend
    npm install
    npm run dev

    UI: http://localhost:3000 (прокси/CORS на backend :8000).

    Через Docker:

    docker compose -f infra/docker-compose.yml up -d

    Bootstrap: .\scripts\bootstrap.ps1 (копия env; -InstallDeps ставит venv).

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

    Демо-задача в UI

    1. Запустите backend и frontend.
    2. Откройте /tasks — можно запросить пример через API GET /tasks/example-proposal.
    3. / — входящие; список пуст, пока нет БД и коннектора.

    Ручной ingest

    curl -X POST http://localhost:8000/mails/ingest -H "Content-Type: application/json" -d "{\"message_id\":\"1\",\"subject\":\"Согласовать договор\",\"body_text\":\"Нужно до пятницы\",\"sender\":\"client@example.com\"}"

    Ответ — TaskProposal из заглушки, без записи в Postgres.

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

    Почта органайзер/
    ├── backend/app/          # FastAPI, ingest, AI-обёртки, pipeline
    ├── frontend/src/         # React Inbox / Tasks
    ├── ai/prompts/           # шаблоны LLM
    ├── infra/                # docker-compose, env example
    ├── scripts/bootstrap.ps1
    └── doc/

    Технологии

    • Python 3.11, FastAPI, Pydantic, uvicorn.
    • React 18, TypeScript, Vite, Axios, React Router.
    • Заготовки: SQLAlchemy/Alembic, Redis, Celery, openai (зависимость есть, вызов замокан).
    • Docker: Postgres 15, Redis 7.
    История изменений

    Формат Keep a Changelog.

    [Unreleased]

    Changed

    • Документация приведена к четвёрке; README описывает фактический MVP (заглушки inbox/LLM), а не целевой стек как готовый продукт.

    [0.1.0]

    Added

    • Каркас FastAPI: health, ingest, пустые inbox/tasks, example-proposal.
    • React UI Inbox/Tasks.
    • Docker Compose (api, worker, Postgres, Redis).
    • Черновик промпта task extractor.

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: