メインコンテンツまでスキップ

バルブ

Valves(専用のValves & UserValvesページを参照)もPipelineに設定できます。簡単に言えば、Valvesはパイプラインごとに設定される入力変数です。

ValvesPipelineクラスのサブクラスとして設定され、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でバルブを更新する方法を考慮しない場合、以下のようなエラーがパイプラインサーバのログに表示されます: WARNING:root:No Pipeline class found in <pipeline name>