阀门
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", "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 后,您会在管道服务器日志中看到以下错误:WARNING:root:No Pipeline class found in <pipeline name>