ประเภทงาน
การอ่านตัวอักษรและตัวเลขจากภาพ
หน้านี้แปลด้วยเครื่องจากเวอร์ชันภาษาจีน อาจมีข้อผิดพลาด โปรดยึดเวอร์ชันภาษาจีนเป็นหลัก
ส่งภาพ CAPTCHA แบบตัวอักษรเป็น Base64 แล้วรับตัวอักษรภาษาอังกฤษและตัวเลขในภาพกลับมา (solution.text) ImageToTextTaskOcrBase ราคาภาพละ 2 พอยต์ (≈ $0.30 / 1k) และคืนผลแบบซิงโครนัส คือได้ผลลัพธ์จากคำขอ createTask เพียงครั้งเดียว หากต้องการกำหนดเงื่อนไข เช่น ตัวพิมพ์ใหญ่เล็ก ตัวเลขล้วน หรือนิพจน์คำนวณ ให้ใช้ ImageToTextTask แบบอะซิงโครนัส
https://api.yescaptcha.com/createTaskendpoint ทั่วโลกhttps://cn.yescaptcha.com/createTaskendpoint จีนเนื้อหาคำขอเป็น JSON และยืนยันตัวตนด้วย clientKey
ประเภทงานและราคา
หัวข้อที่มีชื่อว่า “ประเภทงานและราคา”| ประเภทงาน | ราคา | รูปแบบการคืนผลลัพธ์ | หมายเหตุ |
|---|---|---|---|
ImageToTextTaskOcrBase | $0.30 / 1k; 2 พอยต์/งาน · ¥2 / 1k | แบบซิงโครนัส | |
ImageToTextTaskMuggle | $0.30 / 1k; 2 พอยต์/งาน · ¥2 / 1k | แบบซิงโครนัส | ไม่รองรับตัวเลือก case และ numeric ใช้ project_name เพื่อเลือกโมเดลที่กำหนดเองได้ |
ImageToTextTask | $0.60 / 1k; 4 พอยต์/งาน · ¥4 / 1k | แบบอะซิงโครนัส | |
ImageToTextTaskM1 | $2.25 / 1k; 15 พอยต์/งาน · ¥15 / 1k | แบบอะซิงโครนัส |
ราคาเป็นดอลลาร์สหรัฐเป็นเพียงค่าประมาณที่ US$1 ≈ ¥6.67 งานจะถูกหักเป็นพอยต์
| ความต้องการ | ประเภทที่ใช้ |
|---|---|
| CAPTCHA ตัวอักษรและตัวเลขทั่วไป ราคาถูกและเร็วที่สุด | ImageToTextTaskOcrBase, ImageToTextTaskMuggle (แบบซิงโครนัส) |
| ใช้โมเดลที่สร้างเฉพาะสำหรับคุณ | ImageToTextTaskMuggle พร้อม project_name |
| ต้องแยกตัวพิมพ์ใหญ่เล็ก ตัวเลขล้วน คำนวณนิพจน์ หรือจำกัดความยาว | ImageToTextTask, ImageToTextTaskM1 (แบบอะซิงโครนัส) |
แต่ละประเภทงานใช้โมเดลและเส้นทางที่ต่างกัน ผลลัพธ์กับภาพประเภทเดียวกันจึงอาจไม่เท่ากัน ลองทดสอบหลายประเภทก่อนเลือกใช้
พารามิเตอร์ของคำขอ
หัวข้อที่มีชื่อว่า “พารามิเตอร์ของคำขอ”| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
type | string | ใช่ | ประเภทงาน ดูค่าที่ใช้ได้ในหัวข้อ "ประเภทงานและราคา" ของหน้านี้ |
body | string | ใช่ | รูปภาพที่เข้ารหัส Base64 โดยไม่มีคำนำหน้า data:image/...;base64, และไม่มีการขึ้นบรรทัดใหม่ |
project_name | string | ไม่ | ชื่อโมเดลที่กำหนดเอง รองรับเฉพาะ ImageToTextTaskMuggle หากไม่ระบุจะใช้โมเดลตัวอักษรและตัวเลขทั่วไป หากต้องการโมเดลที่กำหนดเองโปรดติดต่อฝ่ายสนับสนุน (เฉพาะ ImageToTextTaskMuggle) |
phrase | boolean | ไม่ | true หมายถึงคำตอบมีช่องว่างอย่างน้อยหนึ่งช่อง (เฉพาะ ImageToTextTask, ImageToTextTaskM1) |
case | boolean | ไม่ | true หมายถึงคำตอบแยกแยะตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก (เฉพาะ ImageToTextTask, ImageToTextTaskM1) |
numeric | integer | ไม่ | 0 ไม่มีข้อกำหนด; 1 ตัวเลขเท่านั้น; 2 ไม่มีตัวเลข (เฉพาะ ImageToTextTask, ImageToTextTaskM1) |
math | boolean | ไม่ | true หมายถึงรูปภาพเป็นนิพจน์ทางคณิตศาสตร์ และคำตอบคือผลลัพธ์ของนิพจน์นั้น (เฉพาะ ImageToTextTask, ImageToTextTaskM1) |
minLength | integer | ไม่ | ความยาวขั้นต่ำของคำตอบ 0 หมายถึงไม่จำกัด (เฉพาะ ImageToTextTask, ImageToTextTaskM1) |
maxLength | integer | ไม่ | ความยาวสูงสุดของคำตอบ 0 หมายถึงไม่จำกัด (เฉพาะ ImageToTextTask, ImageToTextTaskM1) |
body คือ Base64 ของไฟล์ภาพ ภาพ WebP จะถูกแปลงให้อัตโนมัติ
ตัวอย่างคำขอ
หัวข้อที่มีชื่อว่า “ตัวอย่างคำขอ”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}โค้ดฉบับเต็ม (อ่านไฟล์ captcha.png ในไดเรกทอรีปัจจุบัน):
# 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);งานแบบอะซิงโครนัสที่มีเงื่อนไข:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTask", "body": "BASE64_IMAGE", "case": true, "numeric": 0, "minLength": 4, "maxLength": 6 }}ผลลัพธ์ที่ได้รับ
หัวข้อที่มีชื่อว่า “ผลลัพธ์ที่ได้รับ”ประเภทงานแบบซิงโครนัสจะคืนผลใน createTask โดยตรง:
{ "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b"}ประเภทงานแบบอะซิงโครนัส (ImageToTextTask, ImageToTextTaskM1) จะคืน taskId ก่อน จากนั้นให้เรียก getTaskResult ตรวจซ้ำทุก 5 วินาที เมื่อเสร็จแล้ว solution จะมีรูปแบบเดียวกัน
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
text | string | ข้อความที่จดจำได้ |
โมเดลที่สร้างเฉพาะ
หัวข้อที่มีชื่อว่า “โมเดลที่สร้างเฉพาะ”โมเดลทั่วไปใช้ได้กับ CAPTCHA ตัวอักษรและตัวเลขทุกแบบ แต่ความแม่นยำต่ำกว่าโมเดลที่ฝึกมาเฉพาะเล็กน้อย หากภาพที่ต้องการอ่านมีรูปแบบเดียวกันเสมอ คุณสามารถ ติดต่อฝ่ายสนับสนุน เพื่อสร้างโมเดลเฉพาะ จากนั้นระบุด้วย ImageToTextTaskMuggle พร้อม project_name
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”ถ้าอ่านผิดจะถูกหักพอยต์หรือไม่?
หัวข้อที่มีชื่อว่า “ถ้าอ่านผิดจะถูกหักพอยต์หรือไม่?”ประเภทงานแบบซิงโครนัสจะหักพอยต์เมื่อมีผลลัพธ์คืนมา แม้ผลลัพธ์จะไม่ถูกต้อง คุณสามารถเปลี่ยนไปลองประเภทงานอื่นเพื่อเปรียบเทียบ หรือสร้างโมเดลเฉพาะ
ได้รับ ERROR_ZERO_CAPTCHA_FILESIZE หรือ ERROR_PARSE_IMAGE_FAIL?
หัวข้อที่มีชื่อว่า “ได้รับ ERROR_ZERO_CAPTCHA_FILESIZE หรือ ERROR_PARSE_IMAGE_FAIL?”Base64 ของภาพไม่สมบูรณ์ หรือมีคำนำหน้า data: หรือการขึ้นบรรทัดใหม่ ให้ตรวจสอบการเข้ารหัส ดูที่ รหัสข้อผิดพลาด
ตัวอย่างที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “ตัวอย่างที่เกี่ยวข้อง”- เริ่มต้นใช้งานอย่างรวดเร็ว: ส่งคำขอแรกด้วย
ImageToTextTaskOcrBase - ตัวอย่าง Python