ホームページ >テクノロジー周辺機器 >AI >Langgraphチュートリアル:Langgraphとは何ですか?
複雑でマルチエージェントの大手言語モデル(LLM)アプリケーションを構築していると想像してください。エキサイティングですが、さまざまなエージェントの状態を管理し、相互作用を調整し、エラーを効果的に処理するという課題があります。これは、Langgraphが役立つ場所です
Langgraphは、これらの課題に真正面に取り組むように設計されたLangchainエコシステム内のライブラリです。 Langgraphは、構造化された方法で複数のLLMエージェント(またはチェーン)を定義、調整、および実行するためのフレームワークを提供します。エージェントのランタイムを開発するために不可欠な循環グラフの作成を可能にすることにより、開発プロセスを簡素化します。 Langgraphを使用すると、堅牢でスケーラブルで柔軟なマルチエージェントシステムを簡単に構築できます。
Langchainエコシステムの詳細を知りたい場合は、この紹介をLangchainの紹介をお勧めします。langgraphとは?
langgraphを使用すると、LLMをできるだけ簡単に使用して、ステートフルでマルチアクターアプリケーションを作成できます。 Langchainの機能を拡張し、洗練されたエージェントのランタイムを開発するために極めて重要な周期的なグラフを作成および管理する機能を導入します。 Langgraphのコア概念には、グラフ構造、状態管理、および調整が含まれます。
グラフ構造状態管理
langgraphは、エージェントが正しい順序で実行され、必要な情報がシームレスに交換されることを保証します。この調整は、複数のエージェントが共通の目標を達成するために協力する必要がある複雑なアプリケーションにとって不可欠です。データの流れと一連の操作を管理することにより、Langgraphは、開発者がエージェント調整の複雑さではなく、アプリケーションの高レベルのロジックに集中できるようにします。
上で述べたように、Langgraphは複雑なLLMアプリケーションを操作する開発者にいくつかの重要な利点を提供します。 Langgraphが提供する現実世界の利点のいくつかは次のとおりです
ランググラフは、州の管理とエージェントの調整に関連する複雑さを抽象化します。これは、開発者がデータの一貫性と適切な実行順序を確保する基礎となるメカニズムを心配することなく、ワークフローとロジックを定義できることを意味します。この単純化は、開発プロセスを加速し、エラーの可能性を減らします。ゲームチェンジャーです!
Langgraphを使用すると、開発者は独自のエージェントロジックと通信プロトコルを定義する柔軟性を持っています。これにより、特定のユースケースに合わせた高度にカスタマイズされたアプリケーションが可能になります。さまざまな種類のユーザーリクエストを処理できるチャットボットや、複雑なタスクを実行するマルチエージェントシステムが必要な場合でも、Langgraphは必要なものを正確に構築するためのツールを提供します。それはあなたに創造する力を与えることです。
Langgraphは、大規模なマルチエージェントアプリケーションの実行をサポートするために構築されています。その堅牢なアーキテクチャは、大量の相互作用と複雑なワークフローを処理し、ニーズに合わせて成長できるスケーラブルなシステムの開発を可能にします。これにより、パフォーマンスと信頼性が重要なエンタープライズレベルのアプリケーションやシナリオに適しています。
フォールトトレランスlanggraph
インストール
Langgraphをインストールするには、PIP:基本的な概念
pip install -U langgraphノード:ノードは、Langgraph内の作業単位を表します。通常、次のような特定のタスクを実行するPython関数です。
ツールまたはAPIの呼び出し
ステートグラフオブジェクトを定義して、チャットボットをステートマシンとして構成します。状態は、タイプリストの単一のキーメッセージで定義されたクラスオブジェクトであり、add_messages()関数を使用して、それらを上書きするのではなく新しいメッセージを追加します。
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")基本をカバーしたので、いくつかの高度な機能を見てみましょう。
カスタムノードタイプ
ここでは、カスタムロジックをカプセル化してLLMと対話するクラスMyCustomNodeを定義します。これにより、複雑なノード動作を実装するためのより構造化され、保守可能な方法が提供されます。
エッジタイプgraph = graph_builder.compile() from IPython.display import Image, display try: display(Image(graph.get_graph().draw_mermaid_png())) except Exception: pass
ここで、「モデル」ノードが呼び出された後、グラフ(「end」)を終了してユーザーに戻るか、継続(「続行」)を呼び、ユーザーが決定するものにdeしてツールを呼び出すことができます!
状態管理pip install -U langgraphLanggraphは、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の柔軟性により、さまざまなデータソースとアルゴリズムを統合し、推奨事項の精度と関連性を高めることができます。
教育プラットフォームでは、Langgraphを使用して、個々の学習スタイルとニーズに応える適応学習環境を作成できます。複数のエージェントは、学生の進捗状況を評価し、カスタマイズされたエクササイズを提供し、リアルタイムのフィードバックを提供できます。 Langgraphのステートフルな性質により、システムが各学習者のパフォーマンスと好みに関する情報を保持し、よりパーソナライズされた効果的な教育体験を可能にします。
結論Langchainエコシステム内のアプリケーションの開発について詳しく知りたい場合は、Langchainを使用したLLMアプリケーションの開発についてこのコースをお勧めします。
以上がLanggraphチュートリアル:Langgraphとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。