GoBot是一個基于Go語言開發的聊天機器人框架,可以用來構建自己的智能客服、語音助手等應用。其中,dstc2.json是GoBot支持的一種對話狀態跟蹤挑戰的數據格式。
{ "dialogue_id": "PMUL2334", "domains": ["restaurant", "hotel"], "turns": [ { "author": "user", "text": "I am looking for a restaurant in the center of town", "slots": { "location": "center", "restaurant_name": null, "cuisine": null, "price": null } }, { "author": "system", "text": "What kind of cuisine do you prefer?", "slots": { "location": "center", "restaurant_name": null, "cuisine": "?", "price": null } }, { "author": "user", "text": "I prefer French cuisine", "slots": { "location": "center", "restaurant_name": null, "cuisine": "french", "price": null } }, { "author": "system", "text": "What is your budget range?", "slots": { "location": "center", "restaurant_name": null, "cuisine": "french", "price": "?" } }, { "author": "user", "text": "My budget is around $50 per person", "slots": { "location": "center", "restaurant_name": null, "cuisine": "french", "price": "$$$$" } }, { "author": "system", "text": "Here are the restaurants that meet your criteria:", "slots": { "location": "center", "restaurant_name": ["La Belle Epoque"], "cuisine": "french", "price": "$$$$" } } ] }
dstc2.json文件包括三個部分:對話ID(dialogue_id)、領域(domains)和對話流程(turns)。其中,對話ID用于唯一標識一個對話,在后續的對話流程中一直保持不變;領域表示對話中涉及的主題,如餐廳、旅館等;對話流程包括多輪交互,每輪交互包含對話發起人(author)、對話內容(text)和相關槽位(slots)。槽位用于記錄對話中的重要信息,如餐廳名稱、菜系、價格等。
在GoBot中,可以通過解析dstc2.json文件,將其轉化為對話狀態跟蹤器(DST)的數據結構,用于跟蹤對話過程中用戶的意圖、上下文信息等,從而實現更加智能的對話服務。