阀门
阀门
(请参阅专门的 阀门和用户阀门 页面)也可以为 管道
设置。简而言之,阀门
是为每个管道设置的输入变量。
阀门
设置为 Pipeline
类的子类,并作为 Pipeline
类的 __init__
方法的一部分进行初始化。
当向管道添加阀门时,包括一种确保阀门可以由管理员在 Web UI 中重新配置的方法。有几个选项可以实现:
- 使用
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"),
}
)
- 将阀门设置为
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>