بنقرة واحدة
generate-pdf
Generate a PDF from ingested source documents using the agnostic Document tree
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Generate a PDF from ingested source documents using the agnostic Document tree
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Generate a Word document from ingested source documents using the agnostic Document tree (CommonMark/Pandoc-aligned)
Generate a single Document (Word/PowerPoint) from all source documents in a collection, with attributions back to each source
Generate a PowerPoint deck from ingested source documents using the agnostic Document tree (parametrised by slide_count, style, audience, tone)
Generate an Excel workbook (.xlsx) from ingested source documents — tabular with charts, formulas, KPI cells
Find PII (emails, phones, SSN, credit cards, IBANs, names, addresses, DOB) in an ingested document; return redaction plan
Extract tabular data from one or more source documents and populate a saved xlsx template — composes extract-tabular-data + xlsx-template-apply
| name | generate-pdf |
| description | Generate a PDF from ingested source documents using the agnostic Document tree |
| model | deepseek/deepseek-v4-pro |
| tier | pro |
| inputs | [{"name":"source_document_ids","type":"list[str]","required":true,"description":"Prisma Document.id values to ground generation in"},{"name":"brief","type":"str","required":true,"description":"What the user wants generated"},{"name":"style","type":"str","required":false,"description":"Tone/style hint (e.g. \"clinical\", \"casual\", \"technical\")"},{"name":"audience","type":"str","required":false,"description":"Target reader description"},{"name":"target_length","type":"str","required":false,"description":"short | medium | long (default: medium)"}] |
| outputs | [{"name":"file_path","type":"str"},{"name":"file_url","type":"str"},{"name":"title","type":"str"},{"name":"node_count","type":"int"},{"name":"model","type":"str"},{"name":"source_document_ids","type":"list[str]"}] |
Generates a PDF document from one or more ingested source documents stored in the OfficePlane database.
modules → lessons → blocks schema.Document dataclass tree via parse_document..docx bytes via render_docx..docx to .pdf using libreoffice --headless (already
installed in the api Docker image — no extra pip deps required)./data/workspaces/<job_id>/output.pdf.The PDF backend uses libreoffice's headless conversion mode:
Document tree → render_docx() → doc.docx → libreoffice --convert-to pdf → doc.pdf
This reuses the libreoffice binary already present in the api image for DOCX→PDF ingestion. No new pip dependencies are introduced.
The LLM must return a strict JSON object conforming to the agnostic Document schema:
{
"type": "document",
"schema_version": "1.0",
"meta": {"title": "My Document", "language": "en"},
"children": [
{
"type": "section",
"id": "s1",
"level": 1,
"heading": "Introduction",
"children": [
{"type": "paragraph", "text": "Opening prose here."},
{
"type": "list",
"ordered": false,
"items": [
{"type": "paragraph", "text": "First bullet"},
{"type": "paragraph", "text": "Second bullet"}
]
}
]
}
],
"attributions": [
{
"node_id": "s1",
"document_id": "<source-doc-uuid>",
"section_id": "<source-section-id>"
}
]
}
Key rules:
level 1..6 to indicate depth.heading, paragraph, list, table, figure, code,
callout, quote, divider."modules" or "lessons" — use nested sections instead.id (short string).document_id.{
"type": "document",
"meta": {"title": "BP Primer"},
"children": [
{
"type": "section",
"id": "intro",
"level": 1,
"heading": "Why Measure Blood Pressure",
"children": [
{"type": "paragraph", "text": "Early detection of hypertension saves lives."}
]
}
],
"attributions": [
{"node_id": "intro", "document_id": "doc-abc123"}
]
}