Content Moderation
Common structure of service response data
| Parameter | Type | Required | Description |
|---|---|---|---|
| signature | String | Yes | The algorithm used for digital signature is "RSA-SHA256", and the signature will be base64 encoded. Download Tuputech’s public key certificatefirst, and then follow the steps below for authentication: 1. JSON.parse() parses received JSON data, and return JSON object which is named“data”. 2. “data” consists of two fields: “signature”-digital signature; “json”- string format of valid data. 3. use signature to verify json based on RSA-SHA25 algorithm (output type: base64), and receive the authentication result. 4. After passing the authentication, JSON.parse() json, JSON data returned. For more information, see the description of json below. |
| json | String | Yes | After parsing json by JSON.parse(json), the result contains: message:text corresponding to code parameter.timestamp:The current UNIX timestamp of the server. nonce:random number |
Structure after JSON parsing
| Parameter | Type | Required | Description |
|---|---|---|---|
| code | Number | Yes | Status code of the request, see Common Status Code Description. |
| message | String | Yes | Status message of the request. |
| timestamp | Number | Yes | The current UNIX timestamp of the server. |
| nonce | Number | Yes | Random number |
| summary | Array | No | Summary of the results. Disabled by default, please contact Tuputech to enable. |
| [taskId] | Object | Yes | Result of tasks. Each task has its own taskID and [taskId] data structure. |
| ... | ... | No | Results of other tasks and requests. |
summary
| Parameter | Type | Required | Description |
|---|---|---|---|
| code | Number | Yes | Status code of the request, see Common Status Code Description. |
| name | String | Yes | Image URL or file name |
| suggestion | Number | No | Suggested handling. Valid values: 0: pass; 1: block; 2: review |
| riskType | Number | No | Risk type. |
| riskTask | String | No | Task. |
| tag | String | No | Custom description of moderated images. |
Sample summary code
{
"summary": [
{
"code": 0,
"message": "success",
"name": "http://test.com/test1.jpg",
"suggestion": 0,
"riskType": 1,
"riskTask": "5b7be1f59b0c77a8c2afb351",
"tag": "t1"
},
{
"code": 14,
"message": "download fail",
"name": "http://test.com/test2.jpg",
"tag": "t2"
}
]
}
riskType
| Value | Risk Type | Associated taskId (default rule) |
|---|---|---|
| 0 | Normal | None |
| 1 | Politics | 5b7be1f59b0c77a8c2afb351 (political figures recognition) 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
| 2 | Pornography | 54bcfc6c329af61034f7c2fc (pornography detection) 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
| 3 | Violence & terrorism | 5e1d70adeec2874f7318dc52 (violence & terrorism content detection) 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
| 4 | violation detection | 5eddb86afaf52c4ca704ea41 (violation detection) 5ad37309616505867eeac264 (obscene content) 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
| 5 | Ad | 56a8645b0c800bff40990cf1 (ad detection) 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
| 6 | Sensitive/offensive | 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
| 7 | Profanity/abuse | 5e1d634d2809c24f6d909bd3 (text moderation with OCR) |
NOTE: The risk type is generated from the result of corresponding taskId based on multiple rules including scores threshold and tags priority.
Sample
{
"signature": "signature_from_tupu_service",
"json": "{\"code\":0,\"message\":\"success\",\"nonce\":\"0.5442530125172196\",\"timestamp\":1595318082309}"
}
Task Result
Applicable Task
taskId:
- Pornographic detection (taskId: 54bcfc6c329af61034f7c2fc)
- Violence detection (taskId: 5e1d70adeec2874f7318dc52)
- Ad detection (taskId: 56a8645b0c800bff40990cf1)
taskId parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| statistic | Array | Yes | The number of images for under each classification. |
| reviewCount | Number | Yes | The number of images requiring review |
| fileList | Array | Yes | Moderation result for each image |
| topNStatistic | Array | No | Data distribution of images moderated under each categories when a large number of categories are involved in the moderation process. |
fileList
| Parameter | Type | Required | Description |
|---|---|---|---|
| rate | Float | Yes | The score of the confidence level. Valid values: 0.0 to 1.0. A greater value indicates a higher confidence level of the results. |
| label | Number | Yes | The category of the moderation result. (“-1” indicates failure in categorizing) |
| name | String | Yes | If an image URL is uploaded, the value will be the uploaded URL. If an image file is uploaded, the value will be the filename of the image. |
| review | Boolean | Yes | Whether human review is required. |
| tag | String | No | The pre-set tag parameter of the image. |
| zip | String | No | Identify the origin compressed file. |
| labels | Array | No | If an image fall under multiple categories, it will display top N labels that have the highest level of probabilities. |
| rates | Array | No | If an image fall under multiple categories, it will display the corresponding rates of the displayed labels. |
| subLabel | Object | No | The subcategory of the moderation result. |
| allLabelRates | Array | No | Rates of all labels. Please contact Tuputech to enable this service. |
subLabel
| Parameter | Type | Required | Description |
|---|---|---|---|
| label | Number | Yes | The category of the moderation result. (“-1” indicates failure in categorizing) |
| rate | Float | Yes | The score of the confidence level. Valid values: 0.0 to 1.0. A greater value indicates a higher confidence level of the results. |
| review | Boolean | Yes | Whether human review is required. |
review
| Value | Risk Tag | Nonrisk Tag |
|---|---|---|
| true | Suggest reviewing | Suggest reviewing |
| false | Block | Accept |
- Risk tag: the tags corresponding to the violating contents in the moderation for pornography, violence, political figures, ads and obscene.
- Nonrisk tag: tags not related to violating contents.
JSON Sample
Example of pornography detection
{
"54bcfc6c329af61034f7c2fc": {
"statistic": [
0,
0,
1
],
"reviewCount": 0,
"fileList": [
{
"rate": 0.9927366971969604,
"label": 2,
"name": "http://tuputech.com/test.jpg",
"tag": "some_tag",
"zip": "zip_file_name",
"review": false,
"subLabel": {
"label": 30,
"rate": 0.99,
"review": false
}
}
]
},
"nonce": "0.010413094889372587",
"timestamp": 1435385737,
"code": 0,
"message": "success"
}