Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Başlatma süreci asynccallbackManagerFortoolrun ve CallbackManagerFortoolrun arasında nasıl farklılık gösterir?


Başlatma süreci asynccallbackManagerFortoolrun ve CallbackManagerFortoolrun arasında nasıl farklılık gösterir?


Langchain kütüphanesindeki `AsyncCallbackManagerFortoolrun` ve` CallbackManagerFortoolrun 'için başlatma işlemi öncelikle asenkron operasyonları ele almalarında farklılık gösterir.

AsynccallbackManagerFortoolrun

** Başlatma:
- `AsyncCallbackManagerFortRun ', takım yürütme sırasında asenkron geri çağrıları yönetmek için tasarlanmıştır. Aşağıdakiler dahil olmak üzere çeşitli parametrelerle başlatılır:
- `run_id`: çalışma için benzersiz bir tanımlayıcı.
- `işleyiciler ': Koşu sırasında çağrılacak geri arama işleyicilerinin bir listesi.
- `` miras_run_id`, `tags`,` `mirasitable_tags`,` meta veri 've' kalıtsal_metadata ': asenkron görevlerin yürütülmesi sırasında daha karmaşık konfigürasyonlar ve veri yönetimine izin veren isteğe bağlı parametreler [1] [2].

** Asenkron operasyonlar:
- Bu yönetici, işlemlerin engellenmemesine izin verir, yani her birinin bir sonrakine başlamadan önce tamamlanmasını beklemeden aynı anda birden fazla görevi yerine getirebilir. Bu, özellikle verim ve yanıt verebilirliği arttırdığı için görevlerin tamamlanması zaman alabileceği senaryolarda yararlıdır [8].

CallbackManagerFortoolrun

** Başlatma:
- `` CallbackManagerFortoolrun '' ise senkron operasyonlar için tasarlanmıştır. `Run_id`,` işleyiciler 've diğerleri gibi parametreleri kabul ederek benzer bir başlatma imzasını paylaşır, ancak senkron bir paradigma altında çalışır [9].

** Senkron operasyonlar:
- Bu durumda işlemler engelliyor; Her görev bir sonrakine başlamadan önce tamamlanmalıdır. Bu, değişken yürütme süreleri olan görevlerle uğraşırken verimsizliklere yol açabilir, çünkü tüm süreç uzun süredir devam eden tek bir görevle yavaşlatılabilir [8].

Farklılıkların özeti

- Asenkron ve senkron: Birincil fark, operasyonel modellerinde yatmaktadır. AsyncCallbackManagerFortoolrun 'engelleyici olmayan yürütmeyi desteklerken, `` CallbackManagerFortoolrun' 'bloke edici bir yaklaşım izler.
- Performans sonuçları: Async yöneticisi, birden fazla görevin eşzamanlı olarak işlenmesi gereken yüksek verimli ortamlar için daha uygundur, oysa senkronizasyon yöneticisi daha basit olabilir, ancak engelleme doğası nedeniyle daha yavaş genel performansa yol açabilir.

Bu farklılıklar, her yöneticinin Langchain çerçevesi içinde belirli kullanım durumlarına nasıl uyarlandığını vurgular ve geliştiricilerin uygulamalarının gereksinimlerine göre uygun modeli seçmelerine olanak tanır.

Alıntılar:
[1] https://api.python.langchain.com/en/latest/core/callbacks/langchain_core.callbacks.manager.asynccallbackmanagerfortrun.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-patern
[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