Files
ai-video-fullstack/backend/services/brains/registry.py
T

26 lines
905 B
Python
Raw Normal View History

"""类型 → Brain 工厂。新增一种大脑 = 加一个 brain 文件 + 在此注册一行。"""
from __future__ import annotations
from models import AssistantConfig
from services.brains.base import Brain, BrainSpec
from services.brains.fastgpt_brain import FastGPTBrain
from services.brains.internal_brain import InternalBrain
# 各类型的元数据(供 schema 校验 / realtime 门控复用,无需实例化 Brain)。
SPECS: dict[str, BrainSpec] = {
"prompt": InternalBrain("prompt").spec,
"workflow": InternalBrain("workflow").spec,
"fastgpt": FastGPTBrain().spec,
}
def build_brain(cfg: AssistantConfig) -> Brain:
"""按 cfg.type 构造每通电话的 Brain 实例(未知类型回退 prompt)。"""
if cfg.type == "fastgpt":
return FastGPTBrain()
if cfg.type in ("prompt", "workflow"):
return InternalBrain(cfg.type)
return InternalBrain("prompt")