داشبورد توسعه‌دهنده
پرسش از هوش مصنوعی
پرسش از هوش مصنوعی

مرجع API تشخیص متن (OCR) ​

API تشخیص متن (OCR) محتوای ساختاریافته را با Mistral OCR 4 از اسناد و تصاویر استخراج می‌کند. مدل mistral-ocr-4-0 علاوه بر Markdown، اطلاعات layout-aware مانند bounding box، طبقه‌بندی بلوک و confidence را برمی‌گرداند و از ۱۷۰ زبان پشتیبانی می‌کند.

توجه

endpoint v1/ocr یک endpoint استاندارد OpenAI نیست. این یک سرویس تخصصی است که توسط AvalAI برای پردازش اسناد اضافه شده است.

به‌روزرسانی alias: mistral-ocr-latest اکنون به mistral-ocr-4-0 اشاره می‌کند و با قیمت OCR 4 محاسبه می‌شود. برای استقرار قابل بازتولید از mistral-ocr-4-0 استفاده کنید.

Endpoint ​

POST https://api.avalai.ir/v1/ocr

بدنه درخواست ​

پارامترنوعالزامیتوضیحات
modelstringبلهمدل OCR مورد استفاده (مثلا "mistral-ocr-4-0")
documentobjectبلهسند برای پردازش. باید شامل type و فیلد URL باشد
document.typestringبلهیا "document_url" برای PDF/اسناد یا "image_url" برای تصاویر
document.document_urlstringمشروطURL سند (اگر type برابر "document_url" باشد الزامی است)
document.image_urlstringمشروطURL تصویر (اگر type برابر "image_url" باشد الزامی است)
pagesarrayخیرلیست شاخص‌های صفحات خاص برای پردازش (از 0 شروع می‌شود)
include_image_base64booleanخیرآیا تصاویر استخراج شده به صورت base64 برگردانده شوند
image_limitintegerخیرحداکثر تعداد تصاویر برای بازگشت
image_min_sizeintegerخیرحداقل اندازه (به پیکسل) برای تصاویر
idstringخیرشناسه اختیاری برای درخواست
document_annotation_formatobjectخیرفرمت خروجی برای حاشیه‌نویسی سطح سند. رجوع کنید به فرمت‌های پاسخ
bbox_annotation_formatobjectخیرفرمت خروجی برای حاشیه‌نویسی کادر محدوده. رجوع کنید به فرمت‌های پاسخ
extract_headerbooleanخیرآیا سرصفحه‌های سند استخراج شوند. پیش‌فرض: false
extract_footerbooleanخیرآیا پاورقی‌های سند استخراج شوند. پیش‌فرض: false
table_formatstringخیرفرمت جداول استخراج شده: "markdown" یا "html". پیش‌فرض: "markdown"

مدل و قیمت‌گذاری ​

شناسه مدلendpointاستخراج OCRAnnotation
mistral-ocr-4-0v1/ocr$0.004/صفحه$0.005/صفحه annotation‌شده
mistral-ocr-latestv1/ocralias برای mistral-ocr-4-0همان قیمت OCR 4

نمونه‌های فرمت سند ​

برای PDF و اسناد:

json
{
  "type": "document_url",
  "document_url": "https://example.com/document.pdf"

}

برای تصاویر:

json
{
  "type": "image_url",
  "image_url": "https://example.com/image.png"

}

برای محتوای base64:

json
{
  "type": "document_url",
  "document_url": "data:application/pdf;base64,JVBERi0xLjQKJ..."
}

فرمت‌های پاسخ ​

API OCR از خروجی ساختاریافته JSON از طریق پارامترهای document_annotation_format و bbox_annotation_format پشتیبانی می‌کند. این امکان را به شما می‌دهد که نتایج OCR را به جای markdown ساده در فرمت JSON مشخص دریافت کنید.

انواع فرمت ​

نوعتوضیحات
textپیش‌فرض. خروجی متن markdown را برمی‌گرداند
json_objectحالت JSON را فعال می‌کند. خروجی مدل JSON معتبر خواهد بود. باید از طریق پیام سیستم یا کاربر به مدل دستور دهید که JSON تولید کند
json_schemaحالت JSON Schema را فعال می‌کند. تضمین می‌کند که خروجی از JSON Schema ارائه شده پیروی می‌کند

شی فرمت پاسخ ​

json
{
  "type": "json_schema",
  "json_schema": {
    "name": "your_schema_name",
    "schema": {
      "type": "object",
      "properties": {
        "field1": {
          "type": "string"
        },
        "field2": {
          "type": "number"
        }
      },
      "required": [
        "field1",
        "field2"
      ]
    }
  }
}

