ウェブサイト検索

ローカル AI エージェントの構築: LangGraph、AI エージェント、および Ollama のガイド


導入

この絶え間なく変化するテクノロジーの時代において、人工知能 (AI) はイノベーションを推進し、産業を変革しています。 AI 内のさまざまな進歩の中でも、AI エージェントの開発と導入は、ビジネスの運営方法を再構築し、ユーザー エクスペリエンスを向上させ、複雑なタスクを自動化することが知られています。

AI エージェントは、特定のタスクを自律的に実行できるソフトウェア エンティティであり、顧客サービスのチャットボットから高度なデータ分析ツール、金融エージェントに至るまで、多くのアプリケーションで不可欠なものになっています。

この記事では、基本的な AI エージェントを作成して、これらのエージェントの作成と展開を容易にする重要性、機能、および技術的フレームワークを検討します。具体的には、ローカル AI エージェントの構築を簡素化する 2 つの強力なツールである LangGraph と Ollama について理解します。

このガイドを読み終えるまでに、これらのテクノロジーを活用して、特定のニーズに合わせた効率的かつ効果的な AI エージェントを作成する方法を包括的に理解できるようになります。

AI エージェントを理解する

AI エージェントは、環境を認識し、特定の目標や目的を達成するために行動を起こすエンティティまたはシステムです。これらのエージェントは、単純なアルゴリズムから複雑な意思決定が可能な高度なシステムまで多岐にわたります。 AI エージェントに関する重要なポイントは次のとおりです。

  1. 知覚: AI エージェントは、センサーまたは入力メカニズムを使用して環境を認識します。これには、カメラ、マイク、その他のセンサーなどのさまざまなソースからのデータ収集が含まれる場合があります。
  2. 推論: AI エージェントは情報を受け取り、アルゴリズムとモデルを使用してデータを処理および解釈します。このステップには、パターンの理解、予測、または応答の生成が含まれます。
  3. 意思決定: AI エージェントは人間と同様に、認識と推論に基づいて行動や出力を決定します。これらの決定は、プログラミングまたは学習プロセスによって定義された特定の目標または目的を達成することを目的としています。さらに、AI エージェントは人間の代わりとなるというよりも、むしろアシスタントとして機能するようになるでしょう。
  4. 動作: AI エージェントは決定に基づいてアクションを実行します。これには、現実世界での物理的なアクション (ロボット アームの移動など) またはデジタル環境での仮想アクション (アプリでの推奨事項の作成など) が含まれる場合があります。

AI エージェントが動作する例としては、医療記録、検査結果、リアルタイム監視デバイスなど、さまざまなソースからの患者データを分析する医療システムが挙げられます。これらの AI エージェントは、このデータを使用して、患者が特定の症状を発症する可能性を予測したり、患者の病歴や現在の健康状態に基づいて個別の治療計画を推奨したりするなど、情報に基づいた意思決定を行うことができます。

AI エージェントと RAG アプリケーションの違い

RAG (検索拡張生成) アプリケーションと AI エージェントは、人工知能内の異なる概念を指します。

RAG は、情報検索メソッドを組み込むことで LLM モデルのパフォーマンスを向上させるために使用されます。検索システムは、入力されたクエリに基づいて大規模なコーパスから関連する文書または情報を検索します。次に、生成モデル (トランスフォーマーベースの言語モデルなど) は、この取得した情報を使用して、より正確で文脈に関連した応答を生成します。これにより、取得した情報が統合されるため、生成されたコンテンツの精度が向上します。さらに、この手法により、新しいデータで LLM を微調整したりトレーニングしたりする必要がなくなります。

一方、AI エージェントは、特定のタスクまたは一連のタスクを実行するように設計された自律的なソフトウェア エンティティです。これらは、事前定義されたルール、機械学習モデル、またはその両方に基づいて動作します。多くの場合、ユーザーまたは他のシステムと対話して、入力を収集し、応答を提供し、アクションを実行します。一部の AI エージェントは、新しいデータとエクスペリエンスに基づいて時間の経過とともに学習し、適応できるため、パフォーマンスが向上します。 AI は複数のタスクを同時に処理できるため、ビジネスに拡張性をもたらします。

RAG is a technique used to improve the performance of generative models by incorporating information retrieval methods

AI パーソナル アシスタントは自律的なタスクを実行し、意思決定を行うことができます

Retrieval system + generative model

