ホームページ > テクノロジー周辺機器 > AI > Langgraphチュートリアル:Langgraphとは何ですか?

Langgraphチュートリアル:Langgraphとは何ですか?

Jennifer Aniston
リリース: 2025-03-06 10:57:10
オリジナル
748 人が閲覧しました

複雑でマルチエージェントの大手言語モデル(LLM)アプリケーションを構築していると想像してください。エキサイティングですが、さまざまなエージェントの状態を管理し、相互作用を調整し、エラーを効果的に処理するという課題があります。これは、Langgraphが役立つ場所です

Langgraphは、これらの課題に真正面に取り組むように設計されたLangchainエコシステム内のライブラリです。 Langgraphは、構造化された方法で複数のLLMエージェント(またはチェーン)を定義、調整、および実行するためのフレームワークを提供します。

エージェントのランタイムを開発するために不可欠な循環グラフの作成を可能にすることにより、開発プロセスを簡素化します。 Langgraphを使用すると、堅牢でスケーラブルで柔軟なマルチエージェントシステムを簡単に構築できます。

Langchainエコシステムの詳細を知りたい場合は、この紹介をLangchainの紹介をお勧めします。

langgraphとは?

langgraphを使用すると、LLMをできるだけ簡単に使用して、ステートフルでマルチアクターアプリケーションを作成できます。 Langchainの機能を拡張し、洗練されたエージェントのランタイムを開発するために極めて重要な周期的なグラフを作成および管理する機能を導入します。 Langgraphのコア概念には、グラフ構造、状態管理、および調整が含まれます。

グラフ構造

指示されたグラフとしてアプリケーションを想像してください。 Langgraphでは、各ノードはLLMエージェントを表し、エッジはこれらのエージェント間の通信チャネルです。この構造により、各エージェントが特定のタスクを実行し、必要に応じて他のエージェントに情報を渡す明確で管理可能なワークフローが可能になります。

状態管理

Langgraphの傑出した機能の1つは、自動状態管理です。この機能により、複数の相互作用にわたって情報を追跡および維持できます。エージェントがタスクを実行するにつれて、状態は動的に更新され、システムがコンテキストを維持し、新しい入力に適切に応答するようにします。

調整

langgraphは、エージェントが正しい順序で実行され、必要な情報がシームレスに交換されることを保証します。この調整は、複数のエージェントが共通の目標を達成するために協力する必要がある複雑なアプリケーションにとって不可欠です。データの流れと一連の操作を管理することにより、Langgraphは、開発者がエージェント調整の複雑さではなく、アプリケーションの高レベルのロジックに集中できるようにします。

なぜlanggraph?

上で述べたように、Langgraphは複雑なLLMアプリケーションを操作する開発者にいくつかの重要な利点を提供します。 Langgraphが提供する現実世界の利点のいくつかは次のとおりです

単純化された開発

ランググラフは、州の管理とエージェントの調整に関連する複雑さを抽象化します。これは、開発者がデータの一貫性と適切な実行順序を確保する基礎となるメカニズムを心配することなく、ワークフローとロジックを定義できることを意味します。この単純化は、開発プロセスを加速し、エラーの可能性を減らします。ゲームチェンジャーです!

柔軟性

Langgraphを使用すると、開発者は独自のエージェントロジックと通信プロトコルを定義する柔軟性を持っています。これにより、特定のユースケースに合わせた高度にカスタマイズされたアプリケーションが可能になります。さまざまな種類のユーザーリクエストを処理できるチャットボットや、複雑なタスクを実行するマルチエージェントシステムが必要な場合でも、Langgraphは必要なものを正確に構築するためのツールを提供します。それはあなたに創造する力を与えることです。

スケーラビリティ

Langgraphは、大規模なマルチエージェントアプリケーションの実行をサポートするために構築されています。その堅牢なアーキテクチャは、大量の相互作用と複雑なワークフローを処理し、ニーズに合わせて成長できるスケーラブルなシステムの開発を可能にします。これにより、パフォーマンスと信頼性が重要なエンタープライズレベルのアプリケーションやシナリオに適しています。

フォールトトレランス

信頼性は、Langgraphの設計における中核的な考慮事項です。ライブラリには、エラーを優雅に処理するメカニズムが含まれており、個々のエージェントが問題に遭遇した場合でもアプリケーションが動作し続けることができるようにします。この障害のトレランスは、複雑なマルチエージェントシステムの安定性と堅牢性を維持するために不可欠です。心の安らぎはただの特徴です。

langgraph

を始めましょう

Langgraphと基本的な概念が何であるかを見てみましょう。

インストール

Langgraphをインストールするには、PIP:

を使用できます

基本的な概念

pip install -U langgraph
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ノード:ノードは、Langgraph内の作業単位を表します。通常、次のような特定のタスクを実行するPython関数です。

LLM

との対話

ツールまたはAPIの呼び出し
    いくつかのデータ操作を実行する
  • ユーザー入力の受信
  • ビジネスロジックの実行
  • Langgraphでは、graph.add_node(name、value)syntaxを使用してノードを追加できます。
  • エッジ:エッジは、ノード間の通信チャネルです。情報の流れと実行の順序を定義します。 graph.add_edge(node1、node2)syntaxを使用してエッジを追加できます
  • 状態:状態は、グラフのノードによって時間とともに更新される中央のオブジェクトです。アプリケーションの内部状態を管理し、アプリケーションの要件に応じてオーバーライドまたは追加できます。この状態は、次のようなものを保持できます
    • 会話履歴:エージェントとユーザーの間のメッセージのリスト。
    • コンテキストデータ:現在のタスクまたはインタラクションに関連する情報。
    • 内部変数:エージェントの進捗と動作を追跡するためのフラグ、カウンター、またはその他の変数。
    • 単純なランググラフアプリケーションの構築
    Langgraphを使用して基本的なチャットボットアプリケーションを作成する段階的な例です。

    ステップ1:stategraph

    を定義します

    ステートグラフオブジェクトを定義して、チャットボットをステートマシンとして構成します。状態は、タイプリストの単一のキーメッセージで定義されたクラスオブジェクトであり、add_messages()関数を使用して、それらを上書きするのではなく新しいメッセージを追加します。

    ステップ2:LLMを初期化し、チャットボットノードとして追加

    このチャットボット関数は、グラフに「チャットボット」という名前のノードとして追加されています。
    pip install -U langgraph
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ステップ3:エッジを設定

    シンプルなチャットボットを構築しているため、チャットボットノードをグラフのエントリポイントと仕上げポイントの両方として設定して、プロセスを開始して終了する場所を示します。

    ステップ4:グラフをコンパイルして視覚化します

    グラフをコンパイルしてコンパイルされたグラフオブジェクトを作成します。オプションでは、以下のコードを使用してグラフ構造を視覚化できます。
    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)
    ログイン後にコピー
    ログイン後にコピー

    ステップ5:チャットボットを実行します
    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)
    ログイン後にコピー

    最後に、ループを実装して、ユーザーに入力を継続的に促し、グラフを介して処理し、アシスタントの応答を印刷します。ユーザーが「終了」、「終了」、または「Q」を入力すると、ループが終了します。

    高度なLanggraphの特徴

    # Set entry and finish points
    graph_builder.set_entry_point("chatbot")
    graph_builder.set_finish_point("chatbot")
    ログイン後にコピー
    基本をカバーしたので、いくつかの高度な機能を見てみましょう。

    Langgraphチュートリアル:Langgraphとは何ですか?カスタムノードタイプ

    langgraphを使用すると、複雑なエージェントロジックを実装するためにカスタムノードタイプを作成できます。これにより、アプリケーションの動作に対する柔軟性と制御が提供されます

    ここでは、カスタムロジックをカプセル化してLLMと対話するクラスMyCustomNodeを定義します。これにより、複雑なノード動作を実装するためのより構造化され、保守可能な方法が提供されます。

    エッジタイプ
    graph = graph_builder.compile()
    from IPython.display import Image, display
    try:
        display(Image(graph.get_graph().draw_mermaid_png()))
    except Exception:
        pass
    ログイン後にコピー

    Langgraphは、さまざまなエッジタイプをサポートして、ノード間のさまざまな通信パターンを処理します。便利なタイプの1つは、ノードの出力に基づいて意思決定を可能にする条件付きエッジです。

    条件付きエッジを作成するには、3つのコンポーネントが必要です
    1. アップストリームノード:ノードの出力は次のステップを決定します。
    2. 関数:この関数は、上流のノードの出力を評価し、決定を表す文字列を返す次のノードを決定します。
    3. マッピング:このマッピングは、機能の可能な結果を​​、実行する対応するノードにリンクします。
    4. Pseudocodeの例:

    ここで、「モデル」ノードが呼び出された後、グラフ(「end」)を終了してユーザーに戻るか、継続(「続行」)を呼び、ユーザーが決定するものにdeしてツールを呼び出すことができます!

    状態管理
    pip install -U langgraph
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    Langgraphは、SQLite、PostgreSQL、MongoDBなどの外部データベースの使用、またはAmazon S3、Google Cloud Storage、Azure Blobストレージなどのクラウドストレージソリューションを使用して、エージェントの状態を保存および取得するための強力な州管理手法を提供し、信頼性とスケーラビリティを可能にします。

    州管理にSQLiteデータベースを使用する例は次のとおりです。

    エラー処理

    langgraphは、エラー処理のメカニズムも提供します:

    例外:ノード関数は、実行中にエラーを信号にするための例外を提起できます。グラフがクラッシュするのを防ぐために、これらの例外をキャッチして処理できます。
    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)
    ログイン後にコピー
    ログイン後にコピー
    再試行メカニズム:ネットワークの問題やAPIタイムアウトなどの一時的なエラーを処理するために、ノード内にRetryロジックを実装できます。

    ロギング:ロギングを使用してエラーを記録し、グラフの実行を追跡します。

    Langgraphの実際のアプリケーション

      langgraphを使用して、幅広いアプリケーションを構築できます。
    • チャットボット
    • Langgraphは、幅広いユーザーリクエストを処理できる洗練されたチャットボットを開発するのに最適です。複数のLLMエージェントを活用することにより、これらのチャットボットは自然言語クエリを処理し、正確な応答を提供し、異なる会話トピックをシームレスに切り替えることができます。状態を管理し、インタラクションを調整する機能により、チャットボットがコンテキストを維持し、一貫したユーザーエクスペリエンスを提供することが保証されます。
    • 自律エージェント
    自律的な意思決定を必要とするアプリケーションの場合、Langgraphは、ユーザー入力と事前定義されたロジックに基づいて独立してタスクを実行できるエージェントの作成を可能にします。

    これらのエージェントは、複雑なワークフローを実行し、他のシステムと対話し、動的に新しい情報に適応できます。 Langgraphの構造化されたフレームワークにより、各エージェントが効率的かつ効果的に動作するようになり、自動化されたカスタマーサポート、データ処理、システム監視などのタスクに適しています。

    マルチエージェントシステム

    ランググラフは、複数のエージェントが共通の目標を達成するために協力するアプリケーションの構築に優れています。たとえば、さまざまなエージェントが在庫を管理し、注文を処理し、サプライチェーン管理システムで配信を調整できます。 Langgraphの調整機能により、各エージェントが効果的に通信し、情報を共有し、同期した方法で意思決定を行うことが保証されます。これにより、より効率的な操作とシステム全体のパフォーマンスが向上します。

    ワークフローオートメーションツール

    Langgraphを使用すると、ビジネスプロセスとワークフローの自動化が簡単になります。インテリジェントエージェントは、ドキュメント処理、承認ワークフロー、データ分析などのタスクを処理するように設計できます。明確なワークフローを定義し、Langgraphの状態管理を活用することにより、これらのツールは、人間の介入なしに複雑なアクションシーケンスを実行し、エラーを減らし、生産性を高めることができます。

    推奨システム

    パーソナライズされた推奨システムは、Langgraphの能力から大きな恩恵を受けることができます。複数のエージェントを採用してユーザーの動作、好み、コンテキストデータを分析することにより、これらのシステムは、製品、コンテンツ、またはサービスに合わせた提案を提供できます。 Langgraphの柔軟性により、さまざまなデータソースとアルゴリズムを統合し、推奨事項の精度と関連性を高めることができます。

    パーソナライズされた学習環境

    教育プラットフォームでは、Langgraphを使用して、個々の学習スタイルとニーズに応える適応学習環境を作成できます。複数のエージェントは、学生の進捗状況を評価し、カスタマイズされたエクササイズを提供し、リアルタイムのフィードバックを提供できます。 Langgraphのステートフルな性質により、システムが各学習者のパフォーマンスと好みに関する情報を保持し、よりパーソナライズされた効果的な教育体験を可能にします。

    結論

    Langgraphは、状態を管理し、エージェントの相互作用を調整するための構造化されたフレームワークを提供することにより、複雑なLLMアプリケーションの開発を大幅に簡素化します。 Langgraphの潜在的な開発には、他のLangchainコンポーネントとの統合、新しいLLMモデルのサポート、およびAcademiaからのより高度なエージェントランタイムの導入が含まれます。

    Langchainエコシステム内のアプリケーションの開発について詳しく知りたい場合は、Langchainを使用したLLMアプリケーションの開発についてこのコースをお勧めします。

以上がLanggraphチュートリアル:Langgraphとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート