Cloudflare Docs
Workers AI
Edit this page on GitHub
Set theme to dark (⇧+D)

Text Classification

Sentiment analysis or text classification is a common NLP task that classifies a text input into labels or classes.

  • Task type: text-classification
  • TypeScript class: AiTextClassification

​​ Available Embedding Models

List of available models in for this task type:

Model IDDescription
@cf/huggingface/distilbert-sst-2-int8Distilled BERT model that was finetuned on SST-2 for sentiment classification
More information

​​ Examples

import { Ai } from '@cloudflare/ai'
export interface Env {
AI: any;
}
export default {
async fetch(request: Request, env: Env) {
const ai = new Ai(env.AI);
const response = await ai.run('@cf/huggingface/distilbert-sst-2-int8', {
text: "This pizza is great!"
}
);
return Response.json(response)
},
};
async function run(model, input) {
const response = await fetch(
`https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/${model}`,
{
headers: { Authorization: "Bearer {API_TOKEN}" },
method: "POST",
body: JSON.stringify(input),
}
);
const result = await response.json();
return result;
}
run('@cf/huggingface/distilbert-sst-2-int8', { text: 'This pizza is great!' }).then((response) => {
console.log(JSON.stringify(response));
});
API_BASE_URL = "https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/"
headers = {"Authorization": "Bearer {API_KEY}"}
def run(model, input):
response = requests.post(f"{API_BASE_URL}{model}", headers=headers, json=input)
return response.json()
output = run("@cf/huggingface/distilbert-sst-2-int8", { "text": "This pizza is great!" })
print(output)
$ curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/huggingface/distilbert-sst-2-int8 \
-X POST \
-H "Authorization: Bearer {API_TOKEN}" \
-d '{ "text": "This pizza is great!" }'

Example Workers AI response

{
"result": {
"items": [
{
"label": "POSITIVE",
"score": 0.9998738765716553
},
{
"label": "NEGATIVE",
"score": 0.00012611268903128803
}
],
}
"success": true,
"errors":[],
"messages":[]
}

​​ API schema

The following schema is based on JSON Schema

​​ Input

{
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
]
}

TypeScript class: AiTextClassificationInput

​​ Output

{
"type": "array",
"contentType": "application/json",
"items": {
"type": "object",
"properties": {
"score": {
"type": "number"
},
"label": {
"type": "string"
}
}
}
}

TypeScript class: AiTextClassificationOutput