ルールベースのシステム、機械学習モデル、または AI 技術の組み合わせ

Improved accuracy and relevance, leverage external data

汎用性、適応性の向上

Question answering, customer support, content generation

仮想アシスタント、自動運転車、レコメンデーション システム

Ability to leverage large, external datasets for enhancing generative responses without requiring the generative model itself to be trained on all that data

ユーザーと対話し、変化する要件や環境に適応する能力。

A chatbot that retrieves relevant FAQs or knowledge base articles to answer user queries more effectively.

ユーザーの好みや行動に基づいて製品やコンテンツを提案するレコメンデーション エンジン。

要約すると、RAG アプリケーションは、取得メカニズムを組み込むことで生成モデルの機能を強化するように特別に設計されています。 AI エージェントは、さまざまなタスクを自律的に実行することを目的とした、より広範なエンティティです。

LangGraph の概要

LangGraph は、大規模言語モデル (LLM) を使用してステートフルなマルチアクター アプリケーションを構築するための強力なライブラリです。単一または複数のエージェントが関与する複雑なワークフローの作成に役立ち、サイクル、制御性、永続性などの重要な利点を提供します。

主な利点

  1. サイクルと分岐: 単純な有向非巡回グラフ (DAG) を使用する他のフレームワークとは異なり、LangGraph は、洗練されたエージェントの動作を作成するために不可欠なループと条件をサポートしています。
  2. きめ細かい制御: LangGraph は、アプリケーションのフローと状態を低レベルのフレームワークとして詳細に制御できるため、信頼性の高いエージェントの開発に最適です。
  3. 永続性: 組み込みの永続性が含まれており、各ステップ後の状態の保存、実行の一時停止と再開を可能にし、エラー回復や人間参加型ワークフローなどの高度な機能をサポートします。

特徴

  • サイクルと分岐: アプリにループと条件を実装します。
  • 永続性: 各ステップの後に状態を自動的に保存し、エラー回復をサポートします。
  • 人間参加型: 人間の承認または編集のために実行を中断します。
  • ストリーミング サポート: 各ノードが出力を生成するときに出力をストリーミングします。
  • LangChain との統合: LangChain および LangSmith とシームレスに統合されますが、単独で使用することもできます。

LangGraph は Pregel や Apache Beam などのテクノロジーからインスピレーションを受けており、NetworkX に似たユーザーフレンドリーなインターフェイスを備えています。 LangChain Inc. によって開発され、信頼性の高い高度な AI 駆動型アプリケーションを構築するための堅牢なツールを提供します。

オラマの簡単な紹介

Ollama は、ローカル マシン上で LLM を簡単かつユーザーフレンドリーに実行できるようにするオープンソース プロジェクトです。これは、LLM テクノロジーの複雑さを簡素化し、広範な技術的専門知識を必要とせずに AI の力を活用したいユーザーがアクセスしやすくカスタマイズできる、ユーザーフレンドリーなプラットフォームを提供します。

取り付けは簡単です。さらに、ユーザーエクスペリエンスを向上させるために設計されたモデルと包括的な機能セットを取り揃えています。

主な特長

  1. ローカル展開: 高度な LLM をローカル マシン上で直接実行し、データのプライバシーを確保し、外部サーバーへの依存を軽減します。
  2. ユーザーフレンドリーなインターフェイス: 直感的で使いやすいように設計されており、さまざまなレベルの技術知識を持つユーザーがアクセスできます。
  3. カスタマイズ性: 研究、開発、個人プロジェクトなど、特定のニーズに合わせて AI モデルを微調整できます。
  4. オープンソース: オープンソースである Ollama は、コミュニティへの貢献と継続的な改善を奨励し、イノベーションとコラボレーションを促進します。
  5. 簡単なインストール: Ollama はユーザーフレンドリーなインストール プロセスで際立っており、Windows、macOS、Linux ユーザーに直感的で手間のかからないセットアップ方法を提供します。 Ollama のダウンロードと使用に関する記事を作成しました。ブログをチェックしてください (リンクはリソースセクションにあります)。
  6. Ollama コミュニティ: Ollama コミュニティは、開発、ツール、統合を強化する活発なオープンソース コミュニティにより、コラボレーションとイノベーションを促進する活気に満ちたプロジェクト主導型のコミュニティです。

LangGraph と Ollama を使用して AI エージェントを作成するためのステップバイステップ ガイド