مثال: استخراج داده ساختاریافته ​

می‌توانید از حالت JSON Schema برای استخراج داده ساختاریافته از اسناد استفاده کنید:

json
{
  "model": "mistral-ocr-4-0",
  "document": {
    "type": "document_url",
    "document_url": "https://example.com/invoice.pdf"

  },
  "document_annotation_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "invoice_data",
      "schema": {
        "type": "object",
        "properties": {
          "invoice_number": { "type": "string" },
          "date": { "type": "string" },
          "total_amount": { "type": "number" },
          "vendor_name": { "type": "string" },
          "line_items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": { "type": "string" },
                "quantity": { "type": "number" },
                "unit_price": { "type": "number" }
              }
            }
          }
        },
        "required": ["invoice_number", "date", "total_amount"]
      }
    }
  }
}

هنگام استفاده از document_annotation_format، خروجی ساختاریافته در فیلد document_annotation پاسخ به صورت رشته JSON برگردانده می‌شود.

نمونه‌ها ​

درخواست ساده OCR ​

bash
curl https://api.avalai.ir/v1/ocr \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '{
    "model": "mistral-ocr-4-0",
    "document": {
      "type": "document_url",
      "document_url": "https://arxiv.org/pdf/2201.04234"
    }
  }'
python
import requests
import os

api_key = os.getenv("AVALAI_API_KEY")

response = requests.post(
    "https://api.avalai.ir/v1/ocr",
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
    json={
        "model": "mistral-ocr-4-0",
        "document": {
            "type": "document_url",
            "document_url": "https://arxiv.org/pdf/2201.04234",
        },
    },
)

result = response.json()
for page in result["pages"]:
    print(f"Page {page['index']}: {page['markdown'][:100]}...")
javascript
const response = await fetch("https://api.avalai.ir/v1/ocr", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.AVALAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mistral-ocr-4-0",
    document: {
      type: "document_url",
      document_url: "https://arxiv.org/pdf/2201.04234"
    }
  })
});

const result = await response.json();
result.pages.forEach(page => {
  console.log(`Page ${page.index}: ${page.markdown.substring(0, 100)}...`);
});
go
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

type OCRRequest struct {
	Model    string   `json:"model"`
	Document Document `json:"document"`
}

type Document struct {
	Type        string `json:"type"`
	DocumentURL string `json:"document_url"`
}

type OCRResponse struct {
	Pages []struct {
		Index    int    `json:"index"`
		Markdown string `json:"markdown"`
	} `json:"pages"`
	Model  string `json:"model"`
	Object string `json:"object"`
}

func main() {
	apiKey := "YOUR_AVALAI_API_KEY"
	url := "https://api.avalai.ir/v1/ocr"

	reqBody := OCRRequest{
		Model: "mistral-ocr-4-0",
		Document: Document{
			Type:        "document_url",
			DocumentURL: "https://arxiv.org/pdf/2201.04234",
		},
	}

	jsonData, _ := json.Marshal(reqBody)
	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("Error: %v\n", err)
		return
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	var result OCRResponse
	json.Unmarshal(body, &result)

	for _, page := range result.Pages {
		fmt.Printf("Page %d: %s...\n", page.Index, page.Markdown[:100])
	}
}
php
<?php

$apiKey = getenv('AVALAI_API_KEY');
$apiUrl = 'https://api.avalai.ir/v1/ocr';

$data = [
    'model' => 'mistral-ocr-4-0',
    'document' => [
        'type' => 'document_url',
        'document_url' => 'https://arxiv.org/pdf/2201.04234'
    ]
];

$jsonData = json_encode($data);

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey,
    'Content-Length: ' . strlen($jsonData)
]);

$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = curl_error($ch);
curl_close($ch);

if ($err) {
    echo "cURL Error: " . $err;
} elseif ($httpcode >= 400) {
    echo "HTTP Error: " . $httpcode . "\n";
    echo $response;
} else {
    $responseData = json_decode($response, true);
    foreach ($responseData['pages'] as $page) {
        echo "Page " . $page['index'] . ": " . substr($page['markdown'], 0, 100) . "...\n";
    }
}
?>

پردازش صفحات خاص ​

bash
curl https://api.avalai.ir/v1/ocr \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '{
    "model": "mistral-ocr-4-0",
    "document": {
      "type": "document_url",
      "document_url": "https://arxiv.org/pdf/2201.04234"
    },
    "pages": [0, 1, 2]
  }'
