Skip to main content

Valves (阀门)

Valves (阀门)

Valves(参见专门的 Valves & UserValves 页面)也可以为 Pipeline 设置。简而言之,Valves 是为每个流水线设置的输入变量。

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

在向流水线添加 Valve 时,请包含一种确保管理员可以在 Web UI 中重新配置 Valve 的方法。为此有几个选项:

  • 使用 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"),
}
)
  • 将 Valve 设置为 Optional 类型,这将允许流水线即使在没有为该 Valve 设置值的情况下也能加载。
class Pipeline:
class Valves(BaseModel):
target_user_roles: List[str] = ["user"]
max_turns: Optional[int] = None

如果您没有保留在 Web UI 中更新 Valve 的方式,在尝试向 Web UI 添加流水线后,您将在 Pipelines 服务器日志中看到以下错误: WARNING:root:No Pipeline class found in <pipeline name>