Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Які основні відмінності між AsynccallbackManagerfortooolrun та CallbackManagerfortooolrun


Які основні відмінності між AsynccallbackManagerfortooolrun та CallbackManagerfortooolrun


AsynccallbackManagerfortooolrun і CallbackManagerfortoOlrun - обидва компоненти, що використовуються в рамці Langchain для управління зворотними дзвінками під час виконання інструментів, але вони відрізняються насамперед у поводженні з асинхронними операціями.

Ключові відмінності

1. Асинхронний проти синхронного виконання:
- AsynccallbackManagerfortOoolrun розроблений спеціально для асинхронних операцій. Це дозволяє здійснювати непомітно виконання, тобто, поки одна операція чекає (наприклад, для виконання завдання вводу/виводу), інші завдання можуть продовжувати працювати. Це особливо корисно в сценаріях, коли кілька операцій можуть відбуватися одночасно, не чекаючи, коли кожен закінчується послідовно [1] [6].
- З іншого боку, CallbackManagerfortOoolrun є синхронним. Це означає, що він виконує завдання блокуючи, де кожна операція повинна виконати до початку наступного. Це може призвести до повільнішої продуктивності в сценаріях, де завдання в іншому випадку можуть виконуватись одночасно [5] [6].

2. Підписи методу:
- Методи в AsynccallbackManagerfortOoolrun префіксуються з `async`, як` async on_text` та `async on_tool_end`, що вказує на те, що ці методи призначені для використання з` Чеканням 'і можуть повернути очікувані результати [1].
- На відміну від цього, методи зворотного зв'язку ManagerfortoLun не мають префікса `Async`, що відображає їх синхронний характер. Вони виконують негайно і не підтримують механізм "очікування" [2] [5].

3. Використовуйте випадки:
- Асинхронний менеджер краще підходить для додатків, які потребують високої пропускної здатності та чуйності, таких як веб -сервери або програми, які одночасно обробляють кілька запитів користувачів [4] [6].
- Синхронний менеджер може бути більш підходящим для простіших програм, де операції є простими і не повинні працювати одночасно, тим самим спрощуючи модель програмування [5].

Підсумовуючи це, вибір між використанням AsynccallbackManagerfortOoolrun та CallbackManagerfortooolrun багато в чому залежить від того, чи потрібні ваша програма асинхронних можливостей чи вона може ефективно працювати при синхронній обробці.

Цитати:
[1] https://api.python.langchain.com/en/latest/callbacks/langchain_core.callbacks.manager.asynccallbackmanagerfortoolrun.html
[2] https://python.langchain.com/v0.1/docs/modules/tools/custom_tools/
[3] https://blog.langchain.dev/structured-tools/
[4] https://stackoverflow.com/questions/36213948/what-is-the-difference-betweend-asynchronous-calls-and-callbacks
[5] https://python.langchain.com/api_reference/core/callbacks.html
[6] https://www.mendix.com/blog/asynchronous-vs-synchronous-programming/
[7] https://github.com/langchain-ai/langchain/discussions/17591
[8] https://www.reddit.com/r/dotnet/comments/fr8hae/is_there_any_benefit_to_asyncawait_if_your_just/

| ~