新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何用 graph.v1 的 train_schema 与 predict_schema 自定义 Rasa 执行图

发布时间:2026/9/14 16:34:14来源:尧图网络
如何用 graph.v1 的 train_schema 与 predict_schema 自定义 Rasa 执行图
如何用 graph.v1 的 train_schema 与 predict_schema 自定义 Rasa 执行图【免费下载链接】rasa Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants项目地址: https://gitcode.com/GitHub_Trending/ra/rasaRasa 默认用default.v1配方从config.yml的pipeline/policies两个键自动搭建训练与预测图。当你需要更细粒度地控制每个执行步骤、做消融实验或接入自定义图组件时可以改用实验性的graph.v1配方把配置改写成train_schema与predict_schema两张显式节点图。这篇文档基于 Graph Recipe 文档 和仓库中的真实示例配置说明如何写出这样的配置并验证它是否生效。需要说明两点前提均来自 Graph Recipe 文档graph.v1是 Rasa 3.1 引入的实验特性功能后续可能变更或移除与默认配方不同graph.v1不会自动补全任何缺省配置也不支持 CLI 参数覆盖和 finetuning——配置里没写的就是没有what you see is what you get。配置文件的整体结构graph.v1与default.v1共享recipe和language两个键含义不变区别在于不再有pipeline和policies取而代之的是键作用train_schema训练时执行图的节点定义predict_schema预测时执行图的节点定义nlu_target显式指定 NLU 侧的终点节点名core_target显式指定核心对话管理侧的终点节点名关于 target 的两个要点如果省略nlu_target/core_target将分别采用默认配方的节点名run_RegexMessageHandler和select_prediction因此你的 schema 中必须存在同名的节点两张图的第一个节点依赖固定资源训练任务用__importer__代表配置、训练数据等预测任务用__message__代表收到的消息。core 预测节点还可以从__tracker__取对话追踪数据见下文示例。target 缺失时的行为可以直接在源码 GraphV1Recipe 中确认nlu_target对所有训练类型都是必需的只要不是纯 NLU 训练core_target也是必需的。两者缺失会抛出InvalidConfigException报错信息为Cant find target names for NLU and/or core. Please make sure to provide nlu_target (required for all training types) and core_target (required if training is not just NLU) values in your config.yml file.所以只训练 NLU 时可以只写nlu_target做端到端训练则两个都要写。节点里各个键的含义train_schema.nodes和predict_schema.nodes下的每个节点都用同一组键描述Graph Recipe 文档 对它们的定义如下needs声明节点需要哪些数据、数据来自哪个父节点。键是数据名值是节点名needs: messages: nlu_message_converteruses实例化该节点所用的类必须写完整的 Python 路径uses: rasa.graph_components.converters.nlu_message_converter.NLUMessageConverter不要求必须用 Rasa 内置类也可以放你自己实现的图组件写法参见 自定义图组件文档。constructor_name用于实例化组件的构造方法名例如create训练或load推理constructor_name: loadfn执行该节点时调用的函数名fn: combine_predictions_from_kwargsconfig传给组件的任意配置参数config: language: en persist: falseeager是否在构图阶段立即实例化。通常训练时懒加载false、推理时立即加载true以避免首次预测变慢。resource若给定节点从该资源加载而不是从头实例化例如用于预测阶段加载训练好的组件resource: name: train_RulePolicy1is_targettrue时该节点不会被指纹计算剪掉结果可能仍用缓存。所有会训练的组件通常设为true因为训练结果必须进模型归档供推理使用。is_inputtrue的节点在指纹运行中也会始终执行用于保证能检测到文件内容变化。用真实示例看两张图如何对应仓库里有两个可直接参考的graph.v1配置最小示例配置训练与预测各只有极少的节点MemoizationPolicy 等适合理解结构完整示例配置测试代码注释说明它与默认配方的默认配置在图 schema 形式下等价适合对照你现有的default.v1项目迁移。以最小示例配置为例它声明了自定义的 target然后给出训练节点和对应的预测节点。训练侧摘自该文件recipe: graph.v1 language: en core_target: custom_core_target nlu_target: custom_nlu_target train_schema: nodes: train_MemoizationPolicy0: needs: training_trackers: training_tracker_provider domain: domain_for_core_training_provider uses: rasa.core.policies.memoization.MemoizationPolicy constructor_name: create fn: train config: { } eager: false is_target: true is_input: false resource: null预测侧同文件摘录predict_schema: nodes: run_MemoizationPolicy0: needs: domain: domain_provider tracker: __tracker__ rule_only_data: rule_only_data_provider uses: rasa.core.policies.memoization.MemoizationPolicy constructor_name: load fn: predict_action_probabilities config: {} eager: true is_target: false is_input: false resource: name: train_MemoizationPolicy0两段之间的对应关系是核心规则预测节点通过resource.name指向训练节点的节点名这里是train_MemoizationPolicy0推理时从模型存储加载训练产物而不是重新实例化一个未训练的组件。自定义nlu_target/core_targetcustom_nlu_target、custom_core_target则必须能在predict_schema.nodes里找到同名节点。完整的节点依赖链nlu_training_data_provider→ 各 featurizer → 分类器story_graph_provider→training_tracker_provider→ 各 policy可以参考 完整示例配置。训练与验证配置写好后在包含config.yml的项目目录运行rasa train。针对graph.v1可以用以下三类可核对的现象判断配置是否符合预期target 缺失如上所述缺少nlu_target或非 NLU 训练时缺少core_target训练在构建图之前就会以InvalidConfigException报错并按报错信息提示补上对应键。节点引用了不存在的模块uses中写了无法解析的完整路径时GraphSchema.from_dict会抛出GraphSchemaException。仓库测试 test_graph_recipe.py 就是用不存在的rasa.core.policies.ted_policy.TEDPolicy1000来验证这一报错的。误传 CLI 参数或开启 finetuningGraphV1Recipe 源码 显示只要检测到 CLI 参数或 finetuning就会发出UserWarningUnlike the Default Recipe, Graph Recipe does not utilize CLI parameters or finetuning and these configurations will be ignored. Add configuration to the recipe itself if you want them to be used.也就是说想改epochs、max_history这类参数不要加在命令行上而是写进对应节点的config如 完整示例配置 中train_TEDPolicy3的config里就写了max_history: 5和epochs: 100。限制与注意事项该配方标注为实验特性New in 3.1接口可能变化生产项目是否切换需要自行评估。它不利用 CLI 参数和 finetuning所有参数必须显式落在 schema 节点的config里。default.v1在配置节缺失时会自动写回推荐配置graph.v1完全没有这个行为缺了就是缺了。自定义图组件接入graph.v1时要求组件实现GraphComponent接口、使用类型注解不允许 forward references并在uses中写完整模块路径详见 自定义图组件文档。【免费下载链接】rasa Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants项目地址: https://gitcode.com/GitHub_Trending/ra/rasa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Simulink仿真实现直接序列扩频通信系统设计与优化 2026/9/14 17:52:24

