Langchain 라이브러리의`asynccallbackmanagerfortoolrun` 및`콜백 Managerfortoolrun '의 초기화 프로세스는 주로 비동기 작업 처리와 다릅니다.
asynccallbackmanagerfortoolrun
** 초기화 :
-`asynccallbackmanagerfortoolrun '은 공구 실행 중에 비동기 콜백을 관리하도록 설계되었습니다. 다음을 포함한 여러 매개 변수로 초기화됩니다.
-`run_id`는 실행을위한 고유 식별자입니다.
-`handlers ': 실행 중에 호출 될 콜백 처리기 목록.
-`enherable_handlers`,`parent_run_id`,`tags`,`inherable_tags`,`metadata '및`inherable_metadata`
** 비동기 작업 :
-이 관리자를 사용하면 작업이 차단되지 않도록 할 수 있습니다. 즉, 다음 작업을 시작하기 전에 각 작업이 완료되기를 기다리지 않고도 여러 작업을 동시에 처리 할 수 있습니다. 이것은 처리량과 응답 성을 향상시키기 때문에 작업이 완료하는 데 다양한 시간이 걸릴 수있는 시나리오에서 특히 유용합니다 [8].
CallbackManagerfortoolrun
** 초기화 :
-``콜백 메거 포르토 툴 루 (Callbackmanagerfortoolrun) '는 동기화 작업을위한 것입니다. `run_id`,`handlers '등과 같은 매개 변수를 수락하는 유사한 초기화 서명을 공유하지만 동기 패러다임으로 작동합니다 [9].
** 동기화 작업 :
-이 경우 작업이 차단되고 있습니다. 다음 작업은 다음 작업이 시작되기 전에 완료해야합니다. 이는 단일 장기 실행 작업으로 전체 프로세스가 느려질 수 있기 때문에 가변 실행 시간이있는 작업을 처리 할 때 비 효율성으로 이어질 수 있습니다 [8].
차이 요약
- 비동기식 대 동기 : 기본 차이점은 작동 모델에 있습니다.`asynccallbackmanagerfortoolrun '은 비 블로킹 실행을 지원하는 반면`콜백 Managerfortoolrun`는 차단 접근법을 따릅니다.
- 성능 영향 : 비동기 관리자는 여러 작업을 동시에 처리 해야하는 고 처리량 환경에 더 적합하지만 SYNC 관리자는 더 간단하지만 차단 특성으로 인해 전체 성능이 느려질 수 있습니다.
이러한 차이점은 각 관리자가 Langchain Framework 내의 특정 사용 사례에 맞게 조정되는 방법을 강조하므로 개발자는 응용 프로그램의 요구 사항에 따라 적절한 모델을 선택할 수 있습니다.
인용 :
[1] https://api.python.langchain.com/en/latest/core/callbacks/langchain_core.callbacks.manager.asynccallbackmanagerfortoolrun.html
[2] https://api.python.langchain.com/en/latest/callbacks/langchain_core.callbacks.manager.asynccallbackmanagerfortoolrun.html
[3] https://sj-langchain.readthedocs.io/en/latest/callbacks/langchain.callbacks.manager.asynccallbackmanagerfortoolrun.html
[4] https://www.reddit.com/r/dotnet/comments/1efjfoz/a_stupid_question_but_what_will_happen_if_we_dont/
[5] https://github.com/langchain-ai/langchain/issues/6828
[6] https://thomaslevesque.com/tags/async/
[7] https://stackoverflow.com/questions/26268870/initialize-async only-once-pattern
[8] https://www.mendix.com/blog/asynchronous-vs-synchronous-programming/
[9] https://github.com/langchain-ai/langchain/blob/master/libs/core/langchain_core/callbacks/manager.py