Rumah > Peranti teknologi > AI > Tutorial Langgraph: Apakah Langgraph dan Cara Menggunakannya?

Tutorial Langgraph: Apakah Langgraph dan Cara Menggunakannya?

Jennifer Aniston
Lepaskan: 2025-03-06 10:57:10
asal
749 orang telah melayarinya

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.

Apa itu Langgraph?

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.

Struktur graf

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.

Pengurusan Negeri

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.

koordinasi

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.

mengapa Langgraph?

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.

Pembangunan mudah

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!

fleksibiliti

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.

Skalabiliti

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.

toleransi kesalahan

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.

Bermula dengan Langgraph

mari kita lihat bagaimana kita dapat menubuhkan Langgraph dan konsep asas.

Pemasangan

untuk memasang Langgraph, anda boleh menggunakan PIP:

pip install -U langgraph
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Konsep Asas

nod: nod mewakili unit kerja dalam langgraph anda. Mereka biasanya fungsi python yang melaksanakan tugas tertentu, seperti:

  • Berinteraksi dengan LLM
  • memanggil alat atau api
  • Melaksanakan beberapa manipulasi data
  • Menerima Input Pengguna
  • Melaksanakan logik perniagaan

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:

  • Sejarah Perbualan: Senarai mesej antara ejen dan pengguna.
  • Data Kontekstual: Maklumat yang berkaitan dengan tugas atau interaksi semasa.
  • Pembolehubah dalaman: bendera, kaunter, atau pembolehubah lain untuk mengesan kemajuan dan tingkah laku ejen.

membina aplikasi Langgraph mudah

Berikut adalah contoh langkah demi langkah untuk membuat aplikasi chatbot asas menggunakan Langgraph.

Langkah 1: Tentukan Stategraph

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Mulakan LLM dan tambahkannya sebagai nod chatbot

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)
Salin selepas log masuk
Salin selepas log masuk
Langkah 3: Tetapkan tepi

Oleh kerana kami sedang membina chatbot yang mudah, kami menetapkan nod chatbot sebagai kedua -dua titik masuk dan menamatkan graf untuk menunjukkan di mana untuk memulakan dan menamatkan proses.

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)
Salin selepas log masuk
Langkah 4: Menyusun dan menggambarkan graf

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")
Salin selepas log masuk

Tutorial Langgraph: Apakah Langgraph dan Cara Menggunakannya? Langkah 5: Jalankan chatbot

Akhirnya, kami melaksanakan gelung untuk terus mendorong pengguna untuk input, memprosesnya melalui graf, dan mencetak respons pembantu. Gelung keluar apabila pengguna jenis "berhenti", "keluar", atau "q".

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
Salin selepas log masuk

Sekarang kita menutup asas -asas, mari kita lihat beberapa ciri canggih.

Jenis Node Custom

Langgraph membolehkan anda membuat jenis nod tersuai untuk melaksanakan logik ejen kompleks. Ini memberikan fleksibiliti dan kawalan ke atas tingkah laku aplikasi anda.

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)
Salin selepas log masuk

jenis kelebihan

Langgraph menyokong jenis kelebihan yang berbeza untuk mengendalikan pelbagai corak komunikasi antara nod. Satu jenis berguna ialah kelebihan bersyarat, yang membolehkan membuat keputusan berdasarkan output nod.

Untuk membuat kelebihan bersyarat, anda memerlukan tiga komponen:

  1. nod hulu: output nod memutuskan langkah seterusnya.
  2. Fungsi: Fungsi ini menilai output nod hulu dan menentukan nod seterusnya untuk melaksanakan, mengembalikan rentetan yang mewakili keputusan.
  3. Pemetaan: Pemetaan ini menghubungkan hasil kemungkinan fungsi ke nod yang sepadan untuk dilaksanakan.

Inilah contoh dalam pseudocode:

pip install -U langgraph
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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!

Pengurusan Negeri

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)
Salin selepas log masuk
Salin selepas log masuk
pengendalian ralat

Langgraph juga menyediakan mekanisme untuk pengendalian ralat:

    Pengecualian: Fungsi nod boleh menimbulkan pengecualian untuk memberi isyarat kesilapan semasa pelaksanaan. Anda boleh menangkap dan mengendalikan pengecualian ini untuk mengelakkan graf anda daripada terhempas.
  • Mekanisme Retry: Anda boleh melaksanakan logik semula dalam nod anda untuk mengendalikan kesilapan sementara, seperti isu rangkaian atau waktu tamat API.
  • Pembalakan: Gunakan pembalakan untuk merakam kesilapan dan menjejaki pelaksanaan graf anda.
Aplikasi dunia nyata Langgraph

Langgraph boleh digunakan untuk membina pelbagai aplikasi.

chatbots

Langgraph sangat sesuai untuk membangunkan chatbots canggih yang boleh mengendalikan pelbagai permintaan pengguna. Dengan memanfaatkan pelbagai ejen LLM, chatbots ini dapat memproses pertanyaan bahasa semulajadi, memberikan respons yang tepat, dan beralih dengan lancar antara topik perbualan yang berbeza. Keupayaan untuk menguruskan interaksi negeri dan menyelaras memastikan bahawa chatbot mengekalkan konteks dan menyampaikan pengalaman pengguna yang koheren.

Ejen Autonomi

Untuk aplikasi yang memerlukan pengambilan keputusan autonomi, Langgraph membolehkan penciptaan ejen yang boleh melaksanakan tugas secara bebas berdasarkan input pengguna dan logik yang telah ditetapkan.

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.

sistem multi-agen

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.

alat automasi aliran kerja

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 Cadangan

Sistem cadangan peribadi boleh mendapat manfaat daripada keupayaan Langgraph. Dengan menggunakan pelbagai ejen untuk menganalisis tingkah laku pengguna, keutamaan, dan data kontekstual, sistem ini dapat menyampaikan cadangan yang disesuaikan untuk produk, kandungan, atau perkhidmatan. Fleksibiliti Langgraph membolehkan mengintegrasikan pelbagai sumber data dan algoritma, meningkatkan ketepatan dan kaitan cadangan.

Persekitaran Pembelajaran Peribadi

Dalam platform pendidikan, Langgraph boleh digunakan untuk mewujudkan persekitaran pembelajaran adaptif yang memenuhi gaya dan keperluan pembelajaran individu. Pelbagai ejen boleh menilai kemajuan pelajar, menyediakan latihan tersuai, dan menawarkan maklum balas masa nyata. Sifat negara Langgraph memastikan bahawa sistem mengekalkan maklumat mengenai prestasi dan keutamaan setiap pelajar, yang membolehkan pengalaman pendidikan yang lebih diperibadikan dan berkesan.

Kesimpulan

Langgraph secara signifikan memudahkan pembangunan aplikasi LLM kompleks dengan menyediakan rangka kerja berstruktur untuk menguruskan interaksi ejen negara dan penyelarasan.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan