阀值配置
阀值配置
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
这样管理员才能在后续管理中平滑调整配置。