LCEL の RunnableLambda + bind
RunnableLambda で、特定のオプションを invoke 以外で渡したい
関数の第一引数はinvokeの引数になるが、第二引数以降はbindで引数束縛できる
たとえばこんな感じ
code:python
from langchain_core.runnables import (
RunnableLambda,
)
from typing import TypedDict
class FooArg(TypedDict):
a: int
b: int
def calc(arg: FooArg, c: int = 0) -> int:
calc_lambda = RunnableLambda(calc)
calc_lambda.invoke({"a": 1, "b": 2})
# => 3
calc_lambda.bind(c=100).invoke({"a": 1, "b": 2})
# => 103