ホームページ > テクノロジー周辺機器 > AI > フィダタでエージェントラグを構築します

フィダタでエージェントラグを構築します

Christopher Nolan
リリース: 2025-03-13 11:54:13
オリジナル
826 人が閲覧しました

大規模な言語モデル(LLM)を使用してアプリケーションを構築する場合、応答の品質は、特定のユーザータスクの効果的な計画と推論機能に大きく依存します。従来のRAG技術は強力ですが、エージェントワークフローを組み込むことで、クエリを処理および応答するシステムの能力が大幅に向上します。

この記事では、Phidataオープンソースエージェントフレームワークを使用してメモリコンポーネントを備えたエージェントRAGシステムを構築し、ベクターデータベース、つまりQDRANT、埋め込みモデル、インテリジェントエージェントを改善するためのインテリジェントエージェントを組み合わせる方法を示します。

学習目標

  • エージェントRAGシステムに必要なコンポーネントのアーキテクチャを理解して設計します。
  • ナレッジベースの作成のためのベクトルデータベースと埋め込みモデルは、エージェントワークフロー内にどのように統合されますか?
  • コンテキスト保持を改善するためのメモリコンポーネントを実装することを学びます
  • 複数のツール呼び出しを実行できるAIエージェントを開発し、Phidataを使用したユーザーの質問やタスクに基づいて選択するツールを決定します。
  • 実際のユースケースでは、知識ベースとDuckduckgoから個人情報と対話できるドキュメントアナライザーアシスタントエージェントを構築します。

この記事は、データサイエンスブログソンの一部として公開されました

目次

  • エージェントとラグとは何ですか?
  • フィダタとは何ですか?
  • フィダタを使用したエージェントのユースケース
  • エージェントラグのリアルタイムユースケース
  • ステップバイステップコードの実装:Qdrant、Openai、およびPhidataを使用したエージェントラグ
  • エージェントラグの利点
  • 結論
  • よくある質問

エージェントとラグとは何ですか?

AIのコンテキストでのエージェントは、人間のような思考と計画能力をエミュレートするように設計されたコンポーネントです。エージェントコンポーネントは次のとおりです。

フィダタでエージェントラグを構築します

  • 管理可能なサブタスクへのタスク分解。
  • 必要なアクションを使用して使用するツールについてのインテリジェントな意思決定。
  • 問題を解決するための最良のアプローチについての推論。

RAG(検索された生成)は、知識検索とLLM機能を組み合わせます。エージェントをRAGシステムに統合すると、次のことができる強力なワークフローを作成します。

フィダタでエージェントラグを構築します

  • ユーザークエリをインテリジェントに分析します。
  • ナレッジベースまたはベクトルデータベース内にユーザードキュメントを保存します。
  • 指定されたユーザークエリの適切な知識ソースまたはコンテキストを選択します。
  • 検索および応答生成プロセスを計画します。
  • メモリコンポーネントを介してコンテキストを維持します。

従来のRAGとエージェントラグの重要な違いは、各クエリを処理し、ツールと対話してリアルタイム情報を取得する方法を決定する意思決定レイヤーにあります。

私たちが知っているので、エージェントのぼろきれのようなものがありますが、どのようにそれを構築しますか?それを分解しましょう。

フィダタとは何ですか?

Phidataは、エージェントワークフローを構築、監視、展開するために設計されたオープンソースフレームワークです。メモリ、知識、ツール、および推論機能を備えたマルチモーダルAIエージェントをサポートします。そのモデルに依存しないアーキテクチャは、さまざまな大規模な言語モデル(LLM)との互換性を保証し、開発者が任意のLLMを機能的なAIエージェントに変換できるようにします。さらに、Phidataを使用すると、Bring独自のクラウド(BYOC)アプローチを使用してエージェントワークフローを展開でき、AIシステムの柔軟性と制御の両方を提供できます。

Phidataの主要な機能には、複雑な問題を解決するために協力するエージェントチームを構築する能力、シームレスなインタラクション(Phidata遊び場)のための使いやすいエージェントUI、およびエージェント検索の高度発電(RAG)および構造化された出力の組み込みサポートが含まれます。また、このフレームワークは、監視とデバッグを強調し、堅牢で信頼できるAIアプリケーションを確保するためのツールを提供します。

フィダタを使用したエージェントのユースケース

実際のアプリケーションでエージェントベースのシステムの変革力を探索し、フィダタを活用して意思決定とタスクの自動化を強化します。

財務分析エージェント

Yfinanceなどのツールを統合することにより、Phidataは、リアルタイムの株価を取得し、財務データを分析し、アナリストの推奨事項を要約できるエージェントを作成できます。このようなエージェントは、最新の市場洞察を提供することにより、投資家とアナリストが情報に基づいた意思決定を行うのを支援します。

Web検索エージェント

また、Phidataは、Duckduckgo、Serpapi、Serperなどの検索ツールを使用して、Webからリアルタイム情報を取得できるエージェントの開発にも役立ちます。これらのエージェントは、最新のデータを調達することでユーザークエリに答えることができ、研究や情報収集のタスクに役立つようになります。

マルチモーダルエージェント

Phidataはまた、マルチモーダル機能をサポートし、画像、ビデオ、およびオーディオを分析するエージェントの作成を可能にします。これらのマルチモーダルエージェントは、画像認識、テキストから画像の生成、オーディオ転写、ビデオ分析などのタスクを処理でき、さまざまなドメインで汎用性の高いソリューションを提供します。テキストからイメージまたはテキスト間タスクの場合、Dall-EやReplicateなどのツールを統合できますが、画像からテキスト、ビデオ間タスク、GPT-4、Gemini 2.0、Claude AIなどのマルチモーダルLLMなどを利用できます。

エージェントラグのリアルタイムユースケース

スタートアップのドキュメントがあり、そのドキュメントに基づいてユーザーの質問に答えることができるチャットアシスタントを作成したいと想像してください。チャットボットをよりインテリジェントにするには、リアルタイムデータも処理する必要があります。通常、リアルタイムのデータクエリに答えるには、ナレッジベースの再構築またはモデルを再訓練する必要があります。

これはエージェントが出てくる場所です。ナレッジベースとエージェントを組み合わせることで、正確な回答を取得するチャットボットの能力を向上させるだけでなく、全体的なパフォーマンスを向上させるエージェントRAG(検索された生成)ソリューションを作成できます。

フィダタでエージェントラグを構築します

私たちの知識ベースを形成するために一緒になった3つの主要なコンポーネントがあります。まず、ドキュメントページ、PDF、または使用するWebサイトなどのデータソースがあります。次に、ベクターデータベースであるQDrantがあります。これは、同様の情報をすばやく見つけるのに役立つスマートストレージシステムのようなものです。そして最後に、コンピューターがよりよく理解できる形式にテキストを変換する埋め込みモデルがあります。これらの3つのコンポーネントは、システムの脳のような知識ベースに供給されます。

次に、Phidataからエージェントオブジェクトを定義します。

エージェントは3つのコンポーネントに接続されています。

  • 考えて計画するのに役立つ推論モデル(GPT-4、Gemini 2.0、またはClaudeなど)。
  • 以前の会話を思い出すのに役立つメモリ(sqlagentstorage)
  • 情報を見つけるために使用できるツール(duckduckgo検索など)

注:ここで、知識ベースとDuckduckgoは両方ともツールとして機能し、タスクまたはユーザークエリに基づいて、エージェントは応答を生成するために使用するツールについてアクションを実行します。また、埋め込みモデルはデフォルトでOpenAIであるため、OpenAI-GPT-4Oを推論モデルとして使用します。

このコードを作成しましょう。

ステップバイステップコードの実装:Qdrant、Openai、およびPhidataを使用したエージェントラグ

ナレッジベースから個人情報(ウェブサイト)と対話できるドキュメンタナライザーアシスタントエージェントを構築し、知識ベースにコンテキストがない場合にduckduckgoを構築する時が来ました。

ステップ1:依存関係の設定

エージェントRAGワークフローを構築するには、次のようないくつかのライブラリをインストールする必要があります。

  • Phidata:エージェントオブジェクトとワークフローの実行を定義します。
  • Google Generative AI - 推論モデルIE、Gemini 2.0フラッシュ
  • QDRANT - 知識ベースが保存され、後で関連情報を取得するために使用されるベクトルデータベース
  • Duckduckgo - リアルタイム情報を抽出するために使用される検索エンジン。
 PIPインストールPhidata Google-Generativeai Duckduckgo-Search qdrant-client
