Skip to content

Commit 8a2d308

Browse files
committed
update template
1 parent 2bf21c1 commit 8a2d308

1 file changed

Lines changed: 141 additions & 119 deletions

File tree

Lines changed: 141 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -1,137 +1,159 @@
1-
Di Wit.ai, terdapat beberapa **endpoint API** yang dapat digunakan untuk berinteraksi dengan bot. Setiap endpoint memiliki tujuan dan fungsinya masing-masing. Berikut adalah penjelasan tentang perbedaan antara endpoint **message**, **event**, **converse**, dan **composer**:
1+
Berikut adalah contoh kode **Node.js** menggunakan library `node-wit` untuk memanfaatkan semua endpoint Wit.ai, yaitu **message**, **event**, **converse**, dan **composer**. Pastikan Anda telah menginstal library `node-wit` terlebih dahulu dengan menjalankan:
2+
3+
```bash
4+
npm install node-wit
5+
```
26

37
---
48

5-
### 1. **Endpoint `/message`**
6-
- **Tujuan**: Mengirim pesan teks dari pengguna ke Wit.ai dan mendapatkan respons berdasarkan analisis pesan tersebut.
7-
- **Fungsi**:
8-
- Mengekstrak entitas (entities) dari pesan pengguna.
9-
- Mengembalikan respons berdasarkan intent yang terdeteksi.
10-
- **Kapan Digunakan**:
11-
- Ketika Anda hanya perlu menganalisis pesan pengguna tanpa mempertahankan konteks percakapan.
12-
- **Contoh Penggunaan**:
13-
```bash
14-
curl -XPOST 'https://api.wit.ai/message' \
15-
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
16-
-d 'q=Hai, saya ingin pesan pizza'
17-
```
18-
- **Respons**:
19-
```json
20-
{
21-
"text": "Hai, saya ingin pesan pizza",
22-
"intents": [],
23-
"entities": {
24-
"food_item": [
25-
{
26-
"body": "pizza",
27-
"confidence": 0.95,
28-
"value": "pizza"
29-
}
30-
]
31-
},
32-
"traits": {}
33-
}
34-
```
9+
### Contoh Kode Lengkap
3510

