Zum Hauptinhalt springen

Valves

Valves (siehe die dedizierte Seite Valves & UserValves) können auch für Pipeline gesetzt werden. Kurz gesagt, Valves sind Eingabevariablen, die pro Pipeline gesetzt werden.

Valves werden als Unterklasse der Klasse Pipeline gesetzt und sind Teil der Initialisierungsmethode __init__ der Klasse Pipeline.

Wenn Sie Valves zu Ihrer Pipeline hinzufügen, stellen Sie sicher, dass Valves von Administratoren in der Weboberfläche neu konfiguriert werden können. Dafür gibt es mehrere Optionen:

  • Verwenden Sie os.getenv(), um eine Umgebungsvariable für die Pipeline zu setzen und einen Standardwert, falls die Umgebungsvariable nicht gesetzt ist. Ein Beispiel finden Sie unten:
self.valves = self.Valves(
**{
"LLAMAINDEX_OLLAMA_BASE_URL": os.getenv("LLAMAINDEX_OLLAMA_BASE_URL", "https://:11434"),
"LLAMAINDEX_MODEL_NAME": os.getenv("LLAMAINDEX_MODEL_NAME", "llama3"),
"LLAMAINDEX_EMBEDDING_MODEL_NAME": os.getenv("LLAMAINDEX_EMBEDDING_MODEL_NAME", "nomic-embed-text"),
}
)
  • Setzen Sie das Valve auf den Typ Optional, damit die Pipeline auch geladen werden kann, wenn für das Valve kein Wert gesetzt ist.
class Pipeline:
class Valves(BaseModel):
target_user_roles: List[str] = ["user"]
max_turns: Optional[int] = None

Wenn Sie keine Möglichkeit lassen, Valves in der Weboberfläche zu aktualisieren, sehen Sie nach dem Versuch, eine Pipeline zur Weboberfläche hinzuzufügen, folgende Fehlermeldung im Log des Pipelines-Servers: WARNING:root:No Pipeline class found in <pipeline name>