度慧文档转PDF
Overview
用这个 skill 处理“单个本地文件转单个 PDF”的度慧异步转换任务。
标准链路是:本地文件 -> 阿里云 OSS 临时上传 -> 把 OSS 对象直链放进 input -> v2/convert_async -> 轮询查询 -> 下载本地 PDF -> 删除 OSS 临时文件。
Required Runtime And Secret
- 必需二进制:
python3 - Python 侧只依赖标准库,不需要额外安装第三方包
- 必需环境变量:
DUHUI_ALI_APPCODE - AppCode 获取地址:
https://market.aliyun.com/detail/cmapi00044564 - 在运行转换脚本前,agent 必须确保
DUHUI_ALI_APPCODE已出现在执行环境中 - 本 skill 不规定 secret 的存储、检索或注入方式;这由用户自己的 agent 能力和授权策略决定
Network Endpoints
https://file.duhuitech.com/k/tmp_up.json:运行时获取临时 OSS 上传凭证https://fmtmp.oss-cn-shanghai.aliyuncs.com:vendor 控制的临时 OSS 桶,用于上传本地源文件https://doc2pdf.market.alicloudapi.com/v2/convert_async:提交异步转换请求https://api.duhuitech.com/q:轮询转换状态- vendor 返回的
pdfurl:下载输出 PDF
Data Flow And Privacy
- 本地源文件会先上传到阿里云 OSS 上海地域临时桶
fmtmp.oss-cn-shanghai.aliyuncs.com - 上传完成后会把 OSS 对象 URL 传给 vendor 的异步转换接口
- 脚本会在运行时从
https://file.duhuitech.com/k/tmp_up.json获取临时上传凭证,仅供当前进程使用 - 转换结束后会 best-effort 删除 OSS 临时源文件;如果删除失败,远端源文件可能短暂残留
- agent 不得在聊天、日志或最终答复里回显 AppCode
- agent 只有在用户明确同意在聊天里直接粘贴 AppCode
- agent 只有在用户明确同意且其自身 secret 管理策略允许时,才能持久化或缓存 AppCode
When To Use
- 用户明确提到度慧、文档转 PDF、文档转换、格式转换、PDF 转换、压缩pdf,PDF水印
- 用户要把单个本地
doc/docx/ppt/pptx/xls/xlsx/ofd/img/txt/html/...文件转成 PDF - 任务需要走度慧的异步接口,而不是本地 LibreOffice 或其他转换器
Do Not Use
- 直接 URL 输入
- Base64 输入
- 回调 URL
Workflow
- 先确认运行前置条件。
- 运行环境必须可用
python3。 - 只检查环境变量
DUHUI_ALI_APPCODE。 - 如果环境变量已经存在,直接运行转换脚本;不要要求用户重复输入 AppCode。
- 如果环境变量不存在,必须明确告诉用户:当前执行环境缺少
DUHUI_ALI_APPCODE,请先到阿里云市场商品页获取 AppCode:https://market.aliyun.com/detail/cmapi00044564。不要只笼统地说“请提供 AppCode”。 - agent 应引导用户通过其支持的安全 secret 配置机制、环境变量机制或本地 secret store 来配置
DUHUI_ALI_APPCODE。如果 agent 支持安全的非聊天式 secret 输入,可指导用户使用该机制。 - 只有在 agent 无法安全提供
DUHUI_ALI_APPCODE且用户尚未完成配置时,才停止执行并等待用户完成配置。
- 运行环境必须可用
- 默认优先运行脚本,不要手写 OSS 上传或 HTTP 调用逻辑:
python3 scripts/duhui_doc_to_pdf.py ./input.docx
- 用户指定输出路径时,加
--output:
python3 scripts/duhui_doc_to_pdf.py ./input.docx --output ./output.pdf
- 默认会覆盖同名输出 PDF;如果用户要保留旧结果,显式指定另一个
--output路径。 - 只有在文件后缀缺失、错误、或需要强制覆盖源类型时才传
--type。 - 需要 vendor
v2可选参数时,用--extra-params '<json>'透传,例如:
python3 scripts/duhui_doc_to_pdf.py ./input.docx --extra-params '{"pagesize":2,"compress":1}'
- 绝不在聊天、日志或最终答复里回显 AppCode 或脚本内置的 OSS 凭证;持久化时也只用占位符,不要把秘密再次展示出来。
- 当需要确认支持格式、把用户的细化要求映射成更多
v2参数、查看 vendor 参数细节、或排查 vendor 返回字段时,读取 references/doc_to_pdf_ali.md。
Missing AppCode Prompt
- 当
DUHUI_ALI_APPCODE缺失时,优先使用类似下面的提示,而不是直接中止:
当前执行环境缺少 DUHUI_ALI_APPCODE。
请先到阿里云市场商品页获取度慧文档转 PDF 的 AppCode:
https://market.aliyun.com/detail/cmapi00044564
请改用你当前 agent 支持的安全 secret 配置方式、环境变量机制或本地 secret store 完成配置;配置完成后再继续转换。
Output Contract
- 进度信息只写到
stderr stdout只输出一个 JSON- 成功 JSON 包含:
status,token,output_path,pdf_url,page_count,filesize,source_object_key - 失败 JSON 包含:
status,stage,token,reason
Notes
- 脚本始终只处理一个本地输入文件
- 脚本只使用 Python 标准库,不依赖额外 Python 包
- OSS 对象名固定为
up/<uuid4><原扩展名> - 运行时会从
https://file.duhuitech.com/k/tmp_up.json请求临时 OSS 上传凭证 - 上传后直接把 OSS 对象 URL 传给 vendor,不生成签名 URL
- 查询接口不带认证,固定每 2 秒轮询一次,最长等待 60 分钟
- 转换结束后会尝试删除 OSS 临时源文件;删除失败只记 warning,不覆盖主错误
DUHUI_ALI_APPCODE的存储、持久化、检索和注入由用户自己的 agent 负责
Scan to contact