このデモでは、Mistral モデルを使用してエージェントの簡単な例を作成します。このエージェントは、Tavily Search API を使用して Web を検索し、応答を生成できます。

まず、エージェントおよびマルチエージェントのワークフローの作成に最適な LLM を使用してステートフルなマルチアクター アプリケーションを構築するように設計されたライブラリである Langgraph をインストールします。 LangGraph は、Pregel、Apache Beam、および NetworkX からインスピレーションを得て、LangChain Inc. によって開発され、LangChain から独立して使用できます。

LLM モデルとして Mistral を使用し、Ollama と Tavily の検索 API と統合します。 Tavily の API は LLM 向けに最適化されており、事実に基づいた効率的で永続的な検索エクスペリエンスを提供します。

前回の記事でOllamaを使ったQwen2の使い方を学びましたので、記事をリンクさせていただきました。 Ollama をインストールし、Ollama を使用して LLM を実行する方法については、記事に従ってください。

インストールを始める前に、GPU を確認しましょう。ターミナルを開いて以下のコードを入力して、GPU 構成を確認できます。

nvidia-smi

それでは、インストールを開始します。

pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-python
pip install langchain-openai

インストールが完了したら、次の重要なステップである Travily API キーの提供に進みます。

export TAVILY_API_KEY="apikeygoeshere"

ここで、以下のコードを実行してモデルを取得します。 Llama または他のバージョンの Mistral を使用してこれを試してください。

ollama pull mistral

エージェントの構築に必要なライブラリをすべてインポートします。

from langchain import hub
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.prompts import PromptTemplate
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_community.chat_models import ChatOllama

まず、使用するツールを定義し、そのツールを llm にバインドします。この簡単な例では、Tavily を介した組み込みの検索ツールを利用します。

tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)

以下のコード スニペットは、プロンプト テンプレートを取得し、読み取り可能な形式で出力します。このテンプレートは、アプリケーションの必要に応じて使用または変更できます。

prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()

次に、Ollama プラットフォーム経由で Mistral の使用を設定します。

llm = ChatOpenAI(model="mistral", api_key="ollama",     base_url="http://localhost:11434/v1",
)

最後に、言語モデル (llm)、ツールのセット (tools)、およびプロンプト テンプレート (prompt) を使用してエージェント エグゼキューターを作成します。 >)。エージェントは、入力に反応し、ツールを利用し、指定されたプロンプトに基づいて応答を生成するように構成されており、制御された効率的な方法でタスクを実行できるようになります。

agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================

You are a helpful assistant.

============================= Messages Placeholder =============================

{{messages}}

指定されたコード スニペットは、エージェント エグゼキューターを呼び出して入力メッセージを処理します。このステップの目的は、エージェント実行者にクエリを送信し、応答を受信することです。エージェントは、設定された言語モデル (この場合はミストラル)、ツール、プロンプトを使用してメッセージを処理し、適切な応答を生成します。

response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:
    print(message.content)

これにより、以下の応答が生成されます。

結論

LangGraph と、AI Agents や Ollama などのツールは、ローカライズされた人工知能ソリューションの開発と展開において大きな前進を示しています。さまざまな AI コンポーネントとそのモジュラー アーキテクチャを合理化する LangGraph の機能を活用することで、開発者は、効率的で変化するニーズに高度に適応できる、多用途でスケーラブルな AI ソリューションを作成できます。

私たちのブログで説明しているように、AI エージェントはタスクを自動化し、生産性を向上させるための柔軟なアプローチを提供します。これらのエージェントは、単純なタスクの自動化から複雑な意思決定プロセスに至るまで、さまざまな機能を処理するようにカスタマイズでき、現代のビジネスにとって不可欠なツールとなっています。

Ollama は、このエコシステムの一部として、LangGraph の機能を補完する特殊なツールとサービスを提供することで追加のサポートを提供します。

要約すると、LangGraph と Ollama の統合により、効果的かつ効率的な AI エージェントを構築するための堅牢なフレームワークが提供されます。このガイドは、これらのテクノロジーの可能性を活用してイノベーションを推進し、進化し続ける人工知能の状況で目標を達成したいと考えている人にとって貴重なリソースです。

追加リソース

  • 従来の LangChain エージェントから LangGraph に移行する方法
  • ツール呼び出し
  • ランググラフのドキュメント
  • RAG システムと AI エージェントの比較
  • コードリファレンス