LabHub

블로그

ch01 LangChain 노트

한국어English日本語

Wiki: https://wikidocs.net/book/14314

Github: https://github.com/teddylee777/langchain-kr

Langchain 에서도 비동기 방식의 메소드를 제공해준다. Async 함수는 a prefix가 붙는다.

Async 함수

# 비동기 체인 객체의 'ainvoke' 메서드를 호출하여 'NVDA' 토픽을 처리합니다.
my_process = chain.ainvoke({"topic": "NVDA"})

# 비동기로 처리되는 프로세스가 완료될 때까지 기다립니다.
await my_process

Runnable Interface https://python.langchain.com/v0.1/docs/expression_language/interface/

RunableParallel

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}

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다