36-
---
11+
```javascript
12+
const { Wit, log } = require('node-wit');
3713

38-
### 2. **Endpoint `/event`**
39-
- **Tujuan**: Mengirim event atau tindakan yang dilakukan oleh pengguna atau sistem ke Wit.ai.
40-
- **Fungsi**:
41-
- Berguna untuk melacak aktivitas pengguna atau sistem yang tidak berupa pesan teks.
42-
- Dapat digunakan untuk mengirim data kontekstual atau metadata.
43-
- **Kapan Digunakan**:
44-
- Ketika Anda perlu melacak event seperti klik tombol, login, atau aktivitas non-teks lainnya.
45-
- **Contoh Penggunaan**:
46-
```bash
47-
curl -XPOST 'https://api.wit.ai/event' \
48-
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
49-
-d 'name=button_click' \
50-
-d 'context={}' \
51-
-d 'entities={}'
52-
```
53-
- **Respons**:
54-
```json
55-
{
56-
"event": "button_click",
57-
"context": {},
58-
"entities": {}
59-
}
60-
```
14+
// Inisialisasi client Wit.ai
15+
const client = new Wit({
16+
accessToken: 'YOUR_ACCESS_TOKEN', // Ganti dengan access token Wit.ai Anda
17+
logger: new log.Logger(log.DEBUG), // Aktifkan logging untuk debugging
18+
});
6119

62-
---
20+
// Contoh penggunaan endpoint /message
21+
async function sendMessage() {
22+
try {
23+
const response = await client.message('Saya ingin pesan pizza');
24+
console.log('Response dari /message:', JSON.stringify(response, null, 2));
25+
} catch (error) {
26+
console.error('Error saat menggunakan /message:', error);
27+
}
28+
}
29+
30+
// Contoh penggunaan endpoint /event
31+
async function sendEvent() {
32+
try {
33+
const response = await client.event('button_click', { sessionId: '12345' });
34+
console.log('Response dari /event:', JSON.stringify(response, null, 2));
35+
} catch (error) {
36+
console.error('Error saat menggunakan /event:', error);
37+
}
38+
}
39+
40+
// Contoh penggunaan endpoint /converse
41+
async function sendConverse() {
42+
try {
43+
const sessionId = '12345'; // ID sesi untuk melacak percakapan
44+
const response = await client.converse(sessionId, 'Hai, saya ingin pesan pizza', {});
45+
console.log('Response dari /converse:', JSON.stringify(response, null, 2));
46+
} catch (error) {
47+
console.error('Error saat menggunakan /converse:', error);
48+
}
49+
}
50+
51+
// Contoh penggunaan endpoint /composer
52+
async function sendComposer() {
53+
try {
54+
const sessionId = '12345'; // ID sesi untuk melacak percakapan
55+
const response = await client.composer(sessionId, 'Hai, saya ingin pesan pizza', {});
56+
console.log('Response dari /composer:', JSON.stringify(response, null, 2));
57+
} catch (error) {
58+
console.error('Error saat menggunakan /composer:', error);
59+
}
60+
}
61+
62+
// Jalankan semua fungsi
63+
(async () => {
64+
console.log('Menggunakan endpoint /message:');
65+
await sendMessage();
66+
67+
console.log('\nMenggunakan endpoint /event:');
68+
await sendEvent();
69+
70+
console.log('\nMenggunakan endpoint /converse:');
71+
await sendConverse();
6372

64-
### 3. **Endpoint `/converse`**
65-
- **Tujuan**: Membangun percakapan interaktif dengan mempertahankan konteks percakapan.
66-
- **Fungsi**:
67-
- Mengelola alur percakapan dengan menyimpan dan memperbarui konteks.
68-
- Berguna untuk membuat bot yang mampu melakukan percakapan multi-tahap.
69-
- **Kapan Digunakan**:
70-
- Ketika Anda ingin membuat bot yang dapat mempertahankan konteks percakapan (misalnya, bot pesanan makanan atau layanan pelanggan).
71-
- **Contoh Penggunaan**:
72-
```bash
73-
curl -XPOST 'https://api.wit.ai/converse' \
74-
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
75-
-d 'session_id=12345' \
76-
-d 'q=Hai, saya ingin pesan pizza'
77-
```
78-
- **Respons**:
79-
```json
80-
{
81-
"type": "msg",
82-
"msg": "Berapa banyak pizza yang ingin Anda pesan?",
83-
"context": {
84-
"order_type": "food",
85-
"step": "ask_quantity"
86-
}
87-
}
88-
```
73+
console.log('\nMenggunakan endpoint /composer:');
74+
await sendComposer();
75+
})();
76+
```
8977

9078
---
9179

92-
### 4. **Endpoint `/composer`**
93-
- **Tujuan**: Menggunakan **Composer**, fitur Wit.ai untuk membangun alur percakapan yang lebih kompleks.
94-
- **Fungsi**:
95-
- Mengelola alur percakapan dengan menggabungkan intents, entities, dan actions.
96-
- Memungkinkan pembuatan bot yang lebih dinamis dan fleksibel.
97-
- **Kapan Digunakan**:
98-
- Ketika Anda menggunakan fitur Composer di Wit.ai untuk mengelola percakapan.
99-
- **Contoh Penggunaan**:
100-
```bash
101-
curl -XPOST 'https://api.wit.ai/composer' \
102-
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
103-
-d 'session_id=12345' \
104-
-d 'q=Hai, saya ingin pesan pizza'
105-
```
106-
- **Respons**:
107-
```json
108-
{
109-
"type": "action",
110-
"action": "askQuantity",
111-
"context": {
112-
"order_type": "food",
113-
"step": "ask_quantity"
114-
}
115-
}
116-
```
80+
### Penjelasan Kode
81+
82+
1. **Inisialisasi Client Wit.ai**:
83+
- Menggunakan `node-wit` untuk membuat client dengan access token Wit.ai Anda.
84+
85+
2. **Endpoint `/message`**:
86+
- Mengirim pesan teks ke Wit.ai dan mendapatkan respons yang berisi entitas, intents, dan traits.
87+
88+
3. **Endpoint `/event`**:
89+
- Mengirim event (misalnya, `button_click`) ke Wit.ai. Berguna untuk melacak aktivitas non-teks.
90+
91+
4. **Endpoint `/converse`**:
92+
- Mengelola percakapan interaktif dengan mempertahankan konteks menggunakan `sessionId`.
93+
94+
5. **Endpoint `/composer`**:
95+
- Menggunakan fitur Composer Wit.ai untuk mengelola alur percakapan yang lebih kompleks.
11796

