如何在Kedro中传递用户输入至推理管道?报错咨询
如何将外部用户输入传入Kedro管道?
我有一个包含目标模型的Kedro管道,项目外部有个app.py文件用来搭建用户运行模型的UI/UX,目前先用示例字符串测试,后续会改成用户可输入的文本框。尝试用KedroSession传入用户输入时触发了错误:
ValueError: Pipeline input(s) {'user-input'} not found in the DataCatalog
我的测试代码如下:
from kedro.framework.session import KedroSession from kedro.framework.startup import bootstrap_project from kedro.io import MemoryDataSet import os bootstrap_project("<project path>") user_input = "this is a sample text" user_input = MemoryDataSet(user_input) with KedroSession.create("project") as session: output = session.run( "nlp-pipeline", from_inputs={ "user-input": user_input } ) print(output)
错误原因
你混淆了session.run()里from_inputs和inputs参数的作用:
from_inputs是用来指定管道运行的起始节点/输入,它要求这些输入必须已经在DataCatalog中注册,作用是跳过前面的节点,直接从指定输入开始运行后续流程。- 你想传入的用户输入是新的数据集,而
from_inputs不支持直接传入未注册的数据集,因此报错。
解决步骤
1. 先在Kedro项目中注册输入数据集
在项目的conf/base/catalog.yml里添加user-input的注册,因为是临时输入,用MemoryDataSet即可:
user-input: type: kedro.io.MemoryDataSet
2. 修改app.py代码注入用户输入
有两种可行的写法:
写法一:通过DataCatalog注入
from kedro.framework.session import KedroSession from kedro.framework.startup import bootstrap_project from kedro.io import MemoryDataSet import os bootstrap_project("<project path>") user_input_text = "this is a sample text" user_input_dataset = MemoryDataSet(user_input_text) with KedroSession.create("project") as session: # 获取项目的DataCatalog实例 catalog = session.load_context().catalog # 将用户输入的数据集添加到Catalog中 catalog.add("user-input", user_input_dataset) # 运行指定管道 output = session.run("nlp-pipeline") print(output)
写法二:用inputs参数覆盖已有数据集
from kedro.framework.session import KedroSession from kedro.framework.startup import bootstrap_project from kedro.io import MemoryDataSet import os bootstrap_project("<project path>") user_input_text = "this is a sample text" user_input_dataset = MemoryDataSet(user_input_text) with KedroSession.create("project") as session: output = session.run( "nlp-pipeline", # 用inputs参数覆盖Catalog中已注册的user-input数据集 inputs={ "user-input": user_input_dataset } ) print(output)
内容的提问来源于stack exchange,提问作者João Areias
相关产品推荐
相关产品推荐

