LabHub

ブログ

ch01 LangChain ノート

한국어English日本語

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/

コメント

まだコメントはありません。

ログインするとコメントできます