!!python/str不';I don’我不在RasaCore工作';s域.yml

!!python/str不';I don’我不在RasaCore工作';s域.yml,python,yaml,Python,Yaml,我正在学习Rasa,在运行对话模型时遇到了一些问题 python3 -m rasa_core.train -s data/stories.md -d domain.yml -o models/dialogue --epochs 300 错误 拉萨核心 从rasa_core查看domain.yml时,问题似乎是双感叹号 domain.yml 阅读另一篇关于双感叹号的文章。不要尝试武断的事情,你应该考虑你想做什么!!python/str是一个表示python字符串类型的标记。因此,您当前的YAML

我正在学习Rasa,在运行对话模型时遇到了一些问题

python3 -m rasa_core.train -s data/stories.md -d domain.yml -o models/dialogue --epochs 300
错误 拉萨核心 从rasa_core查看domain.yml时,问题似乎是双感叹号

domain.yml
阅读另一篇关于双感叹号的文章。

不要尝试武断的事情,你应该考虑你想做什么<代码>!!python/str
是一个表示python字符串类型的标记。因此,您当前的YAML表示“seq是一个Python字符串”

现在,您的更改将改为“将以下值加载为您认为合适的任何类型:
!!python/str seq
”。这是一件非常不同的事情

让我们找出ruamel不识别您的标记的原因。发现
!!python/str
是在标准
构造函数中注册的,而不是在
安全构造函数中注册的。只有YAML的标准标记可用。所以很可能您使用的是
安全构造函数,它根本不知道
!!python/str
。因此,一个可能的修复方法是使用
!!str
,它在标量上调用相同的构造函数(正如我们在源代码中看到的)


或者,您可以直接删除标记。标量
seq
无论如何都会加载到字符串中,除非RasaCore做了一些意外的事情(我实际上对此一无所知)。

感谢flyx的全面回复。使用您的解决方案确实有效
ruamel.yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/str'
in "/my/app/path/venv/lib/python3.6/site-packages/rasa_core/schemas/domain.yml", line 4, column 11
allowempty: True
mapping:
  intents:
    type: !!python/str "seq"