管理处理器版本

发布新版本的原因有很多,例如提高准确性、提高可用性以及支持新的文档元素(例如选择标记)。

鉴于 Document AI 由生成式 AI 提供支持,未来的版本将使用新的基础模型,以便您受益于生成式 AI 增强功能。

随着我们不断改进基础模型,较早的基础模型会被弃用。 同样,处理器版本会在新版本发布六个月后被弃用。

处理器可以具有以下版本之一:

本页面介绍了如何对处理器进行版本控制,以及如何查看和选择特定版本。

managing-processor-versions-1

处理器版本概览

处理器版本分为两类:

  • Google 版本可以是稳定版(用于生产用例),也可以是候选版本(实验版,包含最新功能)。
  • 用户版本由您创建,用于自定义文档的预测结果,并具有字母数字版本 ID。

Google 版本

每个 Google 版本都由一个版本 ID 标识,例如 pretrained-TYPE-vX.X-YYYY-MM-DD。 Google 提供的每个处理器版本都命名为 Google StableGoogle Release Candidate (RC)

Google 稳定版

稳定版本的质量达到了生产环境要求,并且已准备好供用户使用。

  • Google 会优先考虑处理器行为的稳定性,但仍会纳入重要补丁。
  • 如图所示,较早的 Google 稳定版会在最新稳定版发布六个月后被弃用。

managing-processor-versions-2

Google 候选版本 (RC)

候选版本是实验性版本,会定期升级以提供最新功能。这些版本不符合生产环境质量要求,其稳定性可能会有所不同。

自定义版本

自定义版本是指您可以根据文档创建的处理器版本,用于自定义预测。 自定义版本具有 Type,用于显示预测所用的模型类型。 如果您使用基础模型创建版本(通过创建版本或微调),则类型为 生成式 AI。如果您通过训练较小的自定义模型(基于模型或模板)来创建处理器版本,则类型为 Custom。如果您创建处理器版本,则可以自行决定名称和 ID。

基础版本

如果您创建处理器版本,“基础版本”会显示您的自定义用户版本由哪个 Google 版本提供支持。基础版本决定了用户版本的生命周期。 您需要决定如何管理自定义用户版本的生命周期。

可用的稳定处理器版本

您可以在下表中查看不同处理器类型的可用稳定处理器版本。

