Jenis tugas
Pengenalan teks pada gambar
Halaman ini diterjemahkan otomatis dari versi bahasa Mandarin dan mungkin mengandung kesalahan. Versi bahasa Mandarin menjadi acuan utama.
Kirim gambar captcha berupa karakter dalam format Base64, lalu terima huruf dan angka di dalam gambar (solution.text). ImageToTextTaskOcrBase dikenai biaya 2 poin (≈ $0.30 / 1k) per gambar dan bersifat sinkron: satu permintaan createTask langsung mengembalikan hasilnya. Jika Anda memerlukan ketentuan seperti huruf besar/kecil, hanya angka, atau ekspresi hitung, gunakan ImageToTextTask yang asinkron.
https://api.yescaptcha.com/createTaskEndpoint globalhttps://cn.yescaptcha.com/createTaskEndpoint TiongkokIsi permintaan berupa JSON, dengan autentikasi memakai clientKey.
Jenis tugas dan harga
Section titled “Jenis tugas dan harga”| Jenis tugas | Harga | Mode | Catatan |
|---|---|---|---|
ImageToTextTaskOcrBase | $0.30 / 1k; 2 poin/tugas · ¥2 / 1k | Sinkron | |
ImageToTextTaskMuggle | $0.30 / 1k; 2 poin/tugas · ¥2 / 1k | Sinkron | Tidak mendukung opsi case/numeric; gunakan project_name untuk memilih model khusus |
ImageToTextTask | $0.60 / 1k; 4 poin/tugas · ¥4 / 1k | Asinkron | |
ImageToTextTaskM1 | $2.25 / 1k; 15 poin/tugas · ¥15 / 1k | Asinkron |
Harga dalam dolar AS adalah perkiraan dengan kurs US$1 ≈ ¥6.67; tugas ditagih dalam poin.
| Kebutuhan | Gunakan |
|---|---|
| Captcha huruf dan angka biasa, paling murah dan paling cepat | ImageToTextTaskOcrBase, ImageToTextTaskMuggle (sinkron) |
| Dikenali dengan model yang dibuat khusus untuk Anda | ImageToTextTaskMuggle dengan project_name |
| Perlu membedakan huruf besar/kecil, hanya angka, menghitung ekspresi, membatasi panjang | ImageToTextTask, ImageToTextTaskM1 (asinkron) |
Setiap jenis memakai model dan jalur yang berbeda, sehingga hasil untuk gambar yang sama bisa berbeda. Coba semuanya terlebih dahulu, lalu pilih yang terbaik.
Parameter permintaan
Section titled “Parameter permintaan”| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
type | string | Ya | Jenis tugas; lihat "Jenis tugas dan harga" di halaman ini |
body | string | Ya | Gambar yang dienkode Base64 tanpa prefiks data:image/...;base64, dan tanpa baris baru |
project_name | string | Tidak | Nama model khusus, hanya didukung oleh ImageToTextTaskMuggle. Jangan diisi untuk memakai model alfanumerik umum. Hubungi Dukungan untuk model khusus (hanya ImageToTextTaskMuggle) |
phrase | boolean | Tidak | true berarti jawaban berisi setidaknya satu spasi (hanya ImageToTextTask, ImageToTextTaskM1) |
case | boolean | Tidak | true berarti jawaban peka huruf besar/kecil (hanya ImageToTextTask, ImageToTextTaskM1) |
numeric | integer | Tidak | 0 tanpa persyaratan; 1 hanya angka; 2 tanpa angka (hanya ImageToTextTask, ImageToTextTaskM1) |
math | boolean | Tidak | true berarti gambar berupa ekspresi matematika dan jawabannya adalah hasilnya (hanya ImageToTextTask, ImageToTextTaskM1) |
minLength | integer | Tidak | Panjang jawaban minimum; 0 berarti tanpa batas (hanya ImageToTextTask, ImageToTextTaskM1) |
maxLength | integer | Tidak | Panjang jawaban maksimum; 0 berarti tanpa batas (hanya ImageToTextTask, ImageToTextTaskM1) |
body adalah encoding Base64 dari file gambar. Gambar WebP dikonversi secara otomatis.
Contoh permintaan
Section titled “Contoh permintaan”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}Kode lengkap (membaca captcha.png di direktori saat ini):
# Replace BASE64_IMAGE with the Base64-encoded imagecurl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}'import osimport base64
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): return call("createTask", {"task": task})["solution"]
# Base64-encode the image (no data: prefix)with open("captcha.png", "rb") as f: image_b64 = base64.b64encode(f.read()).decode()
solution = solve({ "type": "ImageToTextTaskOcrBase", "body": image_b64,})print(solution["text"])import { readFileSync } from 'node:fs';
const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { solution } = await call('createTask', { task }); return solution;}
// Base64-encode the image (no data: prefix)const imageB64 = readFileSync('captcha.png').toString('base64');
const solution = await solve({ type: "ImageToTextTaskOcrBase", body: imageB64,});console.log(solution.text);Tugas asinkron dengan ketentuan tambahan:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTask", "body": "BASE64_IMAGE", "case": true, "numeric": 0, "minLength": 4, "maxLength": 6 }}Jenis sinkron langsung mengembalikan hasil di createTask:
{ "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b"}Jenis asinkron (ImageToTextTask, ImageToTextTaskM1) lebih dulu mengembalikan taskId, lalu lakukan polling (memeriksa berkala) dengan getTaskResult setiap 5 detik. Setelah selesai, format solution sama.
| Kolom | Tipe | Deskripsi |
|---|---|---|
text | string | Teks yang berhasil dikenali |
Model khusus
Section titled “Model khusus”Model umum dapat dipakai untuk semua captcha huruf dan angka, tetapi akurasinya sedikit lebih rendah daripada model yang dilatih khusus. Jika gambar yang ingin Anda kenali selalu memiliki satu gaya yang sama, hubungi dukungan untuk membuat model khusus, lalu tentukan modelnya dengan ImageToTextTaskMuggle dan project_name.
Pertanyaan umum
Section titled “Pertanyaan umum”Apakah poin dipotong jika hasilnya salah?
Section titled “Apakah poin dipotong jika hasilnya salah?”Untuk jenis sinkron, poin dipotong setiap kali hasil dikembalikan, meskipun hasilnya salah. Anda bisa membandingkan dengan jenis lain, atau meminta model khusus.
Saya mendapat ERROR_ZERO_CAPTCHA_FILESIZE atau ERROR_PARSE_IMAGE_FAIL?
Section titled “Saya mendapat ERROR_ZERO_CAPTCHA_FILESIZE atau ERROR_PARSE_IMAGE_FAIL?”Base64 gambar tidak lengkap, atau memakai awalan data: atau ada baris baru. Periksa encoding-nya, lihat Kode error.
Contoh terkait
Section titled “Contoh terkait”- Mulai cepat: mengirim permintaan pertama dengan
ImageToTextTaskOcrBase - Contoh Python