Workflow
VoiceWorkflowBase
Bases: ABC
语音工作流的基类。你必须实现 run
方法。一个“工作流”可以是任何你想要的代码,它接收转录文本并生成将由文本转语音模型转换为语音的文本。
在大多数情况下,你会创建 Agent
并使用 Runner.run_streamed()
来运行它们,从流中返回部分或全部文本事件。你可以使用 VoiceWorkflowHelper
类来帮助从流中提取文本事件。
如果你有一个简单的工作流,只有一个起始 agent 并且没有自定义逻辑,可以直接使用 SingleAgentVoiceWorkflow
。
Source code in agents/voice/workflow.py
run
abstractmethod
运行语音工作流。你会收到一个输入转录文本,必须生成将要对用户说出的文本。你可以在这里运行任何你想要的逻辑。在大多数情况下,最终逻辑会涉及调用 Runner.run_streamed()
并从流中生成任何文本事件。
VoiceWorkflowHelper
Source code in agents/voice/workflow.py
stream_text_from
async
classmethod
stream_text_from(result: RunResultStreaming) -> AsyncIterator[str]
包装一个 RunResultStreaming
对象,并从流中生成文本事件。
Source code in agents/voice/workflow.py
SingleAgentWorkflowCallbacks
Source code in agents/voice/workflow.py
on_run
on_run(workflow: SingleAgentVoiceWorkflow, transcription: str) -> None
SingleAgentVoiceWorkflow
Bases: VoiceWorkflowBase
一个简单的语音工作流,运行单个 agent。每个转录文本和结果都会被添加到输入历史中。
对于更复杂的工作流(例如多次 Runner 调用、自定义消息历史、自定义逻辑、自定义配置),请继承 VoiceWorkflowBase
并实现你自己的逻辑。
Source code in agents/voice/workflow.py
__init__
__init__(agent: Agent[Any], callbacks: SingleAgentWorkflowCallbacks | None = None)
创建一个新的单 agent 语音工作流。
参数
agent: 要运行的 agent。 callbacks: 在工作流期间调用的可选回调。