Spaces:
Sleeping
Sleeping
metadata
title: BlogWriter
emoji: ⚡
colorFrom: yellow
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
short_description: Illustrated blog-post generator, exported as .docx
Blog Post Generator
Turn a topic + keywords + brief into a fully-written, illustrated blog post exported
as a .docx file. The pipeline is grounded: instead of writing blind, it runs real web
search, ranks the sources by authority, and writes from the most authoritative pages.
Pipeline
- Search-term reasoning — an LLM turns your topic/keywords/brief into optimized queries.
- Web search — a self-hosted SearXNG instance (running inside this Space) returns the top ~25 result domains.
- Authority ranking — OpenPageRank scores those domains; the top 5 pages are selected.
- Content extraction — main article text is extracted from those pages.
- Writing — a strong LLM writes an SEO-aware post from that material, weaving your keywords in and marking where images belong.
- Illustration — image prompts are written by an LLM and rendered with FLUX.1 [schnell].
- Captioning — a vision model captions each generated image.
- Export — everything is assembled into a downloadable
.docx.
Billing
All paid AI calls (reasoning, writing, image generation, captioning) run through Hugging Face Inference Providers using the HF token you enter in the UI, so they are billed to you. Nothing is stored server-side.
Get a token at https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained (needs "Make calls to Inference Providers" permission).
Configuration (Space owner)
- Secret
OPR_API_KEY— a free OpenPageRank API key (https://www.domcop.com/openpagerank/auth/signup). Required for authority ranking. - Persistent storage (optional) — if enabled,
/datais used to cache search results, scores, images and docx between runs. Without it the app still works; the cache just lives in a local directory and is not persisted.
Models (fixed defaults)
| Step | Model |
|---|---|
| Search terms & image prompts | openai/gpt-oss-120b |
| Blog writing | deepseek-ai/DeepSeek-V3-0324 (fallback Qwen/Qwen2.5-72B-Instruct) |
| Image generation | black-forest-labs/FLUX.1-schnell |
| Image captioning | Qwen/Qwen2.5-VL-72B-Instruct |