ログイン後にコピー

ステップ2:初期構成とセットアップAPIキー

このステップでは、環境変数を設定し、必要なAPI資格情報を収集してこのユースケースを実行します。OpenaiAPIキーについては、https://platform.openai.com/から入手できます。アカウントを作成し、新しいキーを作成します。

 phi.knowledge.websiteインポートWebサイトKnowledgeBaseから
phi.vectordb.qdrantインポートqdrantから

Phi.Agent Import Agentから
phi.storage.agent.sqliteからsqlagentstorageからインポート
Phi.model.openaiからImport openaichatから
Phi.tools.duckduckgoからImport duckduckgoから

OSをインポートします

os.environ ['openai_api_key'] = "<plateg>"</plateg>
ログイン後にコピー

ステップ3:ベクトルデータベースのセットアップ - QDRANT

これで、ベクトルデータベースにコレクション名、URL、およびAPIキーを提供することにより、QDRANTクライアントを初期化する必要があります。 QDRANTデータベースは、Webサイトからの知識を保存およびインデックス付けし、エージェントがユーザークエリに基づいて関連情報の取得を実行できるようにします。このステップは、エージェントのデータレイヤーをセットアップします。

  • クラスターの作成:https://cloud.qdrant.io/
  • クラスターに名前を付け、クラスターが作成されたらAPIキーをコピーします。
  • Curlコマンドの下で、エンドポイントURLをコピーできます。
 collection_name = "agentic-rag"
qdrant_url = "<plateg>"
qdrant_api_key = "<plateg>"

vector_db = qdrant(
    collection = collection_name、
    url = qdrant_url、
    api_key = qdrant_api_key、
))</plateg></plateg>
ログイン後にコピー

ステップ4:知識ベースの作成

ここでは、エージェントがその知識を引き出すソースを定義します。この例では、Webサイトからの質問に簡単に答えることができるドキュメントアナライザーエージェントを構築しています。インデックス作成にはQDRANTドキュメントWebサイトURLを使用します。

WebサイトKnowledgeBaseオブジェクトは、QDRANT Vectorデータベースと対話して、指定されたURLからインデックス化された知識を保存します。その後、エージェントによる検索のために知識ベースにロードされます。

注:ロード関数を使用して、データソースをナレッジベースにインデックス化することを忘れないでください。これは、コレクション名に1回だけ実行する必要があります。コレクション名を変更して新しいデータを追加する場合は、その時間だけがロード関数を再度実行します。

 url = "https://qdrant.tech/documentation/overview/"

Knowlede_base = websiteknowledgebase(
    urls = [url]、
    max_links = 10、
    vector_db = vector_db、
))

knowledge_base.load()#コレクションが作成された後、1回だけ実行してください。
ログイン後にコピー

ステップ5:エージェントを定義します

エージェントは、応答生成用のLLM(GPT-4)、情報検索の知識ベース、およびメモリとして相互作用と応答を追跡するSQLiteストレージシステムを構成します。また、必要に応じて追加のWeb検索のためにDuckDuckgo検索ツールをセットアップします。このセットアップは、クエリに答えることができるコアAIエージェントを形成します。

show_tool_callsをtrueに設定して、バックエンドランタイムの実行を観察し、クエリがナレッジベースまたはduckduckgo検索ツールにルーティングされているかどうかを追跡します。このセルを実行すると、メモリストレージを有効にし、add_history_to_messagesをtrueに設定することにより、すべてのメッセージが保存されるデータベースファイルが作成されます。

 agent = agent(
    model = openaichat()、
    知識= nkinking_base、
    ツール= [duckduckgo()]、

    show_tool_calls = true、
    マークダウン= true、

    ストレージ= sqlagentStorage(table_name = "agentic_rag"、db_file = "agents_rag.db")、
    add_history_to_messages = true、
))
ログイン後にコピー

ステップ6:複数のクエリを試してください

