Aller au contenu principal

Vannes

Vannes (voir la page dédiée Vannes & UserValves) peuvent également être définies pour un Pipeline. En bref, les Vannes sont des variables d'entrée définies par pipeline.

Les Vannes sont définies comme une sous-classe de la classe Pipeline, et initialisées dans le cadre de la méthode __init__ de la classe Pipeline.

Lors de l'ajout de vannes à votre pipeline, incluez une méthode permettant de s'assurer que les vannes peuvent être reconfigurées par les administrateurs dans l'interface utilisateur web. Voici quelques options pour cela :

  • Utilisez os.getenv() pour définir une variable d'environnement à utiliser pour le pipeline, et une valeur par défaut à utiliser si la variable d'environnement n'est pas définie. Un exemple est donné ci-dessous :
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"),
}
)
  • Définissez la vanne avec le type Optional, ce qui permettra au pipeline de se charger même si aucune valeur n'est définie pour cette vanne.
class Pipeline:
class Valves(BaseModel):
target_user_roles: List[str] = ["user"]
max_turns: Optional[int] = None

Si vous ne laissez pas de méthode pour mettre à jour les vannes dans l'interface utilisateur web, vous verrez l'erreur suivante dans le journal du serveur des Pipelines après avoir essayé d'ajouter un pipeline dans l'interface utilisateur web : WARNING:root:No Pipeline class found in <pipeline name>