python
import requests

response = requests.post(
    "https://api.avalai.ir/v1/ocr",
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
    json={
        "model": "mistral-ocr-4-0",
        "document": {
            "type": "document_url",
            "document_url": "https://arxiv.org/pdf/2201.04234",
        },
        "pages": [0, 1, 2],
    },
)

result = response.json()
javascript
const response = await fetch("https://api.avalai.ir/v1/ocr", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.AVALAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mistral-ocr-4-0",
    document: {
      type: "document_url",
      document_url: "https://arxiv.org/pdf/2201.04234"
    },
    pages: [0, 1, 2]
  })
});

const result = await response.json();

استخراج تصاویر با OCR ​

bash
curl https://api.avalai.ir/v1/ocr \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '{
    "model": "mistral-ocr-4-0",
    "document": {
      "type": "document_url",
      "document_url": "https://arxiv.org/pdf/2201.04234"
    },
    "include_image_base64": true,
    "image_limit": 10,
    "image_min_size": 100
  }'
python
import requests

response = requests.post(
    "https://api.avalai.ir/v1/ocr",
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
    json={
        "model": "mistral-ocr-4-0",
        "document": {
            "type": "document_url",
            "document_url": "https://arxiv.org/pdf/2201.04234",
        },
        "include_image_base64": True,
        "image_limit": 10,
        "image_min_size": 100,
    },
)

result = response.json()
for page in result["pages"]:
    if page.get("images"):
        print(f"Page {page['index']} has {len(page['images'])} images")
javascript
const response = await fetch("https://api.avalai.ir/v1/ocr", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.AVALAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mistral-ocr-4-0",
    document: {
      type: "document_url",
      document_url: "https://arxiv.org/pdf/2201.04234"
    },
    include_image_base64: true,
    image_limit: 10,
    image_min_size: 100
  })
});

const result = await response.json();
result.pages.forEach(page => {
  if (page.images) {
    console.log(`Page ${page.index} has ${page.images.length} images`);
  }
});

پردازش یک تصویر ​

bash
curl https://api.avalai.ir/v1/ocr \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '{
    "model": "mistral-ocr-4-0",
    "document": {
      "type": "image_url",
      "image_url": "https://example.com/image.png"
    }
  }'
python
import requests

response = requests.post(
    "https://api.avalai.ir/v1/ocr",
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
    json={
        "model": "mistral-ocr-4-0",
        "document": {"type": "image_url", "image_url": "https://example.com/image.png"},
    },
)

result = response.json()
print(result["pages"][0]["markdown"])
javascript
const response = await fetch("https://api.avalai.ir/v1/ocr", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.AVALAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mistral-ocr-4-0",
    document: {
      type: "image_url",
      image_url: "https://example.com/image.png"
    }
  })
});

const result = await response.json();
console.log(result.pages[0].markdown);

استفاده از Mistral AI SDK ​

شما همچنین می‌توانید از SDK رسمی Mistral AI برای دسترسی به endpoint OCR با پیکربندی آن برای استفاده از URL سرور AvalAI استفاده کنید. این با SDK میسترال در پایتون و سایر زبان‌ها کار می‌کند، تا زمانی که SDK از URLهای سرور سفارشی پشتیبانی کند.

python
from mistralai import Mistral

client = Mistral(server_url="https://api.avalai.ir", api_key="your-avalai-api-key")

document_param = {
    "type": "document_url",
    "document_url": "https://arxiv.org/pdf/1805.04770",
}

ocr_response = client.ocr.process(
    model="mistral-ocr-4-0",
    document=document_param,
    pages=list(range(0, 100)),  # پردازش تا 100 صفحه
)

print(ocr_response)

توجه

همین رویکرد برای سایر SDKهای Mistral AI در زبان‌های مختلف (JavaScript، Go و غیره) نیز کار می‌کند، تا زمانی که اجازه تنظیم URL سرور سفارشی را بدهند. به سادگی SDK را برای اشاره به https://api.avalai.ir پیکربندی کنید و از کلید API AvalAI خود استفاده کنید.

برای اطلاعات بیشتر در مورد استفاده از SDKهای Mistral AI با AvalAI، راهنمای Mistral AI SDK را مشاهده کنید.

خروجی JSON ساختاریافته ​

از پارامتر document_annotation_format برای استخراج داده ساختاریافته از اسناد استفاده کنید. این برای پردازش فاکتورها، رسیدها، فرم‌ها و سایر اسناد ساختاریافته مفید است.

