PolyAI 中文文档 下载 App

Python 转场函数:用代码驱动 Flow 的复杂逻辑

什么时候需要转场函数

无代码 Flow(Default Steps + 实体提取)适合绝大多数业务场景——预订、身份验证、FAQ 引导这些都不需要写代码。但以下情况会遇到天花板:

遇到这些场景时,用 Python 转场函数。

转场函数在 Flow 里的位置

转场函数是 Flow 的高级步骤(Advanced Step)。它和普通 Collect / Confirm Step 的区别是:

转场函数通常出现在 Flow 的路由节点——比如收集完所有预订信息后,需要调用预订系统检查时间是否可用,然后根据 API 返回值决定走"确认预订"还是"推荐其他时间"。

基本结构

一个转场函数的 Python 结构大致是:

函数接收:当前对话上下文、已收集的实体值、会话 ID 等
函数执行:你写的业务逻辑(查 API、比较值、做判断)
函数返回:下一步该走哪个 Edge / Step,可选带附加数据

PolyAI 为转场函数提供了 conv 对象,你可以在函数里直接访问:

和 ADK 的关系

转场函数的 Python 代码在两个地方可以编辑:

两种方式指向同一份底层配置——你在 Studio 里写的函数,pull 下来后就是一个 .py 文件;你在本地 IDE 里改完 push 回去,Studio 界面会实时显示更新。

安全和性能

转场函数在 PolyAI 的服务器端沙箱里执行,有以下限制:

这些限制是为了保证对话管道的稳定性——你的转场函数不会因为一个慢 API 调用就把用户卡在 Flow 里。如果需要执行耗时操作,建议通过异步方式(让函数返回占位结果,后续通过 Webhook 更新)。