Pular para o conteúdo principal

Válvulas

Válvulas (veja a página dedicada Válvulas & UserValves) também podem ser definidas para o Pipeline. Em resumo, Válvulas são variáveis de entrada configuradas por pipeline.

Válvulas são definidas como uma subclasse da classe Pipeline e inicializadas como parte do método __init__ da classe Pipeline.

Ao adicionar válvulas ao seu pipeline, inclua uma forma de garantir que as válvulas possam ser reconfiguradas pelos administradores na interface web. Há algumas opções para isso:

  • Use os.getenv() para definir uma variável de ambiente a ser usada no pipeline e um valor padrão a ser usado caso a variável de ambiente não esteja configurada. Um exemplo pode ser visto abaixo:
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"),
}
)
  • Defina a válvula como do tipo Optional, o que permitirá que o pipeline seja carregado mesmo que nenhum valor seja configurado para a válvula.
class Pipeline:
class Valves(BaseModel):
target_user_roles: List[str] = ["user"]
max_turns: Optional[int] = None

Se você não deixar uma forma de atualizar as válvulas na interface web, verá o seguinte erro no log do servidor de Pipelines após tentar adicionar um pipeline na interface web: WARNING:root:No Pipeline class found in <pipeline name>