bash
curl https://api.avalai.ir/v1/ocr \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '{
    "model": "mistral-ocr-4-0",
    "document": {
      "type": "document_url",
      "document_url": "https://example.com/invoice.pdf"
    },
    "document_annotation_format": {
      "type": "json_schema",
      "json_schema": {
        "name": "invoice_data",
        "schema": {
          "type": "object",
          "properties": {
            "invoice_number": { "type": "string" },
            "date": { "type": "string" },
            "total_amount": { "type": "number" },
            "vendor_name": { "type": "string" }
          },
          "required": ["invoice_number", "total_amount"]
        }
      }
    }
  }'
python
import requests
import json
import os

api_key = os.getenv("AVALAI_API_KEY")

# تعریف JSON Schema برای استخراج ساختاریافته
invoice_schema = {
    "type": "json_schema",
    "json_schema": {
        "name": "invoice_data",
        "schema": {
            "type": "object",
            "properties": {
                "invoice_number": {"type": "string"},
                "date": {"type": "string"},
                "total_amount": {"type": "number"},
                "vendor_name": {"type": "string"},
                "line_items": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "description": {"type": "string"},
                            "quantity": {"type": "number"},
                            "unit_price": {"type": "number"},
                        },
                    },
                },
            },
            "required": ["invoice_number", "total_amount"],
        },
    },
}

response = requests.post(
    "https://api.avalai.ir/v1/ocr",
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
    json={
        "model": "mistral-ocr-4-0",
        "document": {
            "type": "document_url",
            "document_url": "https://example.com/invoice.pdf",
        },
        "document_annotation_format": invoice_schema,
    },
)

result = response.json()

# داده ساختاریافته در document_annotation به صورت رشته JSON است
if result.get("document_annotation"):
    invoice_data = json.loads(result["document_annotation"])
    print(f"شماره فاکتور: {invoice_data.get('invoice_number')}")
    print(f"مبلغ کل: {invoice_data.get('total_amount')}")
javascript
const invoiceSchema = {
  type: "json_schema",
  json_schema: {
    name: "invoice_data",
    schema: {
      type: "object",
      properties: {
        invoice_number: { type: "string" },
        date: { type: "string" },
        total_amount: { type: "number" },
        vendor_name: { type: "string" },
        line_items: {
          type: "array",
          items: {
            type: "object",
            properties: {
              description: { type: "string" },
              quantity: { type: "number" },
              unit_price: { type: "number" }
            }
          }
        }
      },
      required: ["invoice_number", "total_amount"]
    }
  }
};

const response = await fetch("https://api.avalai.ir/v1/ocr", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.AVALAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mistral-ocr-4-0",
    document: {
      type: "document_url",
      document_url: "https://example.com/invoice.pdf"
    },
    document_annotation_format: invoiceSchema
  })
});

const result = await response.json();

// داده ساختاریافته در document_annotation به صورت رشته JSON است
if (result.document_annotation) {
  const invoiceData = JSON.parse(result.document_annotation);
  console.log(`شماره فاکتور: ${invoiceData.invoice_number}`);
  console.log(`مبلغ کل: ${invoiceData.total_amount}`);
}

جداول در فرمت HTML ​

می‌توانید جداول را به جای markdown در فرمت HTML استخراج کنید:

bash
curl https://api.avalai.ir/v1/ocr \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '{
    "model": "mistral-ocr-4-0",
    "document": {
      "type": "document_url",
      "document_url": "https://example.com/document-with-tables.pdf"
    },
    "table_format": "html"
  }'
python
import requests
import os

api_key = os.getenv("AVALAI_API_KEY")

response = requests.post(
    "https://api.avalai.ir/v1/ocr",
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"},
    json={
        "model": "mistral-ocr-4-0",
        "document": {
            "type": "document_url",
            "document_url": "https://example.com/document-with-tables.pdf",
        },
        "table_format": "html",  # جداول در فرمت HTML برگردانده می‌شوند
    },
)

result = response.json()
for page in result["pages"]:
    print(page["markdown"])  # جداول در تگ‌های <table> HTML خواهند بود
javascript
const response = await fetch("https://api.avalai.ir/v1/ocr", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.AVALAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mistral-ocr-4-0",
    document: {
      type: "document_url",
      document_url: "https://example.com/document-with-tables.pdf"
    },
    table_format: "html"  // جداول در فرمت HTML برگردانده می‌شوند
  })
});

const result = await response.json();
result.pages.forEach(page => {
  console.log(page.markdown);  // جداول در تگ‌های <table> HTML خواهند بود
});

فرمت پاسخ ​

