Wiki: https://wikidocs.net/book/14314
Github: https://github.com/teddylee777/langchain-kr
LangChainでも非同期方式のメソッドが提供されている。Async関数にはaプレフィックスが付く。
Async関数
# 非同期チェーンオブジェクトの'ainvoke'メソッドを呼び出して'NVDA'トピックを処理します。
my_process = chain.ainvoke({"topic": "NVDA"})
# 非同期で処理されるプロセスが完了するまで待ちます。
await my_process
Runnable Interface https://python.langchain.com/v0.1/docs/expression_language/interface/
RunnableParallel
from langchain_core.runnables import RunnableParallel
# RunnableParallelインスタンスを作成します。このインスタンスは複数のRunnableインスタンスを並列に実行できます。
runnable = RunnableParallel(
# RunnablePassthroughインスタンスを'passed'キーワード引数として渡します。これは入力されたデータをそのまま通過させる役割をします。
passed=RunnablePassthrough(),
# 'extra'キーワード引数としてRunnablePassthrough.assignを使用し、'mult'ラムダ関数を割り当てます。この関数は入力されたディクショナリの'num'キーに対応する値を3倍にします。
extra=RunnablePassthrough.assign(mult=lambda x: x["num"] * 3),
# 'modified'キーワード引数としてラムダ関数を渡します。この関数は入力されたディクショナリの'num'キーに対応する値に1を加えます。
modified=lambda x: x["num"] + 1,
)
# runnableインスタンスに{'num': 1}ディクショナリを入力としてinvokeメソッドを呼び出します。
runnable.invoke({"num": 1})
# 結果
# {'passed': {'num': 1}, 'extra': {'num': 1, 'mult': 3}, 'modified': 2}
クイズ
Q1: 「ch01 LangChain ノート」の主なトピックは何ですか?
ch01 LangChain ノート
Q2: Async関数とは何ですか?
Runnable Interface https://python.langchain.com/v0.1/docs/expression_language/interface/