自定义提取器 发布日期 弃用日期
pretrained-foundation-model-v1.5-2025-05-05 2025 年 5 月 5 日 不适用
pretrained-foundation-model-v1.5-pro-2025-06-20 2025 年 6 月 20 日 不适用
表单解析器 发布日期 弃用日期
pretrained-form-parser-v1.0-2020-09-23 2020 年 9 月 23 日 不适用
pretrained-form-parser-v2.0-2022-11-10 2022 年 11 月 10 日 不适用
布局解析器 发布日期 弃用日期
pretrained-layout-parser-v1.0-2024-06-03 2024 年 6 月 3 日 不适用
银行对账单解析器 发布日期 弃用日期
pretrained-bankstatement-v1.0-2021-08-08 2021 年 8 月 8 日 不适用
pretrained-bankstatement-v1.1-2021-08-13 2021 年 8 月 13 日 不适用
pretrained-bankstatement-v2.0-2021-12-10 2021 年 12 月 10 日 不适用
pretrained-bankstatement-v3.0-2022-05-16 2022 年 5 月 16 日 不适用
pretrained-bankstatement-v5.0-2023-12-06 2023 年 12 月 6 日 不适用
W2 解析器 发布日期 弃用日期
pretrained-w2-v1.0-2020-10-01 2020 年 10 月 1 日 2024 年 3 月 31 日
pretrained-w2-v1.1-2022-01-27 2022 年 1 月 27 日 2024 年 3 月 31 日
pretrained-w2-v1.2-2022-01-28 2022 年 1 月 28 日 不适用
pretrained-w2-v2.1-2022-06-08 2022 年 6 月 8 日 不适用
身份证明文档校对解析器 发布日期 弃用日期
pretrained-id-proofing-v1.0-2022-10-03 2022 年 10 月 3 日 不适用
工资单解析器 发布日期 弃用日期
pretrained-paystub-v1.0-2021-03-19 2021 年 3 月 19 日 不适用
pretrained-paystub-v1.1-2021-08-13 2021 年 8 月 13 日 不适用
pretrained-paystub-v1.2-2021-12-10 2021 年 12 月 10 日 不适用
pretrained-paystub-v2.0-2022-07-22 2022 年 7 月 22 日 不适用
pretrained-paystub-v3.0-2023-12-06 2023 年 12 月 6 日 不适用
美国驾照解析器 发布日期 弃用日期
pretrained-us-driver-license-v1.0-2021-06-14 2021 年 6 月 14 日 不适用
费用解析器 发布日期 弃用日期
pretrained-expense-v1.1-2021-04-09 2024 年 4 月 9 日 不适用
pretrained-expense-v1.4-2022-11-18 2022 年 11 月 18 日 不适用
pretrained-expense-v1.4.2-2024-09-12 2024 年 9 月 12 日 不适用
账单解析器 发布日期 弃用日期
pretrained-invoice-v1.1-2021-04-09 2024 年 4 月 9 日 不适用
pretrained-invoice-v1.2-2022-02-18 2022 年 2 月 18 日 不适用
pretrained-invoice-v1.3-2022-07-15 2022 年 7 月 15 日 不适用
pretrained-invoice-v2.0-2023-12-06 2023 年 12 月 6 日 不适用
Enterprise Document OCR(光学字符识别) 发布日期 弃用日期
pretrained-ocr-v1.2-2022-11-10 2022 年 11 月 10 日 不适用
pretrained-ocr-v2.0-2023-06-02 2023 年 6 月 2 日 不适用
pretrained-ocr-v2.1-2024-08-07 2024 年 8 月 7 日 不适用

managing-processor-versions-3

处理器版本生命周期

一旦有新的 Google 版本可用,您就应该使用新的基本版本创建并评估新的用户版本。然后,部署新版本,并取消部署(或删除)以之前的稳定版为基础的早期用户版本。在发布新稳定版后,旧稳定版会停止更新。如果出现这种情况,Google 会至少提前 6 个月通知您。

当基本版本被弃用时会发生什么情况?

如果用户版本依赖于较早的基础版本,那么当基础版本被弃用时,用户版本将停止返回预测结果。

系统如何为您的请求选择处理器版本?

如果您在调用处理器端点时未指定处理器版本,系统会使用默认处理器版本。当默认处理器版本发生变化时,您可能需要更新代码。

使用的端点 经验
如果您未指定处理器版本 ID 使用新的默认处理器版本处理请求。
如果您的默认处理器版本已弃用,则在较旧的默认版本弃用时,默认版本会更新为最近发布的稳定版 Google 版本。
如果您指定了处理器版本 ID 如果您调用处理器端点并指定已弃用的版本 ID,则响应会失败。

自定义版本的弃用示例

请考虑以下场景,该场景描述了自定义版本弃用过程中的事件序列:

  1. 作为开发者,您正在使用自定义提取器从文档中获取数据。鉴于您处理的文档的复杂性和数量,您对基础模型进行了微调,创建了一个名为 fine-tune-A 的版本。您将 fine-tune-A 版本设置为处理器的默认版本,并使用该版本来处理文档。为 fine-tune-A 模型提供支持的基础版本是 pretrained-foundation-model-v1.0-2023-08-22 (v1.0) 稳定版。

  2. Google 发布了名为 pretrained-foundation-model-v1.2-2024-05-10 (v1.2) 的新稳定版,并宣布 v1.0 稳定版将于 2025 年 4 月 9 日弃用。

  3. 由于您将训练文档和测试文档保留在处理器的数据集中,因此您基于最新的 Google 稳定版 v1.2 对另一个版本进行微调,并将其命名为 fine-tune-B。评估其效果后,将 fine-tune-B 版本设置为处理器的新的默认版本,并停用 fine-tune-A 版本。新版本现在使用最新的受支持 Google 稳定版。

