Bug描述
一个清晰简洁的bug描述。
如何重现bug
重现问题的步骤,你多频繁地遇到这个问题:
我正在尝试将evaluate方法与我自己的提示符连接起来,它曾经从pf_client.run运行。以下是示例代码:
from promptflow.client import PFClient
pf_client = PFClient()
def user_call():
my_prompt_flow = pf_client.run(my prompt flow configs)
return my_prompt_flow_output
def run_evaluation():
results = evaluate(
evaluation_name=evaluation_name,
data=data_path,
target=user_call,
evaluators={
"violence": violence_evaluator,
"sexual": sex_evaluator,
"self_harm": self_harm_evaluator,
"hate_unfairnes": hate_unfairness_evaluator,
"content_safety": content_safety_evaluator
},
azure_ai_project=project_scope
)
2024-07-06 00:58:41 +0000 1845174 execution.bulk INFO The process [1845174] has received a terminate signal.
2024-07-06 00:58:42 +0000 1844849 execution ERROR 1/1 flow run failed, indexes: [0], exception of index 0: Execution failure in 'user_call': (UnexpectedError) Unexpected error occurred while executing the batch run. Error: (AssertionError) daemonic processes are not allowed to have children.
预期行为
一个清晰简洁的描述你期望发生的事情。
截图
如果适用,添加截图以帮助解释你的问题。
运行信息(请填写以下信息):
- 使用
pf -v
的Promptflow包版本:[例如:0.0.102309906] - 操作系统:[例如:Ubuntu 20.04,Windows 11]
- 使用
python --version
的Python版本:[例如:python==3.10.12]
{
"promptflow": "1.13.0",
"promptflow-azure": "1.13.0",
"promptflow-core": "1.13.0",
"promptflow-devkit": "1.13.0",
"promptflow-evals": "0.3.0",
"promptflow-tracing": "1.13.0"
}
其他上下文
在这里添加有关问题的其他上下文。
2条答案
按热度按时间aurhwmvo1#
你好,@yanggaome ,
evaluate
将隐式调用pf.run
,这将使你的上述代码在pf.run
内部调用一个pf.run
。虽然pf.run
使用多进程处理每行数据,但这可能会导致上述错误。我们将利用这个问题来追踪上述错误的根源。为了解决这个问题,你能把你的
user_call
改为使用 flow-as-a-function 而不是pf.run
吗?以下是示例代码:
def user_call():
my_prompt_flow = load_flow("path/to/flow")
my_prompt_flow(xxx)
return my_prompt_flow_output
um6iljoc2#
感谢@D-W-,这个方法有效!