跳到主要内容

阀值配置

阀值配置

Pipeline 也支持定义 Valves。简而言之,Valves 是按 pipeline 维度配置的输入变量。更多通用背景可见 Valves & UserValves

Valves 要作为 Pipeline 类的嵌套子类定义,并在 Pipeline.__init__ 中初始化。

为 pipeline 添加 valve 时,最好同时保证管理员可以在 Web UI 中重新配置它们。常见做法有两种:

1. 用 os.getenv() 提供默认值

self.valves = self.Valves(
    **{
        "LLAMAINDEX_OLLAMA_BASE_URL": os.getenv("LLAMAINDEX_OLLAMA_BASE_URL", "http://localhost:11434"),
        "LLAMAINDEX_MODEL_NAME": os.getenv("LLAMAINDEX_MODEL_NAME", "llama3"),
        "LLAMAINDEX_EMBEDDING_MODEL_NAME": os.getenv("LLAMAINDEX_EMBEDDING_MODEL_NAME", "nomic-embed-text"),
    }
)

这种方式适合:

  • 部署时通过环境变量注入
  • 给 WebUI 配置页保留“无环境变量时的默认回退”

2. 把字段设为 Optional

class Pipeline:
    class Valves(BaseModel):
        target_user_roles: List[str] = ["user"]
        max_turns: Optional[int] = None

这样即使 valve 没有值,pipeline 仍然可以加载成功。

重要提醒

如果你没有给 valve 预留“可在 Web UI 中重新配置”的路径,向 WebUI 添加 pipeline 时,Pipelines server 日志里可能会出现类似错误:

WARNING:root:No Pipeline class found in <pipeline name>

因此,推荐做法是:

  • 要么用环境变量 + 默认值
  • 要么把可缺省字段设为 Optional

这样管理员才能在后续管理中平滑调整配置。