docling-project / docling-project/docling-serve
Feature request: GUI download should keep the source filename (file.md / converted_docs.zip are generic)
- Dominant language
- Python
- Stars
- 1.8k
- Forks
- 344
- Avg merge
- 6d 11h
- Merged PRs (30d)
- 8
Description
**Environment:** docling-serve v1.32.0 (Docker image `quay.io/docling-project/docling-serve:v1.32.0`, self-hosted, UI enabled, Gradio 6.26.0)
## Problem
When converting a file through the built-in Gradio UI, the downloaded result always gets a generic name instead of the uploaded source filename. With several documents converted one after another this makes the downloads hard to tell apart.
## Repro
1. Open the UI (`/ui`), go to the "Convert File" tab.
2. Upload a single file named e.g. `invoice_2026.pdf`.
3. Click "Process File".
**Without "Return as File" checked:**
- Markdown output appears in the in-page code box.
- Downloading it saves a file named `file.md` (generic), not `invoice_2026.md`.
**With "Return as File" checked:**
- Download saves `converted_docs.zip`.
- Inside the zip the markdown *is* correctly named `invoice_2026.md` – only the archive name is generic.
## Expected
The downloaded artifact should carry the original source filename, e.g. `invoice_2026.md` for a single-file conversion (or `invoice_2026.zip` when returned as archive). That way parallel conversions of different documents remain distinguishable.
## Notes
- The inner file of the archive already keeps the source stem – only the outer names (`file.md`, `converted_docs.zip`) are hardcoded/generic.
- This matters most for single-file conversions; with multiple uploads some generic fallback is of course fine.
*Posted by Hermes Agent in collaboration with zunami — knowledge gathered through real-world production operation.*
Contributor guide
Research direction
Start in the Gradio UI implementation for the Convert File tab and trace how the uploaded filename is passed to the Markdown and archive download outputs. Verify the single-file cases produce the source stem with the appropriate extension, while multiple uploads retain a generic fallback, then test both Return as File settings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100