11897
---
11998

120-
### Perbandingan Singkat
99+
### Output Contoh
100+
101+
Berikut adalah contoh output dari kode di atas:
102+
103+
```plaintext
104+
Menggunakan endpoint /message:
105+
Response dari /message:
106+
{
107+
"text": "Saya ingin pesan pizza",
108+
"intents": [],
109+
"entities": {
110+
"food_item": [
111+
{
112+
"body": "pizza",
113+
"confidence": 0.95,
114+
"value": "pizza"
115+
}
116+
]
117+
},
118+
"traits": {}
119+
}
120+
121+
Menggunakan endpoint /event:
122+
Response dari /event:
123+
{
124+
"event": "button_click",
125+
"context": {},
126+
"entities": {}
127+
}
128+
129+
Menggunakan endpoint /converse:
130+
Response dari /converse:
131+
{
132+
"type": "msg",
133+
"msg": "Berapa banyak pizza yang ingin Anda pesan?",
134+
"context": {
135+
"order_type": "food",
136+
"step": "ask_quantity"
137+
}
138+
}
121139
122-
| **Endpoint** | **Tujuan** | **Konteks** | **Kapan Digunakan** |
123-
|----------------|---------------------------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|
124-
| `/message` | Menganalisis pesan teks dan mengekstrak entitas. | Tidak mempertahankan konteks. | Untuk analisis pesan satu kali tanpa perlu mempertahankan alur percakapan. |
125-
| `/event` | Mengirim event atau tindakan non-teks. | Opsional. | Untuk melacak aktivitas pengguna atau sistem yang tidak berupa pesan teks. |
126-
| `/converse` | Membangun percakapan interaktif dengan mempertahankan konteks. | Mempertahankan konteks. | Untuk percakapan multi-tahap yang memerlukan penyimpanan konteks. |
127-
| `/composer` | Mengelola alur percakapan kompleks menggunakan fitur Composer. | Mempertahankan konteks. | Ketika menggunakan Composer untuk membuat bot yang lebih dinamis dan fleksibel. |
140+
Menggunakan endpoint /composer:
141+
Response dari /composer:
142+
{
143+
"type": "action",
144+
"action": "askQuantity",
145+
"context": {
146+
"order_type": "food",
147+
"step": "ask_quantity"
148+
}
149+
}
150+
```
128151

129152
---
130153

131-
### Kesimpulan
132-
- Gunakan **`/message`** untuk analisis pesan sederhana.
133-
- Gunakan **`/event`** untuk melacak aktivitas non-teks.
134-
- Gunakan **`/converse`** untuk percakapan interaktif dengan konteks.
135-
- Gunakan **`/composer`** untuk alur percakapan kompleks dengan fitur Composer.
154+
### Catatan
155+
- Ganti `YOUR_ACCESS_TOKEN` dengan access token Wit.ai Anda.
156+
- Pastikan Anda telah mengonfigurasi intents, entities, dan actions di Wit.ai Console.
157+
- Untuk endpoint `/composer`, pastikan Anda telah mengaktifkan dan mengonfigurasi Composer di Wit.ai.
136158

137-
Pilih endpoint yang sesuai dengan kebutuhan aplikasi Anda!
159+
Dengan kode ini, Anda dapat memanfaatkan semua endpoint Wit.ai untuk membangun bot yang cerdas dan interaktif!

0 commit comments

Comments
 (0)