最後に、エージェントはユーザークエリを処理する準備ができています。 print_response()関数を呼び出すことにより、ユーザークエリを渡すと、エージェントは知識ベースから関連情報を取得して処理することで応答します。クエリがナレッジベースからのものではない場合、検索ツールを使用します。変更を観察しましょう。

クエリ-1:ナレッジベースから

agent.print_response(
  「ドキュメントで言及されているインデックステクニックは何ですか?」 
  ストリーム= true
))
ログイン後にコピー

フィダタでエージェントラグを構築します

ナレッジベースの外側のクエリ-2

 agent.print_response(
  「Virat Kohliは誰ですか?」 
  ストリーム= true
))
ログイン後にコピー

フィダタでエージェントラグを構築します

エージェントラグの利点

インテリジェントエージェントとリレーショナルグラフが組み合わさってデータの検索と意思決定を最適化するエージェントラグの重要な利点を発見します。

  • より良い応答生成のための推論機能を強化します。
  • ナレッジベースやDuckduckgoなどのクエリコンテキスト、またはエージェントに提供できるコンテキストを取得できる他のツールに基づくインテリジェントツール選択。
  • 履歴会話メッセージを覚えて抽出できる改善されたコンテキスト認識のためのメモリ統合。
  • より良い計画とタスクの分解、エージェントワークフローの主な部分は、タスクを取得してサブタスクに分解し、より良い決定と行動計画を立てることです。
  • PDF、Webサイト、CSV、Docsなど、さまざまなデータソースとの柔軟な統合。

結論

メモリコンポーネントを使用してエージェントRAGを実装すると、インテリジェントな知識検索システムと検索エンジンを構築するための信頼できるソリューションが提供されます。この記事では、エージェントとぼろきれが何であるか、どのようにそれらを組み合わせるかを調査しました。エージェントRAGの組み合わせにより、エージェントの意思決定機能により、クエリルーティングが改善されます。

キーテイクアウト

  • Phidataを使用したエージェントRAGが、メモリ、ナレッジベース、および動的クエリ処理を統合することにより、AIを強化する方法を発見してください。
  • 効率的な情報検索と適応対応の生成のために、Phidataを使用してエージェントRAGを実装することを学びます。
  • Phidataデータライブラリは、Gemini 2.0 Flashなどのマルチモーダルとともに、わずか30行のコアコードを備えた合理化された実装プロセスを提供します。
  • メモリコンポーネントは、コンテキストを維持し、応答の関連性を改善するために重要です。
  • 複数のツール(ナレッジベース、Web検索)の統合により、QDRANTなどの柔軟な情報検索 - ベクトルデータベースが効率的な検索のための高度なインデックス作成機能を提供します。

よくある質問

Q1。 Phidataはマルチモーダルタスクを処理できますか?また、この目的のためにどのツールを統合しますか?

A.はい、Phidataは、画像、ビデオ、オーディオを含むタスクを処理できるマルチモーダルAIエージェントをサポートするために構築されています。 DALL-Eなどのツールを統合し、テキストからイメージまたはテキストからビデオへの生成のために複製し、GPT-4、Gemini 2.0、Claude AIなどのマルチモーダルLLMを使用して、画像からテキスト、ビデオ間タスクを使用します。

Q2。エージェントRAGシステムの開発に利用できるツールとフレームワークは何ですか?

A.エージェント検索の発電(RAG)システムの開発には、自律エージェントの検索および生成能力の統合を促進するさまざまなツールとフレームワークを利用することが含まれます。この目的のために利用できるツールとフレームワークのいくつかを以下に示します:Langchain、Llamaindex、Phidata、Crewai、およびAutogen。

Q3。 Phidataは外部ツールや知識ベースと統合できますか?

A.はい、Phidataはさまざまなツールと知識ベースの統合を可能にします。たとえば、リアルタイムの在庫分析のためにYfinanceなどの財務データツールや、最新情報を取得するためにDuckduckgoのようなWeb検索ツールに接続できます。この柔軟性により、特定のユースケースに合わせた専門エージェントの作成が可能になります。

この記事に示されているメディアは、Analytics Vidhyaが所有しておらず、著者の裁量で使用されています。

以上がフィダタでエージェントラグを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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