AsyncCallbackManagerFortoolRun ve CallbackManagerFortoolrun, araç yürütme sırasında geri çağrıları işlemek için tasarlanmış Langchain kütüphanesinin bir parçasıdır. Bununla birlikte, asenkron operasyonlara yaklaşımlarında temelde farklılık gösterirler.
Asenkron Kullanım
** AsynccallbackManagerFortoolrun, eşzamansız çağrıları yönetmek için özel olarak tasarlanmıştır. Python'un `` async 've `` await' 'özelliklerini kullanır ve diğer kodun yürütülmesini engellemeden tamamlanması zaman alabilecek işlemleri işlemesine izin verir. Bu, eşzamansız bir işlev çağrıldığında, programın eşzamansız işlemin sonucunu beklerken diğer görevleri yürütmeye devam edebileceği anlamına gelir. Örneğin, API çağrıları veya I/O işlemleri gibi görevleri, işlem tamamlanana kadar olay döngüsüne geri kontrol ederek verimli bir şekilde yönetebilir [1] [7].
Buna karşılık, CallackManagerFortoolrun senkronize çalışır. Bu, bir işlev çağrıldığında, kontrol çağrısına dönmeden önce yürütülmesini tamamlaması gerektiği anlamına gelir. Senkron bir işlem harici bir kaynak beklemeyi (bir veritabanı sorgusu gibi) içeriyorsa, işlem bitene kadar daha fazla yürütmeyi engeller. Bu, özellikle birden fazla görevin eşzamanlı olarak gerçekleştirilebileceği senaryolarda verimsizliklere yol açabilir [3] [4].
Kullanım durumlarını ve performansı kullanın
Bu iki yönetici arasındaki seçim genellikle uygulamanın özel gereksinimlerine bağlıdır:
- AsynccallbackManagerFortoolrun, yüksek yanıt verebilirlik gerektiren ve aynı anda birden fazla G/O'ya bağlı görevi yönetmesi gereken uygulamalar için idealdir. Geliştiricilerin, yine de engellenmeyen davranışlardan yararlanırken senkronize görünen kod yazmasına izin verir, bu da birçok eşzamanlı işlemle uygulamalarda daha iyi performansa yol açabilir [1] [5].
- Öte yandan, daha basit uygulamalar veya birden fazla eşzamanlı görevin yürütülmesini gerektirmeyenler için daha uygun olabilir. Kod yapısını basitleştirir, ancak uzun süredir devam eden işlemleri beklerken potansiyel performans darboğazlarının pahasına [2] [6].
Özetle, asyncCallbackManagerFortoolrun, eşzamansız programlama paradigmaları yoluyla performansı ve yanıt vermeyi geliştirirken, geri dönüşmanerfortoolrun daha az karmaşık senaryolar için uygun basit bir senkron yaklaşım sağlar.
Alıntılar:
[1] https://api.python.langchain.com/en/latest/callbacks/langchain_core.callbacks.manager.asynccallbackmanagerfortoolrun.html
[2] https://www.reddit.com/r/dotnet/comments/fr8hae/is_there_any_benefit_to_asyncawait_if_youre_just/
[3] https://blog.langchain.dev/structured-tools/
[4] https://stackoverflow.com/questions/36213948/what-is-the-ifference-beton-asynchronous calls ve callbacks
[5] https://github.com/langchain-ai/langchain/blob/master/libs/core/langchain_core/callbacks/manager.py
[6] https://anvil.works/forum/t/what-is-the-best-practice-for-acynchronouso-cocomponent-data/3575
[7] https://python.langchain.com/api_reference/core/callbacks.html
[8] https://www.digitalocean.com/community/tutorials/understansting-the-event-oop-clallbacks-promises-and-async-await-in-javascript