Terjemahkan PDF dengan BabelDOC di base URL OpenAI custom.
Updated 2026-07-30
Translator BabelDOC memang dirancang OpenAI-compatible: tiga flag (--openai, --openai-base-url, --openai-api-key) plus --openai-model memilih endpoint dan model. Arahkan base URL ke https://api.apisrouter.com/v1 dan terjemahkan dokumen dengan Claude, DeepSeek, GLM, atau Gemini lewat satu key.
Jawaban singkat: tiga flag merutekan setiap panggilan terjemahan.
Command line BabelDOC menerima endpoint secara langsung: --openai mengaktifkan translator LLM, --openai-base-url mengatur ke mana request pergi, --openai-api-key mengautentikasi, dan --openai-model memilih id model. Contoh di README-nya sendiri menunjukkan persis set flag ini, dan catatan translation-service-nya menyatakan bahwa hanya LLM OpenAI-compatible yang didukung, yang membuat gateway OpenAI-compatible multi-vendor jadi kecocokan alami, bukan workaround. Karena id model diteruskan sebagai string biasa, apa pun yang dilayani endpoint berfungsi: dokumentasi upstream sendiri merekomendasikan model yang ramah OpenAI-compatible dari keluarga GLM dan DeepSeek, dan lewat APIsRouter model-model itu duduk berdampingan dengan id Claude dan Gemini di balik base URL yang sama.
babeldoc --files paper.pdf \
--lang-in en --lang-out zh \
--openai \
--openai-model "deepseek-v4-flash" \
--openai-base-url "https://api.apisrouter.com/v1" \
--openai-api-key "$APISROUTER_API_KEY"Bagaimana BabelDOC mengubah PDF menjadi panggilan model.
BabelDOC (funstory-ai di GitHub, sekitar 9K bintang, dari tim di balik Immersive Translate) adalah translator dokumen PDF yang mempertahankan layout: ia mem-parsing struktur dokumen, melindungi formula dan gambar, menemukan paragraf, menerjemahkannya dengan LLM, dan membangun ulang PDF sebagai versi mono terjemahan dan versi dual berdampingan. Ia dirilis sebagai CLI dan Python API, dan merupakan versi self-hosted dari layanan BabelDOC yang hosted. Fase terjemahan adalah tempat endpoint berperan. Satu dokumen menjadi banyak request chat-completions berukuran paragraf, dibatasi oleh flag --qps (default 4 query per detik) dan diproses oleh worker pool (pool-max-workers, default-nya mengikuti nilai QPS). Bentuk itu punya dua konsekuensi. Pertama, terjemahan adalah beban kerja volume: PDF panjang adalah ratusan panggilan kecil, jadi harga per-token berlipat ganda dengan cepat. Kedua, tidak seperti beban kerja retrieval di mana model kebanyakan membaca, terjemahan menulis kurang lebih sebanyak yang dibacanya, jadi harga output-token sama pentingnya dengan harga input saat Anda membandingkan id. BabelDOC juga meng-cache terjemahan, jadi menjalankan ulang dokumen memakai ulang hasil sebelumnya kecuali Anda memberikan --ignore-cache. CSV glossary (--glossary-files) mematok terminologi di seluruh run, dan --max-pages-per-part membagi dokumen sangat besar menjadi beberapa bagian yang diterjemahkan dan digabung otomatis.
Setup lengkap: flag CLI atau file config TOML.
Untuk pemakaian berulang, pengaturan yang sama hidup di file TOML yang diberikan lewat --config. Tabel [babeldoc] menerima key yang identik dalam kebab-case: openai, openai-model, openai-base-url, openai-api-key, plus opsi throughput dan output. Ini menjaga key Anda tetap keluar dari shell history dan membuat profil terjemahan bisa direproduksi lintas dokumen. Config di bawah adalah profil volume praktis: id cepat untuk sebagian besar dokumen, QPS dinaikkan agar sesuai dengan gateway pooled, dan kedua mode output dipertahankan. Tukar openai-model ke id yang lebih kuat untuk dokumen di mana nuansa lebih penting daripada throughput.
[babeldoc]
lang-in = "en-US"
lang-out = "zh-CN"
qps = 10
pool-max-workers = 10
# Translation service
openai = true
openai-model = "deepseek-v4-flash"
openai-base-url = "https://api.apisrouter.com/v1"
openai-api-key = "sk-YOUR-APISROUTER-KEY"
# Output control
no-dual = false
no-mono = false
watermark-output-mode = "no_watermark"Memilih model terjemahan.
Alur perbandingannya konkret: terjemahkan sepuluh halaman yang sama dengan dua id (cache yang di-key per run menjaga keduanya terpisah), baca kedua versi dual berdampingan, dan periksa log penggunaan per-key untuk mengetahui biaya tiap pass. Kebanyakan tim mendarat pada default cepat plus profil premium untuk dokumen yang layak mendapatkannya, keduanya sebagai file TOML.
- Dokumen volume (manual, paper yang dibaca sekali) cocok dengan deepseek-v4-flash: kualitas terjemahan bertahan untuk prosa teknis dan biaya per-halaman mendekati nol.
- Terjemahan bersasaran bahasa Cina adalah kandang sendiri untuk glm-5.2 dan keluarga DeepSeek; dokumentasi upstream sendiri menunjuk model GLM dan DeepSeek sebagai pilihan OpenAI-compatible yang berperilaku baik.
- Dokumen yang kritis terhadap nuansa (kontrak, terjemahan terbitan) membenarkan claude-sonnet-4-6 atau claude-haiku-4-5-20251001, yang melacak terminologi dan register lebih setia di sepanjang dokumen panjang.
- Token output penting di sini. Terjemahan menulis sebanyak yang dibacanya, jadi bandingkan id pada kolom harga output juga, bukan hanya input.
- Pasangkan glossary dengan id cepat. CSV glossary mematok terminologi yang sesekali menyimpang pada model cepat, yang menutup sebagian besar celah kualitas pada teks teknis.
Bayar sesuai pemakaian · di bawah harga resmi
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Model | Harga Resmi | Harga Kami |
|---|---|---|
| DeepSeek V4 Flash | $0.14 / $0.28 per M | $0.10 / $0.30 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
Mode kegagalan dan tuning throughput.
QPS adalah knob yang berinteraksi dengan gateway. Default 4 query per detik bersifat konservatif; kapasitas upstream yang pooled biasanya menopang lebih banyak, dan menaikkan --qps (dengan pool-max-workers mengikutinya) adalah cara dokumen 300 halaman berhenti memakan waktu sepanjang sore. Naikkan bertahap sambil mengamati respons 429 alih-alih langsung melompat ke angka besar secara dingin, karena paragraf yang kena rate-limit mengulang dan memperlambat seluruh run. Flag-flag itu hanya berlaku saat --openai diset. Memberikan base URL tanpa --openai membiarkan translator nonaktif, yang muncul sebagai run yang mem-parsing PDF tapi tidak pernah menerjemahkan. Id model adalah string persis terhadap listing /v1/models endpoint; salah ketik menggagalkan panggilan paragraf pertama dengan model-not-found. 401 berarti key dan base URL tidak berpasangan. Masalah layout bukan masalah endpoint. Teks yang tumpang tindih, formula yang hilang, atau tabel yang rusak terlacak ke sisi parsing PDF (coba --enhance-compatibility, --ocr-workaround untuk dokumen hasil scan, atau toggle rich-text), dan mengganti model tidak akan memperbaikinya. Sebaliknya juga berlaku: terminologi yang salah terjemahan adalah masalah model atau glossary, bukan masalah parser. Cache bisa menutupi perubahan. Setelah mengganti model, berikan --ignore-cache jika Anda ingin id baru menerjemahkan ulang konten yang sudah dicakup id lama; jika tidak, paragraf yang di-cache tetap seperti semula.
Siapa yang merutekan BabelDOC melalui gateway.
- Peneliti yang menerjemahkan paper secara massal, di mana ratusan panggilan kecil per dokumen membuat harga volume dan visibilitas penggunaan per-key jadi seluruh permainan.
- Tim yang menstandardisasi dokumentasi dwibahasa, menjalankan profil default cepat dan profil premium terhadap endpoint yang sama dengan string model berbeda.
- Pengguna di pasar di mana model terjemahan terkuat untuk pasangan bahasa mereka berada di vendor berbeda: id GLM, DeepSeek, Claude, dan Gemini semuanya di balik satu key.
- Self-hoster yang menggantikan layanan hosted untuk dokumen konfidensial, menjaga parsing tetap lokal dan hanya mengirim teks paragraf ke satu endpoint yang bisa diaudit.
- Developer tanpa akses ke billing vendor tertentu. Akses berbasis top-up tanpa syarat kartu menghilangkan ketergantungan sign-up per provider.
Verifikasi endpoint dan debug dokumen pertama.
Daftar model yang bisa dialamatkan key Anda sebelum memulai run panjang; --openai-model harus cocok persis dengan id yang dilayani. Lalu terjemahkan sesuatu yang kecil (PDF satu halaman, atau --pages 1 pada yang lebih besar) dari ujung ke ujung. 401 pada paragraf pertama berarti key tidak cocok dengan base URL. Model-not-found adalah salah ketik id. Run yang mem-parsing tapi tidak pernah memanggil endpoint berarti --openai hilang. Stall yang sering dengan pesan retry menunjuk ke QPS yang diset lebih tinggi daripada yang ditopang endpoint; turunkan lalu naikkan bertahap kembali. Setelah dokumen mengalir, konsol APIsRouter menunjukkan model per request, hitungan token, dan pengeluaran. Biaya terjemahan berskala dengan panjang dokumen di kedua arah (input dan output), dan log penggunaan per key adalah cara Anda mempelajari biaya nyata per halaman untuk setiap model alih-alih menaksirnya.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# then a one-page smoke test
babeldoc --config babeldoc.toml --files sample.pdf --pages 1Pertanyaan umum
Apakah BabelDOC mendukung endpoint OpenAI-compatible custom?
Ya, secara native. CLI mengekspos --openai-base-url dan --openai-api-key bersama --openai-model, dan config TOML menerima key yang sama. README upstream menyatakan bahwa LLM OpenAI-compatible adalah tipe translator yang didukung.
Bisakah BabelDOC menerjemahkan dengan model Claude, GLM, atau DeepSeek?
Ya. Id model diteruskan sebagai string biasa ke endpoint di balik --openai-base-url, jadi id katalog apa pun berfungsi. Dokumentasi upstream sendiri merekomendasikan model keluarga GLM dan DeepSeek sebagai pilihan yang berperilaku baik.
Berapa banyak panggilan API yang dibutuhkan satu PDF?
BabelDOC menerjemahkan potongan berukuran paragraf, jadi satu dokumen menjadi ratusan panggilan chat-completions kecil yang dibatasi oleh --qps. Baik token input maupun output berskala dengan panjang dokumen; log penggunaan per-key menunjukkan biaya persis per dokumen.
QPS berapa yang harus saya set terhadap gateway?
Mulai di dekat default 4 dan naikkan bertahap sambil mengamati respons 429; endpoint pooled biasanya menopang lebih banyak, dan pool-max-workers mengikuti nilai QPS kecuali diset terpisah. QPS lebih tinggi yang stabil adalah perbedaan antara menit dan jam pada dokumen panjang.
Saya mengganti model tapi terjemahannya tidak berubah. Mengapa?
Cache terjemahan. BabelDOC memakai ulang hasil yang di-cache per dokumen; berikan --ignore-cache setelah mengganti --openai-model agar id baru menerjemahkan ulang konten yang sebelumnya sudah dicakup.
Apakah pilihan endpoint memengaruhi layout, formula, atau tabel?
Tidak. Parsing, analisis layout, dan rekonstruksi PDF berjalan secara lokal terlepas dari endpoint-nya. Masalah layout punya flag-nya sendiri (--enhance-compatibility, --ocr-workaround); base URL hanya menentukan model mana yang menerjemahkan teksnya.