Types de tâches
Reconnaissance de texte dans une image
Cette page a été traduite automatiquement à partir de la version chinoise et peut contenir des erreurs. La version chinoise fait foi.
Envoyez l’image d’un captcha texte en Base64 et récupérez les lettres et chiffres qu’elle contient (solution.text). ImageToTextTaskOcrBase coûte 2 points (≈ $0.30 / 1k) par image et fonctionne de façon synchrone : une seule requête createTask renvoie le résultat. Si vous devez préciser la casse, des chiffres uniquement, une opération à calculer, etc., utilisez le type asynchrone ImageToTextTask.
https://api.yescaptcha.com/createTaskEndpoint mondialhttps://cn.yescaptcha.com/createTaskEndpoint ChineLe corps de la requête est du JSON, authentifié avec votre clientKey.
Types et prix
Section intitulée « Types et prix »| Type de tâche | Prix | Mode | Remarques |
|---|---|---|---|
ImageToTextTaskOcrBase | $0.30 / 1k; 2 points/tâche · ¥2 / 1k | Synchrone | |
ImageToTextTaskMuggle | $0.30 / 1k; 2 points/tâche · ¥2 / 1k | Synchrone | Ne prend pas en charge les options case/numeric ; utilisez project_name pour choisir un modèle personnalisé |
ImageToTextTask | $0.60 / 1k; 4 points/tâche · ¥4 / 1k | Asynchrone | |
ImageToTextTaskM1 | $2.25 / 1k; 15 points/tâche · ¥15 / 1k | Asynchrone |
Les prix en dollars américains sont des estimations avec 1 USD ≈ ¥6.67 ; les tâches sont facturées en points.
| Besoin | Type à utiliser |
|---|---|
| Captchas alphanumériques ordinaires, le moins cher et le plus rapide | ImageToTextTaskOcrBase, ImageToTextTaskMuggle (synchrones) |
| Un modèle personnalisé pour vous | ImageToTextTaskMuggle avec project_name |
| Respect de la casse, chiffres uniquement, calcul d’une opération, longueur limitée | ImageToTextTask, ImageToTextTaskM1 (asynchrones) |
Les modèles et les routes diffèrent selon les types : le résultat peut varier pour un même type d’image. Testez-les et choisissez le meilleur.
Paramètres de la requête
Section intitulée « Paramètres de la requête »| Champ | Type | Obligatoire | Description |
|---|---|---|---|
type | string | Oui | Type de tâche ; voir « Types de tâches et prix » sur cette page |
body | string | Oui | Image encodée en Base64, sans le préfixe data:image/...;base64, et sans saut de ligne |
project_name | string | Non | Nom d'un modèle personnalisé, pris en charge uniquement par ImageToTextTaskMuggle. Omettez-le pour utiliser le modèle alphanumérique général. Contactez le support pour obtenir un modèle personnalisé (ImageToTextTaskMuggle uniquement) |
phrase | boolean | Non | true signifie que la réponse contient au moins un espace (ImageToTextTask, ImageToTextTaskM1 uniquement) |
case | boolean | Non | true signifie que la réponse est sensible à la casse (ImageToTextTask, ImageToTextTaskM1 uniquement) |
numeric | integer | Non | 0 aucune contrainte ; 1 chiffres uniquement ; 2 sans chiffres (ImageToTextTask, ImageToTextTaskM1 uniquement) |
math | boolean | Non | true signifie que l'image est une expression mathématique et que la réponse en est le résultat (ImageToTextTask, ImageToTextTaskM1 uniquement) |
minLength | integer | Non | Longueur minimale de la réponse ; 0 signifie aucune limite (ImageToTextTask, ImageToTextTaskM1 uniquement) |
maxLength | integer | Non | Longueur maximale de la réponse ; 0 signifie aucune limite (ImageToTextTask, ImageToTextTaskM1 uniquement) |
body est l’encodage Base64 du fichier image. Les images WebP sont converties automatiquement.
Exemple de requête
Section intitulée « Exemple de requête »{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}Code complet (lit captcha.png dans le répertoire courant) :
# 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);Tâche asynchrone avec options :
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTask", "body": "BASE64_IMAGE", "case": true, "numeric": 0, "minLength": 4, "maxLength": 6 }}Résultat
Section intitulée « Résultat »Les types synchrones renvoient le résultat directement dans createTask :
{ "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b"}Les types asynchrones (ImageToTextTask, ImageToTextTaskM1) renvoient d’abord un taskId. Interrogez ensuite getTaskResult toutes les 5 secondes ; à la fin de la tâche, solution a le même format.
| Champ | Type | Description |
|---|---|---|
text | string | Le texte reconnu |
Modèle personnalisé
Section intitulée « Modèle personnalisé »Le modèle générique fonctionne sur tous les captchas alphanumériques, mais sa précision est légèrement inférieure à celle d’un modèle entraîné pour un style précis. Si vos images ont toujours le même style, contactez le support pour obtenir un modèle personnalisé, puis sélectionnez-le avec ImageToTextTaskMuggle et project_name.
Questions fréquentes
Section intitulée « Questions fréquentes »Les points sont-ils débités si le résultat est faux ?
Section intitulée « Les points sont-ils débités si le résultat est faux ? »Pour les types synchrones, les points sont débités dès qu’un résultat est renvoyé, même s’il est faux. Comparez avec un autre type ou demandez un modèle personnalisé.
J’obtiens ERROR_ZERO_CAPTCHA_FILESIZE ou ERROR_PARSE_IMAGE_FAIL
Section intitulée « J’obtiens ERROR_ZERO_CAPTCHA_FILESIZE ou ERROR_PARSE_IMAGE_FAIL »Le Base64 de l’image est incomplet, ou il contient le préfixe data: ou des sauts de ligne. Vérifiez l’encodage ; voir Codes d’erreur.
Voir aussi
Section intitulée « Voir aussi »- Démarrage rapide : première requête avec
ImageToTextTaskOcrBase - Exemples Python