如何实现「chuck wood」「throw log」等指令的差异化交互响应
解决方案
两类特殊响应的实现方法
你可以在原有动作-名词解析逻辑的最前面加一层固定特殊短语匹配层,具体逻辑如下:
- 首先维护一个独立的特殊短语映射表,键为需要触发特殊响应的完整短语,值为对应的响应内容,示例结构如下:
special_phrases = { "chuck wood": "How much wood could a woodchuck chuck?", "throw party": "你预设的throw party对应特殊响应内容" } - 每次接收到用户输入后,先和映射表的键做全匹配,如果匹配命中直接返回对应特殊响应,不进入后续的动作解析、游戏对象识别流程
- 只有匹配未命中时,才走原有的
throwing动作识别、游戏内名词匹配逻辑,不影响原有正常功能的运行
是否需要采用不同技术方案
不需要为两类场景做不同的技术实现:
- 对于
chuck wood这类名词对应游戏内对象的场景,前置匹配逻辑优先级高于原有解析流程,既不会影响throw log这类普通投掷原木逻辑的运行,也能正确触发特殊响应 - 对于
throw party这类无对应游戏对象的场景,因为匹配命中后直接返回结果,不会进入后续的游戏对象识别环节,自然不会出现party在其他场景被误识别的问题,也不需要为其创建虚拟对象
内容的提问来源于stack exchange,提问作者HappyDog
相关产品推荐
相关产品推荐