Simulink仿真实现直接序列扩频通信系统设计与优化

1. 项目概述:扩频通信与Simulink仿真平台 在无线通信领域,扩频技术因其优异的抗干扰性能和隐蔽性,被广泛应用于军事通信、卫星导航和民用移动通信系统中。本项目采用MathWorks公司的Simulink仿真环境,构建完整的直接序列扩频通信系…

阅读更多 →
电力系统单机无穷大模型解析与应用 2026/9/14 17:52:24

电力系统单机无穷大模型解析与应用

1. 单机无穷大系统示意图解析 这张单机无穷大系统示意图展示了电力系统分析中的一个经典模型概念。作为一名在电力行业摸爬滚打十多年的工程师,我经常用这个模型来给新人讲解电网稳定性的基本原理。 单机无穷大系统是电力系统暂态稳定分析中最基础的模型&#xff0…

阅读更多 →
FastAPI ORM操作优化与性能提升实战 2026/9/14 17:52:24

FastAPI ORM操作优化与性能提升实战

1. FastAPI ORM操作实战指南作为Python生态中性能最出色的Web框架之一,FastAPI与ORM的结合使用已经成为现代后端开发的标配方案。在实际项目中,我们90%的数据库交互都集中在CRUD(创建、读取、更新、删除)这四种基础操作上。但很多…

阅读更多 →
Qwen3-Coder 仓库中 DevQualityEval v0.5.0 评测报告解析:llama-3-sonar-large-32k-chat 的 write-tests 得分与指标体系 2026/9/14 17:52:24

Qwen3-Coder 仓库中 DevQualityEval v0.5.0 评测报告解析:llama-3-sonar-large-32k-chat 的 write-tests 得分与指标体系

Qwen3-Coder 仓库中 DevQualityEval v0.5.0 评测报告解析:llama-3-sonar-large-32k-chat 的 write-tests 得分与指标体系 【免费下载链接】Qwen3-Coder Qwen3-Coder is the code version of Qwen3, the large language model series developed by Qwen team. 项目地址: https…

阅读更多 →
LangGraph框架解析:构建复杂AI代理系统的核心技术 2026/9/14 17:52:24

LangGraph框架解析:构建复杂AI代理系统的核心技术

1. LangGraph与Agent架构深度解析 LangGraph作为新一代Agent编排框架,正在重塑AI代理开发范式。与传统的LangChain等框架相比,LangGraph提供了更底层的控制能力,特别适合构建需要长期运行、处理复杂任务的智能代理系统。我在实际项目中发现&a…

阅读更多 →
无刷驱动方案选型实战指南:从参数陷阱到量产落地 2026/9/14 17:49:24

无刷驱动方案选型实战指南:从参数陷阱到量产落地

1. 为什么今天还在为无刷驱动方案选型发愁?——一个干了12年电机控制的老兵的实话“无刷驱动方案怎么选?”这问题我每天在技术群、客户现场、供应商会议里至少听到5次。不是新手问,而是做了七八年自动化产线的工程师蹲在PLC柜前盯着散热片冒汗…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