beops
all projects

imaginator

telegram bot + CLI for AI image generation — provider-pluggable across azure openai and gemini behind one interface.
draft aigotelegram
year
2026
role
engineer
stack
go · azure openai · google gemini · telegram bot api
link

a telegram bot (and CLI) that generates images from a text prompt and a style pick. image generation sits behind an ImageProvider interface with two implementations — azure openai and google gemini — swapped with one environment variable, sharing the same styles, bot flow, and CLI workflow either way.

what it does

  1. provider abstraction — one ImageProvider interface, two backends (azure openai’s gpt-image-1, gemini’s gemini-2.5-flash-image). adding a third provider means implementing the interface, not rewriting the bot.
  2. telegram bot/generate walks the user through an inline-keyboard style picker, then a free-text subject, then returns the generated image. /styles and /help round out the UX.
  3. 16 built-in styles — logo, watercolor, cyberpunk emblem, vintage poster, photographic, cartoon, and more — shared across both providers.
  4. CLI mode — batch generation from the command line, with output organized into timestamped session folders.
  5. auth — azure ad (DefaultAzureCredential) or a plain api key for azure; api key for gemini.

why it matters for interviews

this is the running counter-example to “no production history with AI image generation pipelines”: a real multi-provider image service with the exact adapter-boundary shape used everywhere else in the portfolio (llm-batcher, aissist) — one interface, swappable backends, a chat surface in front of it.