Rasa中config.yml文件信息详细解释
在 Rasa 中,config.yml
是非常关键的配置文件之一,它的作用是定义你的对话机器人使用哪些模型组件来完成:
- 意图识别(NLU)
- 实体抽取(NER)
- 对话管理(Core)
🧠 作用简述
部分 | 功能 |
---|---|
recipe | 指定使用哪种 Rasa 模型训练流程 |
assistant_id | 项目的唯一标识符,用于部署和版本管理 |
language | 机器人处理的语言 |
pipeline | 定义 NLU 模块的组件流水线(意图识别+实体识别) |
policies | 定义 Core 模块使用的对话策略组件(控制对话流程) |
🔍 字段逐个解析
1. recipe
指定训练流程的类型。通常使用默认值 default.v1
,它会根据 pipeline 和 policies 自动训练你的模型。
recipe: default.v1
2. assistant_id
每个 Rasa 助手有一个唯一的 ID,默认系统会自动生成。用于部署时标识机器人。
assistant_id: 20250412-010713-concrete-weapon
你可以修改成自己的项目名,也可以不管它。
3. language
定义对话机器人使用的语言(比如 en
、zh
等)。对模型训练和分词等有影响。
language: en
若你在做中文医生助手,应改为:
language: zh
4. pipeline
(NLU 组件流水线)
NLU 模型是由多个组件组成的流水线,每个组件负责特定任务,比如:
- 分词
- 特征提取
- 意图识别
- 实体识别
你当前的文件是:
pipeline: null
这表示:使用默认 pipeline。Rasa 默认 pipeline 通常包括:
pipeline:
- name: WhitespaceTokenizer # 分词器(按空格分)
- name: RegexFeaturizer # 支持正则匹配特征
- name: LexicalSyntacticFeaturizer # 提取词性、大小写等语言特征
- name: CountVectorsFeaturizer # 用词袋模型提取词向量
- name: CountVectorsFeaturizer # 字符级 n-gram 特征
analyzer: char_wb
min_ngram: 1
max_ngram: 4
- name: DIETClassifier # 主意图识别和实体识别模型
epochs: 100
constrain_similarities: true
- name: EntitySynonymMapper # 实体同义词映射
- name: ResponseSelector # 多候选响应选择器
epochs: 100
- name: FallbackClassifier # 置信度低时触发兜底逻辑
threshold: 0.3
ambiguity_threshold: 0.1
👉 你也可以自定义这个 pipeline,比如换成
JiebaTokenizer
用于中文分词。
5. policies
(对话策略)
控制机器人如何决定下一步动作。策略是用来决定在特定上下文中说什么或做什么。
目前是:
policies: null
表示使用默认策略,通常是这几种:
policies:
- name: MemoizationPolicy # 记住训练数据里的对话路径
- name: RulePolicy # 用于处理规则(如故事文件中的规则)
- name: TEDPolicy # 强大的上下文感知策略(用 transformer 架构)
max_history: 5
epochs: 100
constrain_similarities: true
- name: UnexpecTEDIntentPolicy # 辅助检测用户意图偏差
max_history: 5
epochs: 100
你可以按需调整,比如关闭 MemoizationPolicy
、调整 max_history
等。
🧪 示例:中文医生助手常用配置(推荐)
language: zh
pipeline:
- name: JiebaTokenizer
- name: RegexFeaturizer
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
analyzer: char_wb
min_ngram: 1
max_ngram: 4
- name: DIETClassifier
epochs: 100
- name: EntitySynonymMapper
- name: FallbackClassifier
threshold: 0.4
ambiguity_threshold: 0.1
policies:
- name: RulePolicy
- name: MemoizationPolicy
- name: TEDPolicy
max_history: 5
epochs: 100
- name: UnexpecTEDIntentPolicy
max_history: 5
epochs: 100