Files
Codex Local bf1233d5df
ci / verify (push) Canceled after 0s
feat: expand companion platform, device controls, and memoir workflows
Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
2026-10-08 10:06:44 +08:00

72 lines
5.9 KiB
Go

package companionopening
// Fixed aliases select authored content. User-provided labels are never echoed.
var topicAliases = map[string][]string{
"story": {"故事", "story", "stories"},
"opera": {"戏曲", "京剧", "越剧", "黄梅戏", "豫剧", "opera"},
"music": {"音乐", "歌曲", "唱歌", "听歌", "music", "songs", "singing"},
"gardening": {"花草", "养花", "园艺", "种花", "gardening", "plants", "flowers"},
"crafts": {"手艺", "手工", "编织", "木工", "crafts", "handicraft", "knitting"},
"travel": {"旅行", "旅游", "游览", "travel", "travelling", "traveling"},
"food": {"美食", "家常菜", "做饭", "烹饪", "喝茶", "饮食", "food", "cooking", "tea"},
"childhood": {"童年", "小时候", "儿时", "老照片", "childhood", "old photos"},
"old_objects": {"老物件", "旧物", "老东西", "old objects", "old items", "vintage"},
"puzzle": {"猜谜", "谜语", "益智", "脑筋急转弯", "puzzle", "puzzles", "riddles"},
"books": {"阅读", "读书", "书籍", "文学", "books", "reading", "literature"},
"wordplay": {"词语", "文字", "语言", "方言", "wordplay", "words", "language"},
}
var interestTemplates = []Selection{
{Text: "咱们随便聊聊。您平常喜欢听什么样的故事?", ID: "interest-story-chat-v2", TopicKey: "story", Category: "interest"},
{Text: "您平常爱听哪一种戏?咱们说说您喜欢的。", ID: "interest-opera-chat-v2", TopicKey: "opera", Category: "interest"},
{Text: "最近有没有哪首歌,让您想再听一听?", ID: "interest-music-chat-v2", TopicKey: "music", Category: "interest"},
{Text: "咱们聊聊花草吧。您喜欢什么样的花?", ID: "interest-gardening-chat-v2", TopicKey: "gardening", Category: "interest"},
{Text: "咱们聊聊手艺,做个小东西也挺有意思。", ID: "interest-crafts-chat-v2", TopicKey: "crafts", Category: "interest"},
{Text: "有没有哪个地方,是您想去走走看看的?", ID: "interest-travel-chat-v2", TopicKey: "travel", Category: "interest"},
{Text: "说起家常饭,您平常喜欢什么口味?", ID: "interest-food-chat-v2", TopicKey: "food", Category: "interest"},
{Text: "小时候那些小事,愿意说的话,咱们就慢慢聊。", ID: "interest-childhood-chat-v2", TopicKey: "childhood", Category: "interest"},
{Text: "老物件各有各的用处,咱们随便聊聊这些。", ID: "interest-old-objects-chat-v2", TopicKey: "old_objects", Category: "interest"},
{Text: "最近有没有什么书,是您想聊聊的?", ID: "interest-books-chat-v2", TopicKey: "books", Category: "interest"},
{Text: "家乡话听着亲切,咱们随便说说。", ID: "interest-wordplay-chat-v2", TopicKey: "wordplay", Category: "interest"},
}
// General openings are everyday greetings. Rotate wording without requiring
// a new content topic or treating a stored puzzle interest as a game request.
var lightTemplates = []Selection{
{Text: "您这会儿在忙什么呢?", ID: "casual-now-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "今天过得怎么样?咱们随便聊聊。", ID: "casual-day-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "这会儿有没有什么事想跟我说?", ID: "casual-listen-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "咱们随便说说话,不赶时间。", ID: "casual-unhurried-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "我在呢,陪您聊会儿。", ID: "casual-company-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "咱们慢慢聊,想到哪儿就说到哪儿。", ID: "casual-pace-v2", TopicKey: "neutral", Category: "neutral"},
}
var periodTemplates = map[string][]Selection{
"morning": {{Text: "咱们说说话,您这会儿在做什么呢?", ID: "time-morning-chat-v2", TopicKey: "neutral", Category: "neutral"}},
"noon": {{Text: "我来陪您聊两句,您想说什么都行。", ID: "time-noon-chat-v2", TopicKey: "neutral", Category: "neutral"}},
"afternoon": {{Text: "我在呢,咱们随便聊会儿。", ID: "time-afternoon-chat-v2", TopicKey: "neutral", Category: "neutral"}},
"evening": {{Text: "今天过得怎么样?咱们慢慢说。", ID: "time-evening-chat-v2", TopicKey: "neutral", Category: "neutral"}},
}
var reopenTemplates = []Selection{
{Text: "又见面了,咱们慢慢聊。", ID: "reconnect-chat-v2", TopicKey: "reconnect", Category: "reconnect"},
{Text: "您回来啦,我在听。", ID: "reconnect-listen-v2", TopicKey: "reconnect", Category: "reconnect"},
{Text: "我在呢,咱们随便说两句。", ID: "reconnect-company-v2", TopicKey: "reconnect", Category: "reconnect"},
{Text: "又见面了,不用着急,慢慢说。", ID: "reconnect-unhurried-v2", TopicKey: "reconnect", Category: "reconnect"},
{Text: "您回来啦,想到什么就说什么。", ID: "reconnect-return-v2", TopicKey: "reconnect", Category: "reconnect"},
{Text: "您好,咱们轻松聊会儿。", ID: "reconnect-pace-v2", TopicKey: "reconnect", Category: "reconnect"},
}
// Some authored openings span more than their routing topic. Exclusions also
// cover these dependencies; for example, an opera opening also concerns music.
var templateTopics = map[string][]string{"interest-opera-chat-v2": {"music"}}
var neutralTemplates = []Selection{
{Text: "咱们随便说两句,我在听。", ID: "neutral-listen-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "不着急,咱们慢慢聊。", ID: "neutral-unhurried-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "您按自己的节奏说就好。", ID: "neutral-pace-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "想说什么都行,咱们轻松聊。", ID: "neutral-chat-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "想歇会儿也行,不用急着说话。", ID: "neutral-pause-v2", TopicKey: "neutral", Category: "neutral"},
{Text: "我在呢,陪您说说话。", ID: "neutral-company-v2", TopicKey: "neutral", Category: "neutral"},
}