Spaces:
Sleeping
Sleeping
Commit History
-
Add factual-accuracy and sourcing guardrail to content-generation prompts
New pipeline/factual_accuracy.py holds a strict no-fabrication guardrail (no invented statistics/citations, no merged/guessed sources, no false authority, prefer omission over confabulation, real captions/alt text only, flag uncertainty, stay internally consistent). Injected into the two prompts that actually produce published content: writer._build_system() (the blog body) and captions.py's new system message (image captions/alt text). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>fbe8f5e -
Fix InvalidPathError: whitelist OUT_DIR for Gradio 5 file serving
Gradio 5's launch() only serves files from the CWD, the system temp dir, or allowed_paths. Generated images/docx are written under config.OUT_DIR (/data/out on HF persistent storage), so returning those paths from the pipeline made the Gallery/File outputs raise InvalidPathError right after generation finished. Pass allowed_paths=[str(config.OUT_DIR)] to launch(); Gradio's allowlist check is an ancestor-or-equal match, so this one entry covers every per-run subfolder. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>f2d4db5 -
Add content-goal radio and a dedicated generated-images section
- New single-select "Content goal" radio (Informational, Persuasive, Authoritative, Thought Leadership) threaded through generate() -> orchestrator.run() -> writer.write_post(); each goal injects a distinct stance/tone directive into the writing prompt. Included in the cache key. - UI: move the image gallery into its own full-width "Generated images" section (3 columns, larger, click-to-preview) so all generated images are shown prominently in the Space. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>ac00fb3 -
Add target word count control and AEO citation guidelines
- UI: new "Target word count" number box, threaded through generate() -> orchestrator.run() -> writer.write_post(); output tokens scale to the target. - Writing prompt now enforces AI-citation (AEO) best practices distilled from the GameMaster citation best-practices doc: direct answer up top, question-style headings, specific/verifiable claims, a comparison/feature table, an FAQ, cited sources, stated limitations, freshness and descriptive anchors. - docx_builder: render Markdown pipe tables as real Word tables (bold header row, separator row dropped) so the required tables export correctly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>2559985 -
Harden image generation as remote inference calls with provider fallback
Images already ran via HF Inference Providers (no GPU in the Space), but a single provider being unavailable for the user's token would fail the step. Now try auto routing then fall back across the providers that serve FLUX.1-schnell (fal-ai, nscale, together, hf-inference, replicate, wavespeed), one user-token client each, and surface a clear status if all fail. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>d3ee9ee
-
Upgrade to Gradio 5.x to fix api-schema startup crash
gradio 4.44's bundled gradio_client raises "TypeError: argument of type 'bool' is not iterable" while building api_info at startup, which made Gradio believe localhost was unreachable and abort with a share=True ValueError. Gradio 5.x fixes the boolean-schema handling. Also pass show_api=False defensively. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>2ab4f11 -
Pin huggingface_hub<1.0 for gradio 4.44 compatibility
gradio 4.44.1 imports HfFolder from huggingface_hub at import time, but >=0.28.0 resolved to huggingface_hub 1.x where HfFolder was removed, crashing the app on startup. Cap to <1.0, which still provides Inference Providers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>ac46b30 -
Set SEARXNG_SETTINGS_PATH at runtime, not build time
SearXNG's setup.py imports searx during metadata generation, which reads SEARXNG_SETTINGS_PATH. Pointing it at /etc/searxng/settings.yml via ENV made the editable install fail (file not present yet at that build step). Set the var in start.sh instead; during build SearXNG uses its packaged defaults. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1e731a0 -
Fix SearXNG editable install: use --no-build-isolation
SearXNG's build backend imports msgspec at metadata time; with build isolation the preinstalled build deps were invisible, causing ModuleNotFoundError: No module named 'msgspec'. Install with --no-build-isolation so the venv's build deps are used. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>a19333a -
Rebuild image on python:3.11-slim with isolated venvs
The searxng/searxng base image no longer ships a searx-pyenv virtualenv (2026.7.1 runs granian and installs searx elsewhere), which broke the build. Switch to a controllable python:3.11-slim base and install SearXNG from source into /opt/searxng-venv and the Gradio app into /opt/appenv, so the two dependency sets stay isolated. start.sh now drives each venv explicitly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>4f15b05 -
Add grounded blog-post generator pipeline
Docker Space bundling self-hosted SearXNG + a Gradio app that turns topic/keywords/brief into an illustrated .docx blog post: search-term LLM -> SearXNG -> OpenPageRank ranking -> content extraction -> blog writing -> FLUX.1-schnell images -> Qwen2.5-VL captions -> docx. All paid inference is billed to the user's HF token entered in the UI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>31fa536 -
initial commit
Verified signature1722c47