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>