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.
Parameter | Type | Wajib | Deskripsi |
|---|---|---|---|
file_url | string | Bersyarat | URL file PDF yang akan diunduh. Saling eksklusif dengan |
file_data | string | Bersyarat | Data PDF yang diencode Base64 dalam format |
filename | string | Bersyarat | Nama file. Wajib diisi saat menggunakan |
file_format | string | Tidak | Format file. Saat ini hanya |
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.