跳至主要内容

閥門

閥門(請參閱專用的閥門與使用者閥門頁面)也可以設定於Pipeline。簡而言之,閥門是每個管線都被設定的輸入變數。

閥門被設定為Pipeline類的子類,並在Pipeline類的__init__方法中初始化。

在向您的管線添加閥門時,需包括一種方式,以確保閥門能夠由管理員在網頁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

如果您未提供在網頁UI中更新閥門的方式,則在嘗試將管線添加到網頁UI後,您將在管線伺服器日誌中看到以下錯誤: WARNING:root:No Pipeline class found in <pipeline name>