Bayangkan anda membina aplikasi model bahasa besar yang kompleks dan pelbagai agen (LLM). Ia menarik, tetapi ia datang dengan cabaran: menguruskan keadaan pelbagai ejen, menyelaraskan interaksi mereka, dan mengendalikan kesilapan dengan berkesan. Di sinilah Langgraph dapat membantu.
Langgraph adalah perpustakaan dalam ekosistem Langchain yang direka untuk menangani cabaran-cabaran ini. Langgraph menyediakan rangka kerja untuk menentukan, menyelaras, dan melaksanakan pelbagai ejen LLM (atau rantai) dengan cara yang berstruktur.
Ia memudahkan proses pembangunan dengan membolehkan penciptaan graf kitaran, yang penting untuk membangunkan runtime ejen. Dengan Langgraph, kita dapat dengan mudah membina sistem multi-agen yang mantap, berskala, dan fleksibel.
Jika anda ingin mengetahui lebih lanjut mengenai ekosistem Langchain, saya cadangkan pengenalan ini kepada Langchain.
Langgraph membolehkan kami membuat aplikasi multi-pelakon yang menggunakan LLMs dengan mudah. Ia memanjangkan keupayaan Langchain, memperkenalkan keupayaan untuk mencipta dan mengurus graf kitaran, yang penting untuk membangunkan runtime agen yang canggih. Konsep teras Langgraph termasuk: struktur graf, pengurusan negeri, dan koordinasi.
Bayangkan aplikasi anda sebagai graf yang diarahkan. Di Langgraph, setiap nod mewakili ejen LLM, dan tepi adalah saluran komunikasi antara agen -agen ini. Struktur ini membolehkan aliran kerja yang jelas dan terkawal, di mana setiap ejen melakukan tugas tertentu dan menyampaikan maklumat kepada ejen lain seperti yang diperlukan.
Salah satu ciri standout Langgraph adalah pengurusan keadaan automatiknya. Ciri ini membolehkan kita mengesan dan meneruskan maklumat dalam pelbagai interaksi. Sebagai ejen melaksanakan tugas mereka, Negeri dikemas kini secara dinamik, memastikan sistem mengekalkan konteks dan bertindak balas dengan sewajarnya kepada input baru.
Langgraph memastikan ejen melaksanakan mengikut urutan yang betul dan maklumat yang diperlukan ditukar dengan lancar. Penyelarasan ini sangat penting untuk aplikasi yang kompleks di mana pelbagai ejen perlu bekerjasama untuk mencapai matlamat yang sama. Dengan menguruskan aliran data dan urutan operasi, Langgraph membolehkan pemaju memberi tumpuan kepada logik peringkat tinggi aplikasi mereka dan bukannya selok-belok koordinasi ejen.
Seperti yang saya nyatakan di atas, Langgraph menawarkan beberapa kelebihan penting bagi pemaju yang bekerja dengan aplikasi LLM yang kompleks. Berikut adalah beberapa manfaat dunia yang ditawarkan Langgraph.
Langgraph abstrak dari kerumitan yang berkaitan dengan pengurusan negeri dan koordinasi ejen. Ini bermakna pemaju boleh menentukan aliran kerja dan logik mereka tanpa bimbang tentang mekanisme asas yang memastikan konsistensi data dan perintah pelaksanaan yang betul. Penyederhanaan ini mempercepatkan proses pembangunan dan mengurangkan kemungkinan kesilapan. Ia adalah penukar permainan!
Dengan Langgraph, pemaju mempunyai fleksibiliti untuk menentukan protokol logik dan komunikasi ejen mereka sendiri. Ini membolehkan aplikasi yang disesuaikan disesuaikan dengan kes penggunaan tertentu. Sama ada anda memerlukan chatbot yang boleh mengendalikan pelbagai jenis permintaan pengguna atau sistem multi-agen yang melakukan tugas yang kompleks, Langgraph menyediakan alat untuk membina apa yang anda perlukan. Ini semua memberi anda kuasa untuk membuat.
Langgraph dibina untuk menyokong pelaksanaan aplikasi multi-agen berskala besar. Senibina yang mantapnya dapat mengendalikan jumlah interaksi yang tinggi dan aliran kerja yang kompleks, membolehkan pembangunan sistem berskala yang dapat berkembang dengan keperluan anda. Ini menjadikannya sesuai untuk aplikasi dan senario peringkat perusahaan di mana prestasi dan kebolehpercayaan adalah kritikal.
Kebolehpercayaan adalah pertimbangan utama dalam reka bentuk Langgraph. Perpustakaan termasuk mekanisme untuk mengendalikan kesilapan dengan anggun, memastikan aplikasi anda dapat terus beroperasi walaupun ejen individu menghadapi masalah. Toleransi kesalahan ini adalah penting untuk mengekalkan kestabilan dan keteguhan sistem pelbagai agen yang kompleks. Ketenangan fikiran hanyalah ciri jauh.
mari kita lihat bagaimana kita dapat menubuhkan Langgraph dan konsep asas.
untuk memasang Langgraph, anda boleh menggunakan PIP:
pip install -U langgraph
nod: nod mewakili unit kerja dalam langgraph anda. Mereka biasanya fungsi python yang melaksanakan tugas tertentu, seperti:
di langgraph, anda boleh menambah nod menggunakan sintaks graph.add_node (nama, nilai).
tepi: tepi adalah saluran komunikasi antara nod. Mereka menentukan aliran maklumat dan perintah pelaksanaan. Anda boleh menambah tepi menggunakan sintaks graph.add_edge (node1, node2).
Negeri: Negeri adalah objek pusat yang dikemas kini dari masa ke masa oleh nod dalam graf. Ia menguruskan keadaan dalaman permohonan anda dan boleh ditindih atau ditambah kepada, bergantung kepada keperluan aplikasi. Negeri ini boleh memegang perkara seperti:
Berikut adalah contoh langkah demi langkah untuk membuat aplikasi chatbot asas menggunakan Langgraph.
Tentukan objek Stategraph untuk menyusun chatbot sebagai mesin negara. Negeri adalah objek kelas yang ditakrifkan dengan satu mesej utama senarai jenis dan menggunakan fungsi add_messages () untuk menambah mesej baru daripada menimpa mereka.
pip install -U langgraph
di sini, kami memulakan model AzureChatopenai dan membuat fungsi chatbot mudah yang mengambil mesej negeri sebagai input dan menghasilkan tindak balas mesej (yang kemudiannya dilampirkan ke negeri).
fungsi chatbot ini ditambah sebagai nod bernama "chatbot" ke graf.
from typing import Annotated from typing_extensions import TypedDict from langgraph.graph import StateGraph from langgraph.graph.message import add_messages class State(TypedDict): # messages have the type "list". # The add_messages function appends messages to the list, rather than overwriting them messages: Annotated[list, add_messages] graph_builder = StateGraph(State)
from langchain_openai import AzureChatOpenAI llm = AzureChatOpenAI( openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"], azure_deployment=os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"], ) def chatbot(state: State): return {"messages": [llm.invoke(state["messages"])]} ‘’’The first argument is the unique node name # The second argument is the function or object that will be called whenever the node is used.’’’ graph_builder.add_node("chatbot", chatbot)
menyusun graf untuk membuat objek CompiledGraph, dan secara pilihan, kita dapat memvisualisasikan struktur graf menggunakan kod di bawah:
# Set entry and finish points graph_builder.set_entry_point("chatbot") graph_builder.set_finish_point("chatbot")
Langkah 5: Jalankan chatbot
Ciri -ciri Langgraph Advanced
graph = graph_builder.compile() from IPython.display import Image, display try: display(Image(graph.get_graph().draw_mermaid_png())) except Exception: pass
Jenis Node Custom
di sini, kami menentukan kelas mycustomnode yang merangkumi logik tersuai dan berinteraksi dengan LLM. Ini menyediakan cara yang lebih berstruktur dan boleh dipelihara untuk melaksanakan tingkah laku nod kompleks.
# Run the chatbot while True: user_input = input("User: ") if user_input.lower() in ["quit", "exit", "q"]: print("Goodbye!") break for event in graph.stream({"messages": [("user", user_input)]}): for value in event.values(): print("Assistant:", value["messages"][-1].content)
jenis kelebihan
Untuk membuat kelebihan bersyarat, anda memerlukan tiga komponen:
Inilah contoh dalam pseudocode:
pip install -U langgraph
di sini, selepas nod "Model" dipanggil, kita boleh keluar dari graf ("akhir") dan kembali kepada pengguna, atau kami boleh meneruskan ("Teruskan") dan panggil alat -bergantung pada apa yang pengguna memutuskan!
Langgraph menawarkan teknik pengurusan negeri yang kuat, termasuk menggunakan pangkalan data luaran seperti penyelesaian SQLite, PostgreSQL, dan MongoDB, atau awan seperti Amazon S3, Google Cloud Storage, dan penyimpanan Blob Azure untuk menyimpan dan mengambil semula keadaan ejen anda, membolehkan kebolehpercayaan dan skalabiliti.
Berikut adalah contoh menggunakan pangkalan data SQLite untuk Pengurusan Negeri:
from typing import Annotated from typing_extensions import TypedDict from langgraph.graph import StateGraph from langgraph.graph.message import add_messages class State(TypedDict): # messages have the type "list". # The add_messages function appends messages to the list, rather than overwriting them messages: Annotated[list, add_messages] graph_builder = StateGraph(State)
chatbots
Ejen Autonomi
Ejen -ejen ini boleh melaksanakan aliran kerja kompleks, berinteraksi dengan sistem lain, dan menyesuaikan diri dengan maklumat baru secara dinamik. Rangka kerja berstruktur Langgraph memastikan setiap ejen beroperasi dengan cekap dan berkesan, menjadikannya sesuai untuk tugas -tugas seperti sokongan pelanggan automatik, pemprosesan data, dan pemantauan sistem.
Langgraph cemerlang dalam membina aplikasi di mana pelbagai ejen bekerjasama untuk mencapai matlamat yang sama. Sebagai contoh, ejen yang berbeza boleh menguruskan inventori, proses pesanan, dan menyelaraskan penghantaran dalam sistem pengurusan rantaian bekalan. Keupayaan koordinasi Langgraph memastikan bahawa setiap ejen berkomunikasi dengan berkesan, berkongsi maklumat dan membuat keputusan dengan cara yang disegerakkan. Ini membawa kepada operasi yang lebih cekap dan prestasi sistem keseluruhan yang lebih baik.
dengan Langgraph, mengautomasikan proses perniagaan dan aliran kerja menjadi mudah. Ejen pintar boleh direka untuk mengendalikan tugas seperti pemprosesan dokumen, aliran kerja kelulusan, dan analisis data. Dengan mendefinisikan aliran kerja yang jelas dan memanfaatkan pengurusan negeri Langgraph, alat -alat ini dapat melaksanakan urutan tindakan yang kompleks tanpa campur tangan manusia, mengurangkan kesilapan dan meningkatkan produktiviti.
Sistem CadanganPersekitaran Pembelajaran Peribadi
Kesimpulan
Perkembangan yang berpotensi untuk Langgraph termasuk integrasi dengan komponen Langchain yang lain, sokongan untuk model LLM baru, dan pengenalan runtime ejen yang lebih maju dari akademik.
Jika anda ingin mengetahui lebih lanjut mengenai membangunkan aplikasi dalam ekosistem Langchain, saya cadangkan kursus ini untuk membangunkan aplikasi LLM dengan Langchain.
Atas ialah kandungan terperinci Tutorial Langgraph: Apakah Langgraph dan Cara Menggunakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!