Mungkin sejak hari ia dilahirkan, LangChain telah ditakdirkan untuk menjadi produk dengan reputasi polarisasi.
Mereka yang optimis tentang LangChain menghargai alatan dan komponennya yang kaya dan kemudahan penyepaduannya Mereka yang tidak optimis tentang LangChain percaya bahawa ia pasti akan gagal - dalam era ini apabila teknologi berubah dengan begitu pantas, ia sememangnya tidak dapat dilaksanakan. bina segala-galanya dengan LangChain.
Sesetengah keterlaluan:
"Dalam kerja perundingan saya, saya menghabiskan 70% tenaga saya untuk meyakinkan orang ramai untuk tidak menggunakan langchain atau llamaindex. Ini menyelesaikan 90% masalah mereka
Baru-baru ini, satu artikel aduan LangChain sekali lagi menjadi fokus perbincangan hangat:
Pengarang, Fabian Both, ialah seorang jurutera pembelajaran mendalam di alat ujian AI Octomind. Pasukan Octomind menggunakan Ejen AI dengan berbilang LLM untuk membuat dan membetulkan ujian hujung ke hujung secara automatik dalam Playwright.
Ini adalah kisah yang berlangsung selama lebih dari setahun, bermula dari pemilihan LangChain, dan kemudian memasuki peringkat perjuangan gigih dengan LangChain. Pada tahun 2024, mereka akhirnya memutuskan untuk mengucapkan selamat tinggal kepada LangChain.
Mari kita lihat apa yang mereka lalui:
"LangChain adalah pilihan terbaik"
Kami menggunakan LangChain dalam pengeluaran selama lebih 12 bulan, bermula pada awal 2023 dan kemudian mengeluarkannya pada 2024 .
Pada tahun 2023, LangChain nampaknya menjadi pilihan terbaik kami. Ia mempunyai pelbagai komponen dan alatan yang mengagumkan, dan popularitinya telah meningkat. LangChain berjanji untuk "membenarkan pembangun beralih daripada idea kepada kod boleh jalan pada waktu petang," tetapi apabila keperluan kami menjadi semakin kompleks, masalah mula timbul.
LangChain menjadi sumber rintangan dan bukannya sumber produktiviti.
Memandangkan ketidakfleksibelan LangChain mula ditunjukkan, kami mula menyelidiki dengan lebih mendalam dalaman LangChain untuk memperbaiki tingkah laku asas sistem. Walau bagaimanapun, kerana LangChain sengaja membuat banyak butiran abstrak, kami tidak boleh menulis kod asas yang diperlukan dengan mudah.
Seperti yang kita sedia maklum, AI dan LLM sedang pesat menukar bidang, dengan konsep dan idea baharu muncul setiap minggu. Walau bagaimanapun, reka bentuk rangka kerja LangChain, konsep abstrak yang dicipta di sekitar pelbagai teknologi baru muncul, sukar untuk bertahan dalam ujian masa.
Mengapa LangChain sangat abstrak
Pada mulanya, LangChain juga boleh membantu apabila keperluan mudah kita sepadan dengan andaian penggunaan LangChain. Tetapi abstraksi peringkat tingginya dengan cepat menjadikan kod kami lebih sukar untuk difahami dan mengecewakan untuk dikekalkan. Ini bukan satu petanda yang baik apabila pasukan menghabiskan banyak masa untuk memahami dan menyahpepijat LangChain seperti mana ia membina ciri.
Masalah dengan pendekatan abstrak LangChain boleh digambarkan dengan contoh remeh "menterjemah perkataan Inggeris ke dalam bahasa Itali".
Berikut ialah contoh Python hanya menggunakan pakej OpenAI:
Ini ialah kod ringkas dan mudah difahami yang mengandungi hanya satu kelas dan satu panggilan fungsi. Selebihnya ialah kod Python standard.
Bandingkan ini dengan versi LangChain:
Kodnya lebih kurang sama, tetapi di situlah persamaan berakhir.
Kami kini mempunyai tiga kelas dan empat panggilan fungsi. Tetapi apa yang membimbangkan ialah LangChain memperkenalkan tiga konsep abstrak baharu:
Templat Prompt: Menyediakan Prompt untuk LLM
Output parser: Memproses keluaran daripada LLM
The LC: LC; meliputi pengendali |.
Apa yang LangChain lakukan ialah meningkatkan kerumitan kod tanpa sebarang faedah yang jelas.
Kod jenis ini mungkin sesuai untuk prototaip awal. Tetapi untuk kegunaan pengeluaran, setiap komponen mesti difahami dengan munasabah supaya ia tidak ranap secara tidak dijangka di bawah keadaan penggunaan sebenar. Anda mesti mematuhi struktur data yang diberikan dan mereka bentuk aplikasi anda di sekeliling abstraksi ini.
Mari kita lihat satu lagi perbandingan abstrak dalam Python, kali ini mendapatkan JSON daripada API.
Gunakan pakej http terbina dalam:
Gunakan pakej permintaan:
Perbezaannya jelas. Beginilah rasanya abstraksi yang baik.
Sudah tentu, ini adalah contoh yang remeh. Tetapi apa yang saya cuba katakan ialah abstraksi yang baik memudahkan kod dan mengurangkan beban kognitif yang diperlukan untuk memahaminya.
LangChain cuba menjadikan hidup anda lebih mudah dengan menyembunyikan butiran dan melakukan lebih banyak lagi dengan kurang kod. Walau bagaimanapun, jika ini datang dengan mengorbankan kesederhanaan dan fleksibiliti, maka abstraksi kehilangan nilai.
LangChain a également l'habitude d'utiliser des abstractions par-dessus d'autres abstractions, vous devez donc souvent penser en termes d'abstractions imbriquées pour utiliser correctement l'API. Cela conduit inévitablement à comprendre d'énormes traces de pile et à déboguer le code du framework interne que vous n'avez pas écrit, plutôt qu'à implémenter de nouvelles fonctionnalités.
Impact de LangChain sur les équipes de développement
De manière générale, les applications utilisent fortement les agents IA pour effectuer différents types de tâches telles que la découverte de cas de test, la génération de tests Playwright et les correctifs automatiques.
Lorsque l'on souhaite passer d'une architecture unique d'agent séquentiel à une architecture plus complexe, LangChain devient un facteur limitant. Par exemple, générez des sous-agents et faites-les interagir avec l'agent d'origine. Ou plusieurs agents professionnels interagissent les uns avec les autres.
Dans un autre exemple, nous devons modifier dynamiquement la disponibilité des outils auxquels l'agent peut accéder en fonction de la logique métier et du résultat du LLM. Cependant, LangChain ne fournit pas de méthode pour observer l'état de l'agent de l'extérieur, ce qui nous a obligé à réduire la portée de la mise en œuvre pour nous adapter aux fonctionnalités limitées de LangChain Agent.
Une fois que nous l'avons supprimé, nous n'avons plus besoin de traduire nos besoins en une solution adaptée à LangChain. Nous avons juste besoin d'écrire du code.
Donc, si vous n'utilisez pas LangChain, quel framework devriez-vous utiliser ? Peut-être que vous n’avez pas du tout besoin d’un cadre.
Avons-nous vraiment besoin d'un cadre pour créer des applications d'IA ?
LangChain nous a fourni des fonctionnalités LLM dès les premiers jours, nous permettant de nous concentrer sur la création d'applications. Mais avec le recul, nous aurions été mieux à long terme sans ce cadre.
LangChain La longue liste de composants donne l'impression que la création d'une application basée sur LLM est très complexe. Mais les composants de base requis pour la plupart des applications sont généralement les suivants :
Client pour la communication LLM
Fonctions/outils pour les appels de fonctions
Base de données vectorielles pour RAG
Plateforme d'observabilité pour le suivi, l'évaluation, et plus.
L'espace Agent évolue rapidement, apportant des possibilités passionnantes et des cas d'utilisation intéressants, mais notre conseil : restez simple pour l'instant jusqu'à ce que les modèles d'utilisation des Agents soient solidifiés. Une grande partie des travaux de développement dans le domaine de l’intelligence artificielle reposent sur l’expérimentation et le prototypage.
Ce qui précède est l’expérience personnelle de Fabian Both au cours de l’année écoulée, mais LangChain n’est pas entièrement dénué de mérite.
Un autre développeur, Tim Valishev, a déclaré qu'il resterait avec LangChain pendant un certain temps encore :
J'aime vraiment Langsmith :
Déconnexion visuelle prête à l'emploi
Aire de jeux d'invites, vous pouvez corriger instantanément les invites à partir des journaux et voyez comment il fonctionne avec les mêmes entrées
Créez facilement des ensembles de données de test directement à partir des journaux, avec la possibilité d'exécuter des ensembles de tests simples dans des invites en un seul clic (ou de le faire dans le code) De bout en bout testing)
Historique des résultats des tests
Contrôle de version rapide
et il fournit un bon support pour le streaming de toute la chaîne, il faut un certain temps pour l'implémenter manuellement.
De plus, s'appuyer uniquement sur les API n'est pas suffisant. Les API de chaque grand fabricant de modèles sont différentes et la « commutation transparente » n'est pas possible.
Qu'en pensez-vous ?
Lien original : https://www.octomind.dev/blog/why-we-no-longer-use-langchain-for-building-our-ai-agents
Atas ialah kandungan terperinci Mengapa anda berputus asa dengan LangChain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!