大規模な言語モデル(LLM)を使用してアプリケーションを構築する場合、応答の品質は、特定のユーザータスクの効果的な計画と推論機能に大きく依存します。従来のRAG技術は強力ですが、エージェントワークフローを組み込むことで、クエリを処理および応答するシステムの能力が大幅に向上します。
この記事では、Phidataオープンソースエージェントフレームワークを使用してメモリコンポーネントを備えたエージェントRAGシステムを構築し、ベクターデータベース、つまりQDRANT、埋め込みモデル、インテリジェントエージェントを改善するためのインテリジェントエージェントを組み合わせる方法を示します。
この記事は、データサイエンスブログソンの一部として公開されました。
AIのコンテキストでのエージェントは、人間のような思考と計画能力をエミュレートするように設計されたコンポーネントです。エージェントコンポーネントは次のとおりです。
RAG(検索された生成)は、知識検索とLLM機能を組み合わせます。エージェントをRAGシステムに統合すると、次のことができる強力なワークフローを作成します。
従来のRAGとエージェントラグの重要な違いは、各クエリを処理し、ツールと対話してリアルタイム情報を取得する方法を決定する意思決定レイヤーにあります。
私たちが知っているので、エージェントのぼろきれのようなものがありますが、どのようにそれを構築しますか?それを分解しましょう。
Phidataは、エージェントワークフローを構築、監視、展開するために設計されたオープンソースフレームワークです。メモリ、知識、ツール、および推論機能を備えたマルチモーダルAIエージェントをサポートします。そのモデルに依存しないアーキテクチャは、さまざまな大規模な言語モデル(LLM)との互換性を保証し、開発者が任意のLLMを機能的なAIエージェントに変換できるようにします。さらに、Phidataを使用すると、Bring独自のクラウド(BYOC)アプローチを使用してエージェントワークフローを展開でき、AIシステムの柔軟性と制御の両方を提供できます。
Phidataの主要な機能には、複雑な問題を解決するために協力するエージェントチームを構築する能力、シームレスなインタラクション(Phidata遊び場)のための使いやすいエージェントUI、およびエージェント検索の高度発電(RAG)および構造化された出力の組み込みサポートが含まれます。また、このフレームワークは、監視とデバッグを強調し、堅牢で信頼できるAIアプリケーションを確保するためのツールを提供します。
実際のアプリケーションでエージェントベースのシステムの変革力を探索し、フィダタを活用して意思決定とタスクの自動化を強化します。
Yfinanceなどのツールを統合することにより、Phidataは、リアルタイムの株価を取得し、財務データを分析し、アナリストの推奨事項を要約できるエージェントを作成できます。このようなエージェントは、最新の市場洞察を提供することにより、投資家とアナリストが情報に基づいた意思決定を行うのを支援します。
また、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つのコンポーネントに接続されています。
注:ここで、知識ベースとDuckduckgoは両方ともツールとして機能し、タスクまたはユーザークエリに基づいて、エージェントは応答を生成するために使用するツールについてアクションを実行します。また、埋め込みモデルはデフォルトでOpenAIであるため、OpenAI-GPT-4Oを推論モデルとして使用します。
このコードを作成しましょう。
ナレッジベースから個人情報(ウェブサイト)と対話できるドキュメンタナライザーアシスタントエージェントを構築し、知識ベースにコンテキストがない場合にduckduckgoを構築する時が来ました。
エージェントRAGワークフローを構築するには、次のようないくつかのライブラリをインストールする必要があります。
PIPインストールPhidata Google-Generativeai Duckduckgo-Search qdrant-client
このステップでは、環境変数を設定し、必要な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>
これで、ベクトルデータベースにコレクション名、URL、およびAPIキーを提供することにより、QDRANTクライアントを初期化する必要があります。 QDRANTデータベースは、Webサイトからの知識を保存およびインデックス付けし、エージェントがユーザークエリに基づいて関連情報の取得を実行できるようにします。このステップは、エージェントのデータレイヤーをセットアップします。
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>
ここでは、エージェントがその知識を引き出すソースを定義します。この例では、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回だけ実行してください。
エージェントは、応答生成用の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、 ))
最後に、エージェントはユーザークエリを処理する準備ができています。 print_response()関数を呼び出すことにより、ユーザークエリを渡すと、エージェントは知識ベースから関連情報を取得して処理することで応答します。クエリがナレッジベースからのものではない場合、検索ツールを使用します。変更を観察しましょう。
agent.print_response( 「ドキュメントで言及されているインデックステクニックは何ですか?」 ストリーム= true ))
agent.print_response( 「Virat Kohliは誰ですか?」 ストリーム= true ))
インテリジェントエージェントとリレーショナルグラフが組み合わさってデータの検索と意思決定を最適化するエージェントラグの重要な利点を発見します。
メモリコンポーネントを使用してエージェントRAGを実装すると、インテリジェントな知識検索システムと検索エンジンを構築するための信頼できるソリューションが提供されます。この記事では、エージェントとぼろきれが何であるか、どのようにそれらを組み合わせるかを調査しました。エージェントRAGの組み合わせにより、エージェントの意思決定機能により、クエリルーティングが改善されます。
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 サイトの他の関連記事を参照してください。