Skip to content
Cloudflare Docs
非官方翻译 - 此文档为非官方中文翻译版本,仅供参考。如有疑问请以 英文官方文档 为准。

Markdown 转换

Markdown 对于训练和推理中的文本生成和大型语言模型 (LLM)至关重要,因为它可以提供结构化、语义化、人类和机器可读的输入。同样,Markdown 有助于对输入数据进行分块和结构化,以便在 RAG 的上下文中更好地检索和综合,其简单性和易于解析和呈现的特点使其成为 AI 代理的理想选择。

由于这些原因,文档转换在设计和开发 AI 应用程序时扮演着重要角色。Workers AI 提供了 toMarkdown 实用方法,开发人员可以从 env.AI 绑定或 REST API 中使用该方法,以便快速、轻松、方便地将多种格式的文档转换为 Markdown 语言并进行摘要。

方法和定义

async env.AI.toMarkdown()

获取不同格式的文档列表并将其转换为 Markdown。

参数

  • documents: array - toMarkdownDocument 的数组。

返回值

  • results: array - toMarkdownDocumentResult 的数组。

toMarkdownDocument 定义

  • name string

    • 要转换的文档的名称。
  • blob Blob

    • 一个包含文档内容的新 Blob 对象。

toMarkdownDocumentResult 定义

  • name string

    • 转换后文档的名称。与输入名称匹配。
  • mimetype string

  • tokens number

    • 转换后文档的估计令牌数。
  • data string

    • 转换后文档的内容,格式为 Markdown。

支持的格式

这是支持的格式列表。我们会不断添加新格式并更新此表。

Format

File extensions

Mime Types

PDF Documents

.pdf

application/pdf

Images 1

.jpeg, .jpg, .png, .webp, .svg

image/jpeg, image/png, image/webp, image/svg+xml

HTML Documents

.html

text/html

XML Documents

.xml

application/xml

Microsoft Office Documents

.xlsx, .xlsm, .xlsb, .xls, .et

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel.sheet.macroenabled.12, application/vnd.ms-excel.sheet.binary.macroenabled.12, application/vnd.ms-excel, application/vnd.ms-excel

Open Document Format

.ods

application/vnd.oasis.opendocument.spreadsheet

CSV

.csv

text/csv

Apple Documents

.numbers

application/vnd.apple.numbers

1 Image conversion uses two Workers AI models for object detection and summarization. See Workers AI pricing for more details.

示例

在此示例中,我们从 R2 获取一个 PDF 文档和一张图片,并将它们都提供给 env.AI.toMarkdown。结果是一个转换后的文档列表。Workers AI 模型会自动用于检测和总结图像。

import { Env } from "./env";
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
// https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/somatosensory.pdf
const pdf = await env.R2.get("somatosensory.pdf");
// https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/cat.jpeg
const cat = await env.R2.get("cat.jpeg");
return Response.json(
await env.AI.toMarkdown([
{
name: "somatosensory.pdf",
blob: new Blob([await pdf.arrayBuffer()], {
type: "application/octet-stream",
}),
},
{
name: "cat.jpeg",
blob: new Blob([await cat.arrayBuffer()], {
type: "application/octet-stream",
}),
},
]),
);
},
};

这是结果:

[
{
"name": "somatosensory.pdf",
"mimeType": "application/pdf",
"format": "markdown",
"tokens": 0,
"data": "# somatosensory.pdf\n## Metadata\n- PDFFormatVersion=1.4\n- IsLinearized=false\n- IsAcroFormPresent=false\n- IsXFAPresent=false\n- IsCollectionPresent=false\n- IsSignaturesPresent=false\n- Producer=Prince 20150210 (www.princexml.com)\n- Title=Anatomy of the Somatosensory System\n\n## Contents\n### Page 1\nThis is a sample document to showcase..."
},
{
"name": "cat.jpeg",
"mimeType": "image/jpeg",
"format": "markdown",
"tokens": 0,
"data": "这张图片是"不爽猫"的特写照片,这只猫以其独特的"不爽"表情和锐利的蓝眼睛而闻名。这只猫的脸是棕色的,鼻子上有一条白色的条纹,耳朵竖立着。它的皮毛是浅棕色的,脸部周围的颜色较深,鼻子和嘴巴是粉红色的。猫的眼睛是蓝色的,向下倾斜,使它看起来永远都是一副"不爽"的样子。背景是模糊的,但看起来是深棕色的。总的来说,这张图片是流行的网络迷因角色"不爽猫"的一个幽默而标志性的代表。猫的面部表情和姿势传达出一种不悦或烦恼的感觉,这使得它对许多人来说是一个既 relatable 又有趣的图片。"
}
]

REST API

除了 Workers AI 绑定,您还可以使用 REST API

Terminal window
curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/tomarkdown \
-H 'Authorization: Bearer {API_TOKEN}' \

定价

toMarkdown 对于大多数格式转换是免费的。在某些情况下,例如图像转换,它可以使用 Workers AI 模型进行对象检测和摘要,如果超出 Workers AI 的免费配额限制,可能会产生额外费用。有关更多详细信息,请参阅定价页面