tgoop.com/PythonPortal/4503
Create:
Last Update:
Last Update:
Аналогично Unix-пайпам, в Python можно строить цепочки функций, переопределяя метод __or__
Это позволяет связывать операции так, что вывод одной функции становится входом для следующей → чисто, читаемо и удобно для композиции
Именно так LangChain реализует элегантные пайплайны вроде: chat_prompt | groq_model | output_parser
Пример:
class Pipe:
def __init__(self, func):
self.func = func
def __call__(self, x):
return self.func(x)
def __or__(self, other):
return self.__class__(lambda x: other(self(x)))
Pipe
— обёртка над функцией__or__
(|) позволяет комбинировать пайпами, как в Unix__call__
делает объект вызываемым, как обычную функциюТеперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:
double = Pipe(lambda x: x * 2)
square = Pipe(lambda x: x ** 2)
pipeline = double | square
print(pipeline(3)) # (3 * 2) ** 2 = 36