跳转到主内容
版本发布

42md 知识编排(3):写一条自己的编排

内置正好缺你那一条怎么办?自己写。这篇跟着搭一条真编排:把外文 PDF 转成中文、再导出电子书。从一行骨架起步,一步步加——提取、翻译、导出,把上一步的产物接到下一步。不知道能调哪些动作,一条命令就能查。搭完存进本地目录,它就和内置一样能按名运行。

5 分钟
产品发布知识编排recipe编排写法命令行

假设你常做这件事:把外文 PDF 转成中文,再导出 EPUB,揣手机上读。

内置里没有正好这条——pdf2zh 只到翻译,pdf2book 又是从中文 PDF 起步。那就自己写一条。别担心,编排是一份纯文本 YAML,跟着搭一遍就懂了。

先搭个骨架

一条编排至少要有名字和步骤。先写第一步——提取:

name: pdf2zhbook                 # 名字,以后按它运行
steps:
  - id: extract                  # 步骤 id,唯一
    run: acquire                 # acquire = 把输入转成 Markdown
    with: ["{{ input }}"]        # 给它的参数:你运行时传的那份 PDF

run: acquire 是「主获取」,把 PDF / 网页 / 录音转成 Markdown,几乎所有编排的第一步都是它。{{ input }} 是个占位符,代表你运行时给的那份文件。

加第二步:翻译

提取出的 Markdown,要喂给翻译。这就用到编排的核心——把上一步的产物接到下一步:

  - id: translate
    run: tools.translate                          # 调「翻译」这个单步工具
    with: ["{{ steps.extract.output }}", "--target", "中文"]
    billed: true                                  # 这步花钱,标一下

{{ steps.extract.output }} 的意思是「extract 这一步产出的文件」。你不用关心它叫什么、存哪——编排替你接好。--target 中文 就是你平时 42md tools translate 会写的参数,原样透传。

加第三步:导出 EPUB

同样,把翻译的产物喂给导出:

  - id: book
    run: tools.md2epub
    with: ["{{ steps.translate.output }}"]

最后告诉它你要哪一步的产物:

output: "{{ steps.book.output }}"

不知道能调哪些动作?查一下

上面用了 acquiretools.translatetools.md2epub。还能调什么?别背、别猜——一条命令列全:

42md recipe verbs

它会列出当前版本所有能调的动作,标好哪个免费、哪个计费。这是「真相源」,永远跟你的 42md 对得上。

拼起来,跑

把三步合到一份文件,存成 ~/.42md/recipes/pdf2zhbook.yaml(文件名和 name 一致):

name: pdf2zhbook
description: 外文 PDF → 翻译成中文 → 导出 EPUB
steps:
  - id: extract
    run: acquire
    with: ["{{ input }}"]
  - id: translate
    run: tools.translate
    with: ["{{ steps.extract.output }}", "--target", "中文"]
    billed: true
  - id: book
    run: tools.md2epub
    with: ["{{ steps.translate.output }}"]
output: "{{ steps.book.output }}"

存好它立刻就和内置一样可用:

42md recipe list                       # 能看到 pdf2zhbook,标着「自定义」
42md recipe run pdf2zhbook 论文.pdf    # 按名运行

写一次,以后一行命令复用。

还能更稳、更灵活

这条能跑了。但你可能想让它「随手换语言」,也想在跑之前确认没写错、别白花钱。这些下一篇讲——参数化、多产物,和运行前的自检。

知识编排系列


42md — 你的知识快刀。更快地获取、更深地编译、更好地策展、更强的工具。

活水 AI 实验室(42ailab) — 探索智能边界的 AI 创新实验室,以认知科学为基石,推动 AI 与人类智能的深度融合,真正理解并增强智能 —— 碳基的,也是硅基的。

官网https://42md.cc