跳转到内容
搜索文档

Workers 绑定(binding)

最后更新 查看 MarkdownAgent 设置

Cloudflare 的无服务器平台允许您在边缘运行代码,使用 Workers 构建全栈应用。绑定(binding) 使 Worker 或 Pages Function 能够与 Cloudflare Developer Platform 上的资源交互。

要从 Workers 直接使用 Markdown Conversion 服务,请在 Cloudflare 仪表板中创建 AI 绑定(请参阅 AI 绑定 了解说明),或更新 Wrangler 文件。在 Wrangler 文件中添加以下内容:

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "ai": {
    "binding": "AI"
  }
}
[ai]
binding = "AI" # i.e. available in your Worker on env.AI

示例

转换文件

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

import { Env } from "./env";

export default {
	async fetch(request, env, ctx) {
		// 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/pdf",
					}),
				},
				{
					name: "cat.jpeg",
					blob: new Blob([await cat.arrayBuffer()], {
						type: "image/jpeg",
					}),
				},
			]),
		);
	},
};
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/pdf",
					}),
				},
				{
					name: "cat.jpeg",
					blob: new Blob([await cat.arrayBuffer()], {
						type: "image/jpeg",
					}),
				},
			]),
		);
	},
};

获取支持的文件格式

import { Env } from "./env";

export default {
	async fetch(request, env, ctx) {
		return Response.json(await env.AI.toMarkdown().supported());
	},
};
import { Env } from "./env";

export default {
	async fetch(request: Request, env: Env, ctx: ExecutionContext) {
		return Response.json(await env.AI.toMarkdown().supported());
	},
};

方法

async env.AI.toMarkdown()

接受一个或多个不同格式的文档并将其转换为 Markdown。

const result = await env.AI.toMarkdown({
	name: "document.pdf",
	blob: new Blob([documentBuffer]),
});
const result = await env.AI.toMarkdown({
	name: "document.pdf",
	blob: new Blob([documentBuffer]),
});

参数

  • files: MarkdownDocument | MarkdownDocument[]- 一个或多个 MarkdownDocument 实例。

  • conversionOptions: ConversionOptions- 控制转换方式的选项。请参阅转换选项了解更多详情。

返回值

  • results: Promise<ConversionResult | ConversionResult[]>- 一个或多个 ConversionResult 实例。

MarkdownDocument 定义

  • name string

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

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

ConversionResult 定义

  • id string

    • 与此对象关联的 ID。
  • name string

    • 转换后文档的名称。与输入名称匹配。
  • format 'markdown' | 'text' | 'error'

    • ConversionResult 对象的格式。当您将 output.format 选项设置为 text 时等于 text
  • mimetype string

  • tokens number

    • 转换后文档的估计 token 数。如果 format 等于 error 则不存在。
  • data string

    • 转换后文档的内容。如果 format 等于 error 则不存在。
  • error string

    • 解释转换失败原因的错误消息。仅在 format 等于 error 时存在。

async env.AI.toMarkdown().transform()

此方法与 env.AI.toMarkdown 类似,但通过新句柄暴露。它接受相同参数并返回相同值。

const result = await env.AI.toMarkdown().transform({
	name: "document.pdf",
	blob: new Blob([documentBuffer]),
});
const result = await env.AI.toMarkdown().transform({
	name: "document.pdf",
	blob: new Blob([documentBuffer]),
});

async env.AI.toMarkdown().supported()

返回当前支持 Markdown 转换的文件格式列表。请参阅支持的格式了解可转换为 Markdown 的完整文件格式列表。

const formats = await env.AI.toMarkdown().supported();
const formats = await env.AI.toMarkdown().supported();

返回值

  • results: SupportedFormat[]- 支持 Markdown 转换的所有格式数组。

SupportedFormat 定义

  • extension string

    • 此格式文件的扩展名。
  • mimeType string

这篇文档对您有帮助吗?