点击复制,粘贴给 AI Agent(Claude / Cursor / Copilot),Agent 会自动在当前项目中接入验证码识别能力。
请为当前项目接入 fastOcr 验证码识别能力。
## API 端点
POST https://fastocr.kuaimeo.com/api/v1/captcha/recognize
## Headers
Authorization: Bearer focr_your_api_key
Content-Type: application/json
## Request Body
{
"type": "answer", // answer | hanzi | slider | clickword | char
"image": "", // 验证码图片 base64
"piece": "" // 仅 slider 类型需要(拼图块)
}
## Response
{
"code": 0,
"request_id": "a1b2c3d4",
"type": "answer",
"result": { "answer": 14, "confidence": 0.999 },
"cost": 15,
"latency_ms": 120,
"balance": 1985
}
## type 说明
- "answer": 算术题识别,result = {"answer": 数值, "confidence": 概率}
- "hanzi": 汉字单字识别,result = {"char": "汉字"}
- "slider": 滑块缺口定位(需额外传 piece 字段=拼图块base64),result = {"x": 坐标}
- "clickword": 文字点选识别,result = {"peaks": [[x,y]], "candidates": [{"box":[x1,y1,x2,y2],"char":"字","conf":概率}]}
## 错误码
- 0: 成功
- 400: 参数错误
- 401: 认证失败(Key 无效)
- 402: 余额不足
- 500: 服务异常(不计费)
## 接入要求
请根据当前项目使用的编程语言,用原生 HTTP 库封装一个识别函数/类:
1. API Key 从环境变量 FASTOCR_API_KEY 读取,不要硬编码
2. 封装后写一个简单的测试脚本验证调用是否正常
通用识别接口
POST /api/v1/captcha/recognize
# Headers
Authorization: Bearer <your_api_key>
Content-Type: application/json
# Request Body
{
"type": "answer", // answer | hanzi | slider | clickword | char
"image": "<base64>", // 验证码图片 base64
"piece": "<base64>" // 仅 slider 类型需要(拼图块)
}
# Response
{
"code": 0,
"request_id": "a1b2c3d4",
"type": "answer",
"result": { "answer": 14, "confidence": 0.999 },
"cost": 15,
"latency_ms": 120,
"balance": 1985
}
# pip install fastocr-sdk
from fastocr import FastOcr
client = FastOcr(api_key="your_api_key")
# 识别算术题
result = client.recognize("answer", image_path="captcha.png")
print(result.text) # "14"
print(result.cost) # 15
# 识别滑块(需要原图 + 拼图块)
result = client.recognize("slider",
image_path="bg.png", piece_path="piece.png")
print(result.x) # 236
// 引入下载的 fastocr.js 文件
import { FastOcr } from 'fastocr-sdk';
const client = new FastOcr({ apiKey: 'your_api_key' });
const result = await client.recognize('answer', {
image: fs.readFileSync('captcha.png').toString('base64')
});
console.log(result.text); // "14"
console.log(result.cost); // 15
// 引入下载的 FastOcr.java 文件
import com.fastocr.FastOcr;
import com.fastocr.RecognizeResult;
FastOcr client = new FastOcr("your_api_key");
RecognizeResult result = client.recognize(
"answer",
Files.readAllBytes(Paths.get("captcha.png"))
);
System.out.println(result.getText()); // "14"
System.out.println(result.getCost()); // 15
// 引入下载的 fastocr.go 文件
package main
import (
"fmt"
"github.com/fastocr/sdk-go"
)
func main() {
client := fastocr.New("your_api_key")
result, _ := client.Recognize("answer", "captcha.png")
fmt.Println(result.Text) // "14"
fmt.Println(result.Cost) // 15
}
// 引入下载的 FastOcr.php 文件
use FastOcr\Client;
$client = new Client('your_api_key');
$result = $client->recognize('answer', [
'image' => base64_encode(file_get_contents('captcha.png'))
]);
echo $result->text; // "14"
echo $result->cost; // 15
// 引入下载的 FastOcr.cs 文件
using FastOcr;
var client = new FastOcrClient("your_api_key");
var result = await client.RecognizeAsync(
"answer",
File.ReadAllBytes("captcha.png")
);
Console.WriteLine(result.Text); // "14"
Console.WriteLine(result.Cost); // 15