另一方面,如果您没有创建和评估自定义的 fine-tune-B 版本,Google 将于 2025 年 4 月 9 日将处理器的默认版本更新为 v1.2。由于您调用的是处理器的端点,并且未指定处理器版本,因此新的 v1.2 版本将用作新的默认版本来处理您的请求。

弃用和迁移资源

对于已弃用的解析器和处理器,您可以参阅 Document AI 弃用

如需了解迁移,请参阅以下资源:

选择处理器版本

您可以通过以下三种方式指定用于在线处理和批处理的处理器版本:

  • 如果您未指定版本,则使用处理器的默认版本。

    • 示例:projects/my-proj/locations/us/processors/my-processor:process
  • 如果您指定了版本,则系统会使用该特定版本。如果特定版本不存在,请求会失败并显示错误。

    • 例如:projects/my-proj/locations/us/processors/my-processor/processorVersions/pretrained-invoice-v1.2-2022-02-18:process
  • 如果您指定渠道,则系统会使用该渠道中的最新版本。(选项:stablerc

    • 例如:projects/my-proj/locations/us/processors/my-processor/processorVersions/stable:process

查看可用版本

控制台

  1. 在 Google Cloud 控制台的 Document AI 部分,前往处理器页面。

    转到“处理器”

  2. 在处理器列表中,点击要查看其详细信息的处理器的名称。

  3. 选择管理版本(或部署和使用)标签页,其中会显示所有可用的处理器版本。

REST

此示例展示了如何使用 processorVersions.list 方法列出处理器的可用版本。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:处理器的位置,例如:
    • us - 美国
    • eu - 欧盟
  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • PROCESSOR_ID:自定义处理器的 ID。

HTTP 方法和网址:

GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions

如需发送请求,请选择以下方式之一:

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions"

PowerShell

执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions" | Select-Object -Expand Content

响应包含 ProcessorVersions 的列表,其中包含有关每个处理器版本的信息,例如其 namestate 和其他详细信息。

{
  "processorVersions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/pretrained-ocr-v1.1-2022-09-12",
      "displayName": "Google Release Candidate",
      "state": "DEPLOYED",
      "createTime": "2022-09-13T23:39:12.156648Z",
      "googleManaged": true
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/pretrained-ocr-v1.0-2020-09-23",
      "displayName": "Google Stable",
      "state": "DEPLOYED",
      "createTime": "2022-09-12T23:35:09.829557Z",
      "googleManaged": true,
      "deprecationInfo": {
        "deprecationTime": "1970-01-01T00:00:00Z"
      }
    }
  ]
}

C#

如需了解详情,请参阅 Document AI C# API 参考文档

如需向 Document AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证

using Google.Api.Gax;
using Google.Cloud.DocumentAI.V1;
using System;

public sealed partial class GeneratedDocumentProcessorServiceClientSnippets
{
    /// <summary>Snippet for ListProcessorVersions</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void ListProcessorVersionsRequestObject()
    {
        // Create client
        DocumentProcessorServiceClient documentProcessorServiceClient = DocumentProcessorServiceClient.Create();
        // Initialize request argument(s)
        ListProcessorVersionsRequest request = new ListProcessorVersionsRequest
        {
            ParentAsProcessorName = ProcessorName.FromProjectLocationProcessor("[PROJECT]", "[LOCATION]", "[PROCESSOR]"),
        };
        // Make the request
        PagedEnumerable<ListProcessorVersionsResponse, ProcessorVersion> response = documentProcessorServiceClient.ListProcessorVersions(request);

        // Iterate over all response items, lazily performing RPCs as required
        foreach (ProcessorVersion item in response)
        {
            // Do something with each item
            Console.WriteLine(item);
        }

        // Or iterate over pages (of server-defined size), performing one RPC per page
        foreach (ListProcessorVersionsResponse page in response.AsRawResponses())
        {
            // Do something with each page of items
            Console.WriteLine("A page of results:");
            foreach (ProcessorVersion item in page)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
        }

        // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
        int pageSize = 10;
        Page<ProcessorVersion> singlePage = response.ReadPage(pageSize);
        // Do something with the page of items
        Console