Dialogflow CX NLU
Manage intents and entity types in Google Dialogflow CX via REST API for natural language understanding.
Prerequisites
- Google Cloud project with Dialogflow CX API enabled
- Service account or OAuth credentials with Dialogflow API access
gcloudCLI authenticated OR bearer token
Authentication
Option 1: gcloud CLI (recommended)
gcloud auth application-default login
TOKEN=$(gcloud auth print-access-token)
Option 2: Service Account
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json"
TOKEN=$(gcloud auth application-default print-access-token)
API Base URL
https://dialogflow.googleapis.com/v3beta1
Regional endpoints available:
https://{region}-dialogflow.googleapis.com(e.g.,us-central1,europe-west1)
Common Operations
List Intents
curl -X GET \
"https://dialogflow.googleapis.com/v3beta1/projects/${PROJECT_ID}/locations/${LOCATION}/agents/${AGENT_ID}/intents" \
-H "Authorization: Bearer ${TOKEN}"
Create Intent
curl -X POST \
"https://dialogflow.googleapis.com/v3beta1/projects/${PROJECT_ID}/locations/${LOCATION}/agents/${AGENT_ID}/intents" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"displayName": "Book Flight",
"trainingPhrases": [
{
"parts": [{"text": "I want to book a flight"}],
"repeatCount": 1
}
]
}'
List Entity Types
curl -X GET \
"https://dialogflow.googleapis.com/v3beta1/projects/${PROJECT_ID}/locations/${LOCATION}/agents/${AGENT_ID}/entityTypes" \
-H "Authorization: Bearer ${TOKEN}"
Create Entity Type
curl -X POST \
"https://dialogflow.googleapis.com/v3beta1/projects/${PROJECT_ID}/locations/${LOCATION}/agents/${AGENT_ID}/entityTypes" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"displayName": "Cities",
"kind": "KIND_LIST",
"entities": [
{"value": "New York"},
{"value": "Los Angeles"}
]
}'
Key Resources
| Resource | Description |
|---|---|
| Intents | Classify user utterances and extract parameters |
| Entity Types | Define structured data extraction patterns |
Quick Reference
For detailed API reference:
- Intents: See references/intents.md
- Entity Types: See references/entities.md
Scripts
scripts/nlu.py— CLI wrapper for intents and entity types operations
Usage
python scripts/nlu.py list-intents --agent AGENT_NAME
python scripts/nlu.py create-intent --agent AGENT_NAME --intent "Book Flight" --phrases "book a flight,I want to fly"
python scripts/nlu.py list-entities --agent AGENT_NAME
python scripts/nlu.py create-entity --agent AGENT_NAME --name "Cities" --values "New York,Los Angeles"
Tips
- Use training phrases that cover various ways users might express the intent
- Entity types can be system (built-in) or custom
- Use KIND_MAP for entities with synonyms, KIND_LIST for simple lists