智能作业批改
上传单张 K12 作业或试卷图片,返回逐题批改结论、错因和统计。
Documentation
AI 批改可能误判,结果仅供学习参考,教师、家长或学生应结合题目要求复核。请勿上传姓名、学号、学校等非必要个人信息。ToolKK 不落盘保存图片。
Integration Examples
Includes ready-to-use Shell, Python, Go, Java, and PHP examples for direct integration.
Shell Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/homework-grading' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "imageBase64": "/9j/4AAQSk...",\n "disablePreprocess": false\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/homework-grading"
payload = {
"imageBase64": "/9j/4AAQSk...",
"disablePreprocess": false
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/homework-grading"
payload := []byte("{\n \"imageBase64\": \"/9j/4AAQSk...\",\n \"disablePreprocess\": false\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java Example
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"imageBase64\": \"/9j/4AAQSk...\",\n \"disablePreprocess\": false\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/homework-grading"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/homework-grading';
$payload = "{\n \"imageBase64\": \"/9j/4AAQSk...\",\n \"disablePreprocess\": false\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;Request Example
{
"imageBase64": "/9j/4AAQSk...",
"disablePreprocess": false
}Response Example
{
"isAllFinished": true,
"status": "Success",
"stat_result": {
"all": 10,
"corrected": 10
},
"imageResults": []
}Request Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Sample |
|---|---|---|
| imageBase64 | string | /9j/4AAQSk... |
| disablePreprocess | boolean | false |
Response Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Sample |
|---|---|---|
| isAllFinished | boolean | true |
| status | string | Success |
| stat_result | object | {...} |
| stat_result.all | number | 10 |
| stat_result.corrected | number | 10 |
| imageResults | array | [] |