json
{
  "pages": [
    {
      "index": 0,
      "markdown": "# عنوان سند\n\nمحتوای متنی استخراج شده...",
      "dimensions": {
        "dpi": 200,
        "height": 2200,
        "width": 1700
      },
      "images": [
        {
          "image_base64": "base64string...",
          "bbox": {
            "x": 100,
            "y": 200,
            "width": 300,
            "height": 400
          }
        }
      ]
    }
  ],
  "model": "mistral-ocr-4-0",
  "usage_info": {
    "pages_processed": 29,
    "doc_size_bytes": 3002783
  },
  "document_annotation": null,
  "object": "ocr"
}

فیلدهای پاسخ ​

فیلدنوعتوضیحات
pagesarrayلیست صفحات پردازش شده با محتوای استخراج شده
pages[].indexintegerشماره صفحه (از 0 شروع می‌شود)
pages[].markdownstringمتن استخراج شده در قالب Markdown
pages[].dimensionsobjectابعاد صفحه (dpi، ارتفاع، عرض به پیکسل)
pages[].imagesarrayتصاویر استخراج شده از صفحه (اگر include_image_base64=true)
modelstringمدل استفاده شده برای پردازش OCR
usage_infoobjectآمار پردازش (صفحات پردازش شده، اندازه سند)
usage_info.pages_processedintegerتعداد کل صفحات پردازش شده
usage_info.doc_size_bytesintegerاندازه سند به بایت
document_annotationobjectتوضیحات اختیاری در سطح سند
objectstringهمیشه "ocr" برای پاسخ‌های OCR

شی ابعاد صفحه ​

فیلدنوعتوضیحات
dpiintegerنقطه در هر اینچ (وضوح) صفحه
heightintegerارتفاع صفحه به پیکسل
widthintegerعرض صفحه به پیکسل

شی تصویر ​

فیلدنوعتوضیحات
image_base64stringداده تصویر کدگذاری شده با base64
bboxobjectمختصات کادر محدوده تصویر
bbox.xintegerمختصات X گوشه بالا-چپ
bbox.yintegerمختصات Y گوشه بالا-چپ
bbox.widthintegerعرض تصویر به پیکسل
bbox.heightintegerارتفاع تصویر به پیکسل

مدیریت خطا ​

API ممکن است کدهای خطای مختلفی برگرداند:

کد وضعیتتوضیحات
400درخواست نامعتبر - پارامترهای نامعتبر یا URL سند اشتباه
401غیرمجاز - کلید API نامعتبر یا وجود ندارد
403ممنوع - مجوزهای ناکافی یا سهمیه تمام شده
404پیدا نشد - URL سند قابل دسترسی نیست
413بار بیش از حد بزرگ - اندازه سند از حد مجاز بیشتر است
429درخواست‌های بیش از حد - محدودیت نرخ فراتر رفته
500خطای داخلی سرور - خطای پردازش سمت سرور

برای اطلاعات بیشتر در مورد مدیریت خطاها، راهنمای مدیریت خطا را مشاهده کنید.

بهترین روش‌ها ​

  1. مشخص کردن صفحات: هنگام پردازش اسناد بزرگ، از پارامتر pages برای استخراج فقط صفحات مورد نیاز استفاده کنید
  2. استخراج تصویر: فقط زمانی که به تصاویر نیاز دارید include_image_base64 را true تنظیم کنید تا اندازه پاسخ کاهش یابد
  3. فیلتر تصاویر: از image_min_size برای فیلتر کردن تصاویر کوچک و نامرتبط مانند آیکون‌ها استفاده کنید
  4. URLهای سند: اطمینان حاصل کنید که URLهای سند به صورت عمومی قابل دسترسی هستند یا برای اسناد خصوصی از محتوای base64 استفاده کنید
  5. مدیریت پاسخ‌های بزرگ: برای مدیریت بارهای بزرگ پاسخ هنگام استخراج تصاویر از اسناد آماده باشید
  6. کش کردن نتایج: برای اسناد با دسترسی مکرر، کش کردن نتایج OCR را در نظر بگیرید
  7. استفاده از JSON Schema برای داده ساختاریافته: هنگام استخراج اطلاعات ساختاریافته (فاکتورها، فرم‌ها، رسیدها)، از document_annotation_format با JSON Schema برای خروجی یکنواخت و تایپ‌شده استفاده کنید
  8. جداول HTML برای یکپارچه‌سازی وب: زمانی که نیاز به نمایش جداول استخراج شده در برنامه‌های وب دارید، از table_format: "html" استفاده کنید

منابع مرتبط ​