beginnertext
Intent Classification
Classify user utterances into intents for chatbot and virtual assistant training.
Configuration Fileconfig.yaml
yaml
# Intent Classification Configuration
# Classify user utterances for chatbot training
task_dir: "."
annotation_task_name: "Intent Classification"
data_files:
- "data/utterances.json"
item_properties:
id_key: "id"
text_key: "utterance"
text_display_key: "utterance"
user_config:
allow_all_users: true
annotation_schemes:
- annotation_type: "radio"
name: "primary_intent"
description: "What is the user's primary intent?"
labels:
- name: "greeting"
tooltip: "Hello, hi, good morning, etc."
key_value: "g"
- name: "goodbye"
tooltip: "Bye, see you, take care, etc."
key_value: "b"
- name: "thanks"
tooltip: "Thank you, appreciate it, etc."
key_value: "t"
- name: "help"
tooltip: "Request for assistance or information"
key_value: "h"
- name: "complaint"
tooltip: "Expressing dissatisfaction"
key_value: "c"
- name: "purchase"
tooltip: "Wanting to buy something"
key_value: "p"
- name: "cancel"
tooltip: "Wanting to cancel order/subscription"
key_value: "x"
- name: "status_check"
tooltip: "Checking order/delivery status"
key_value: "s"
- name: "account_issue"
tooltip: "Login, password, account problems"
key_value: "a"
- name: "refund"
tooltip: "Requesting money back"
key_value: "r"
- name: "feedback"
tooltip: "Providing feedback or suggestions"
key_value: "f"
- name: "other"
tooltip: "Doesn't fit other categories"
key_value: "o"
- annotation_type: "multiselect"
name: "secondary_intents"
description: "Any secondary intents present?"
labels:
- name: "expressing_urgency"
- name: "requesting_human"
- name: "expressing_frustration"
- name: "asking_for_clarification"
- name: "providing_information"
- name: "confirming"
- name: "declining"
- annotation_type: "radio"
name: "sentiment"
description: "What is the sentiment of the message?"
labels:
- name: "Positive"
key_value: "+"
- name: "Neutral"
key_value: "0"
- name: "Negative"
key_value: "-"
- annotation_type: "likert"
name: "clarity"
description: "How clear is the user's intent?"
size: 5
min_label: "Very unclear"
max_label: "Very clear"
- annotation_type: "text"
name: "entities"
description: "List any key entities (product names, dates, etc.)"
required: false
output: "annotation_output/"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
Sample Datasample-data.json
json
[
{
"id": "intent_001",
"utterance": "Hi there! I need help with my order.",
"context": "User just opened chat"
},
{
"id": "intent_002",
"utterance": "Where is my package? I ordered it a week ago and it still hasn't arrived!",
"context": "Returning customer"
}
]
// ... and 6 more itemsTry it live — no install
Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.
▶ Run live in your browserGet This Design
View on GitHub
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/templates/text/intent-classification potato start config.yaml
Details
Annotation Types
likertmultiselectradiotext
Domain
nlpconversational-ai
Use Cases
intent-detectionchatbot-training
Tags
intentchatbotnluvirtual-assistantclassification
Found an issue or want to improve this design?
Open an IssueRelated Designs
Fact Verification
Verify claims as supported, refuted, or not enough information based on provided evidence.
likertmultiselect
AgentBoard Progress Scoring
Assess multi-turn LLM agent progress by identifying achieved milestones, scoring overall progress, categorizing the agent environment, and noting partial progress observations.
multiselectlikert
Audio Transcription Review
Review and correct automatic speech recognition transcriptions with waveform visualization.
likertmultiselect