All Products
Search
Document Center

Alibaba Cloud Model Studio:Pemahaman PDF

Last Updated:Sep 02, 2026

Fitur Pemahaman PDF memungkinkan model untuk mengurai dan memahami dokumen PDF serta mengekstraksi teks dan gambar guna dianalisis. Anda dapat mengirimkan file PDF melalui URL atau dalam bentuk string yang diencode Base64.

Fitur Pemahaman PDF saat ini hanya tersedia di wilayah China (Beijing), dan panggilan melalui API Responses belum didukung. Jika Anda mengirimkan PDF menggunakan API Responses, permintaan tetap mengembalikan respons HTTP 200, tetapi file tidak dikirimkan ke model.

Model yang Didukung

qwen3.8-max, qwen3.8-flash, qwen3.8-27b

Mulai Cepat

Contoh berikut menunjukkan cara mengirimkan file PDF ke model.

Anda harus telah Mendapatkan Kunci API dan menyelesaikan Mengonfigurasi kunci API sebagai variabel lingkungan.

Kompatibel OpenAI

Python

Kode Contoh

from openai import OpenAI
import os

client = OpenAI(
    # Jika variabel lingkungan belum dikonfigurasi, ganti dengan Kunci API Model Studio Anda: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "file",
                    "file": {
                        "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf"
                    }
                },
                {
                    "type": "text",
                    "text": "Summarize this PDF document"
                }
            ]
        }
    ],
    stream=True,
    stream_options={"include_usage": True}
)

for chunk in completion:
    if not chunk.choices:
        print(f"\nUsage: {chunk.usage}")
        continue
    delta = chunk.choices[0].delta
    if hasattr(delta, "content") and delta.content:
        print(delta.content, end="", flush=True)

Node.js

Kode Contoh

import OpenAI from "openai";
import process from 'process';

const openai = new OpenAI({
    // Jika variabel lingkungan belum dikonfigurasi, ganti dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
    baseURL: 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1'
});

async function main() {
    const stream = await openai.chat.completions.create({
        model: 'qwen3.8-max',
        messages: [
            {
                role: 'user',
                content: [
                    {
                        type: 'file',
                        file: {
                            file_url: 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf'
                        }
                    },
                    {
                        type: 'text',
                        text: 'Summarize this PDF document'
                    }
                ]
            }
        ],
        stream: true,
        stream_options: { include_usage: true }
    });

    for await (const chunk of stream) {
        if (!chunk.choices?.length) {
            console.log('\nUsage:', chunk.usage);
            continue;
        }
        const delta = chunk.choices[0].delta;
        if (delta.content) {
            process.stdout.write(delta.content);
        }
    }
}

main();

HTTP

Kode Contoh

# Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.8-max",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "file",
                    "file": {
                        "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf"
                    }
                },
                {
                    "type": "text",
                    "text": "Summarize this PDF document"
                }
            ]
        }
    ],
    "stream": true,
    "stream_options": {
        "include_usage": true
    }
}'

DashScope

Python

Kode Contoh

import os
from dashscope import MultiModalConversation
import dashscope

# Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

messages = [
    {
        "role": "user",
        "content": [
            {
                "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf"
            },
            {
                "text": "Summarize this PDF document"
            }
        ]
    }
]

completion = MultiModalConversation.call(
    # Jika variabel lingkungan belum dikonfigurasi, ganti dengan Kunci API Alibaba Cloud Model Studio Anda: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3.8-max",
    messages=messages,
    stream=True,
    incremental_output=True
)

for chunk in completion:
    message = chunk.output.choices[0].message
    if message.content:
        print(message.content[0]["text"], end="", flush=True)

HTTP

Kode Contoh

# Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
    "model": "qwen3.8-max",
    "input": {
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf"
                    },
                    {
                        "text": "Summarize this PDF document"
                    }
                ]
            }
        ]
    },
    "parameters": {
        "incremental_output": true,
        "result_format": "message"
    }
}'

Menggunakan Input Base64

Jika Anda tidak dapat menyediakan URL, Anda dapat mengirimkan file PDF sebagai string yang diencode Base64. Bidang filename wajib diisi saat menggunakan file_data.

CatatanEncoding Base64 meningkatkan ukuran data sekitar sepertiga. Misalnya, file berukuran 150 MB menjadi sekitar 200 MB setelah diencode, yang melebihi batas ukuran badan permintaan. Untuk file besar, gunakan metode URL.

import base64
from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

# Baca dan encode file PDF
with open("report.pdf", "rb") as f:
    pdf_base64 = base64.b64encode(f.read()).decode("utf-8")

completion = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "file",
                    "file": {
                        "file_data": f"data:application/pdf;base64,{pdf_base64}",
                        "filename": "report.pdf"
                    }
                },
                {
                    "type": "text",
                    "text": "What are the key findings in this report?"
                }
            ]
        }
    ]
)

print(completion.choices[0].message.content)
import base64
import os
from dashscope import MultiModalConversation
import dashscope

# Berikut adalah URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda saat memanggil API. URL berbeda-beda tergantung wilayah.
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

# Baca dan encode file PDF
with open("report.pdf", "rb") as f:
    pdf_base64 = base64.b64encode(f.read()).decode("utf-8")

messages = [
    {
        "role": "user",
        "content": [
            {
                "file_data": f"data:application/pdf;base64,{pdf_base64}",
                "filename": "report.pdf"
            },
            {
                "text": "What are the key findings in this report?"
            }
        ]
    }
]

response = MultiModalConversation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3.8-max",
    messages=messages
)

print(response.output.choices[0].message.content[0]["text"])

Parameter Permintaan

File input ditentukan sebagai item konten dengan type: "file" (kompatibel OpenAI) atau sebagai item konten yang berisi file_url/file_data (DashScope).

CatatanBidang URL hanya menerima string. Array URL tidak didukung.

Format kompatibel OpenAI:

Parameter

Type

Wajib

Deskripsi

file_url

string

Bersyarat

URL file PDF yang akan diunduh. Saling eksklusif dengan file_data.

file_data

string

Bersyarat

Data PDF yang diencode Base64 dalam format data:application/pdf;base64,.... Saling eksklusif dengan file_url.

filename

string

Bersyarat

Nama file. Wajib diisi saat menggunakan file_data.

file_format

string

Tidak

Format file. Saat ini hanya pdf yang didukung. Nilai default-nya adalah pdf.

Batasan

Item

Batas

Ukuran file maksimum

150 MB

Jumlah halaman maksimum

500 halaman

CatatanParsing PDF mungkin memerlukan waktu lebih lama dibandingkan permintaan teks biasa, dengan timeout token pertama hingga 300 detik. Kami merekomendasikan penggunaan keluaran streaming untuk menghindari penantian yang lama.

Penagihan

Penagihan mencakup hal-hal berikut:

  • Token input model: Teks yang diekstraksi dari PDF dan gambar yang diurai dari halaman dihitung sebagai token input dan ditagih sesuai laju token input standar model tersebut.
  • Biaya parsing dokumen: Dikenakan per halaman dokumen PDF yang diurai, sesuai dengan item metering document_parsing (pdf).China (Beijing): $0,00275 per halaman.

Untuk harga token input dan output tiap model, lihat Harga inferensi model.