Owner's service · external integrations await configuration
re-publisher
FastAPI, PostgreSQL, a Telegram collector and a publication processing pipeline. The server runs the original app without a demo wrapper. Collection needs Telegram and model configuration. Those are not connected yet, so there is no collected content.
01 / The task
Telegram collection and content processing
Content goes through extraction, classification and draft preparation. The source and intermediate results are stored separately, so a failed step can be inspected and rerun.
Use case: Editing content for topic-based channels.
Work done
- Normalization, data extraction, classification and editing templates.
- Processing history and results for individual steps.
- Image build, migrations and deployment of the original interface. External integrations still need configuration.
Screenshots
Screens, forms, errorsScreenshots, diagrams and source evidence retain their original language; captions and descriptions are translated.
02 / Technology
Stack
FastAPI / Jinja
Original editorial interface
PostgreSQL / SQLAlchemy / Alembic
Production data schema and migrations
Telethon
MTProto collector; awaiting a session
scikit-learn / LLM
Classification and rewriting after model configuration
03 / Decisions
How the project works
- The original application's app.web.main:app is running, rather than app.portfolio.
- PostgreSQL with the original migrations; separate persistent sessions, media, models, cache, artifacts and reports directories.
- The collector and full-cycle pipeline are separate services in the connected profile. They are activated after configuring the Telegram session, model and selected integrations.
- The administrative interface is protected by HTTPS Basic Auth; secrets are kept outside the repository.
04 / Verification
Demo workflows
- Sign in to the owner's interface and open Materials, Drafts, Labeling, Models and Pipeline.
- Open Rewrite Progress, Prompts and Search: these are the original pages backed by PostgreSQL.
- After configuring Telegram: app.main login/login-qr → inspect-folder → limited sync → inspect materials.
- After registering a model and configuring the LLM: processing → classification → draft → review → approved publication to the selected channel.
Check results
- Five sequential HTTPS GET requests from the VPS to itself: 81.5–228.6 ms, all HTTP 200. This is not a load test or an assessment of the external network.
- No Telegram collection, LLM processing or Codex task ran during the measurements.
Limitations
- Telegram API ID/hash and an authorized MTProto session have not yet been provided. Collection of real messages has not started.
- The active tfidf_logreg.joblib model and selected LLM settings are missing. There is no basis for claiming verified classification or rewriting quality.
- The interface currently shows an empty production-schema database. The previous demo's synthetic corpus has not been mixed into the original tables.
- External publishing has not been tested: it requires a destination channel and BOT_TOKEN or MAX settings. AUTO_PUBLISH remains false until the destination is configured.
Technical notes
Modules, API, data model, setup and check results.
Documentation →Materials ↓