跳到主要内容

阀门 (Valves)

Valves(参见专用Valves 和 UserValves页面)也可以为 Pipeline 设置。简而言之,Valves 是每个管道设置的输入变量。

Valves 作为 Pipeline 类的子类设置,并作为 Pipeline 类的 __init__ 方法的一部分进行初始化。

当向管道添加阀门时,请加入一种确保管理员可以通过 Web UI 重新配置阀门的方式。有几种选择:

  • 使用 os.getenv() 设置一个环境变量用于管道,并设置一个默认值以防环境变量未设置。示例如下:
self.valves = self.Valves(
**{
"LLAMAINDEX_OLLAMA_BASE_URL": os.getenv("LLAMAINDEX_OLLAMA_BASE_URL", "https://:11434"),
"LLAMAINDEX_MODEL_NAME": os.getenv("LLAMAINDEX_MODEL_NAME", "llama3"),
"LLAMAINDEX_EMBEDDING_MODEL_NAME": os.getenv("LLAMAINDEX_EMBEDDING_MODEL_NAME", "nomic-embed-text"),
}
)
  • 将阀门设置为 Optional 类型,这将允许管道在未设置阀门值的情况下也能加载。
class Pipeline:
class Valves(BaseModel):
target_user_roles: List[str] = ["user"]
max_turns: Optional[int] = None

如果你没有留下在 Web UI 中更新阀门的方式,那么在尝试将管道添加到 Web UI 后,你会在 Pipelines 服务器日志中看到以下错误:WARNING:root:No Pipeline class found in <pipeline name>