GPT-4oを使って簡単に自律型AIエージェントを構築する

このブログ記事では、Fi-dataフレームワークを使ってGPT-4で強力な自律型AIエージェントを簡単に構築する方法を紹介します。長期メモリ、コンテキスト知識、関数呼び出しによるアクション実行が可能な高度なエージェントの作成方法を学びます。効率性とプロダクティビティを最適化したAIシステムを構築しましょう。

2025年2月15日

party-gif

GPT-4oを使ってオートノマスなAIエージェントを構築する力を発見しましょう。このブログ記事では、Webサーチから金融分析、データ探索まで幅広い課題に取り組める知的アシスタントを簡単に作成する方法をご案内します。最先端の言語モデルの可能性を解き放ち、プロジェクトの新しい可能性を開きましょう。

GPT-4を使ったオートノマスAIエージェントの構築方法

このセクションでは、長期記憶、コンテキスト知識、関数呼び出しによるアクション実行が可能な複雑な自律型AIシステムの構築方法を探ります。Fi-dataフレームワークを使用し、関数呼び出しによる自律型AIアシスタントの作成方法を紹介します。

最初に、ツールのない基本的なアシスタントを作成します。このアシスタントはGPT-4モデルを使用し、Ducoツールによるウェブ検索機能を追加することで、さらに機能を拡張します。

次に、Yahoo Financeなどのツールにアクセスし、株価、推奨、企業情報、ニュースなどの金融データを活用できる金融アシスタントを構築します。さらに、Hacker News APIを使用したカスタムツールの作成方法も示します。

最後に、DuckDBを使ってCSVやParquetファイルのデータ分析を行う分析アシスタントや、Exaを使ってウェブ検索を行い指定のフォーマットでレポートを生成する研究アシスタントなど、より複雑なアシスタントについて説明します。

この一連のプロセスを通して、わかりやすく実装しやすいコンテンツを提供することの重要性を強調します。これらの例のコードはFi-dataリポジトリにあり、環境設定の手順はREADMEに記載されています。

基本的なアシスタントの構築

基本的なアシスタントを構築するには、まずfidataライブラリから必要なコンポーネントをインポートする必要があります。アシスタントの作成にはLLMAssistantクラスを使用します。

from fidata.assistants.llm_assistant import LLMAssistant
from fidata.llms.openai import OpenAIChat

Next, LLMAssistantクラスのインスタンスを作成し、OpenAI GPT-4言語モデルをllmパラメータとして渡します。

assistant = LLMAssistant(llm=OpenAIChat(model_name="gpt-4"))

アシスタントの説明と指示を定義します。これらはLanguage Modelのシステムプロンプトとして使用されます。

description = "You are a helpful assistant tasked with providing a simple breakfast recipe."
instructions = "Provide a concise breakfast recipe."

最後に、assistantオブジェクトのrunメソッドを呼び出し、説明と指示を渡します。これによりアシスタントが実行され、レスポンスが返されます。

response = assistant.run(description=description, instructions=instructions)
print(response)

これにより、GPT-4言語モデルによって生成された簡単な朝食レシピが出力されます。

Webサーチ機能の追加

AIアシスタントにウェブ検索機能を追加するために、f_toolsモジュールからDucoツールをインポートします。このツールにより、アシスタントはウェブ検索を行い、関連情報を取得できます。

最初に、Ducoツールをアシスタントに追加します:

from f_tools.duco import Duco
assistant.add_tool(Duco())

Next, show_tool_callsパラメータをTrueに設定し、ツールの呼び出しを確認できるようにします。

その後、アシスタントにフランスのニュースを検索し、それについての短い詩を書くタスクを与えます:

assistant.run_task("Search for the news from France and write a short poem about it.")

アシスタントはDucoツールを使ってフランスのニュースを取得し、収集した情報に基づいて短い詩を生成しています。これにより、アシスタントがウェブ検索機能を活用してタスクを完了する方法が示されています。

金融アシスタントの作成

金融アシスタントを作成するために、F-toolsライブラリのYahoo Financeツールを使用します。このツールは、株価、企業情報、推奨、ニュースなどの各種金融データにアクセスできる機能を提供します。

最初に、必要なツールをインポートします:

from f_tools.yahoo_finance import YahooFinance

Next, 金融アシスタントを作成し、必要なツールを追加します:

finance_assistant = Assistant(model=gpt4, name="Finance Assistant")
finance_assistant.add_tool(YahooFinance(
    get_stock_price=True,
    get_recommendations=True,
    get_company_info=True,
    get_company_news=True
))

この例では、株価取得、推奨取得、企業情報取得、企業ニュース取得の各機能を有効にしています。

Now, 企業の株価を取得したり、2社を比較したりするようなタスクを与えることができます:

finance_assistant.run_task("What is the stock price of Nvidia?")
finance_assistant.run_task("Write a comparison between Nvidia and AMD using all the available tools.")

アシスタントは提供されたツールを使ってデータを収集し、Markdown形式で包括的な回答を生成します。

この金融アシスタントは、さらにツールの追加や設定の調整、タスク指示の変更などによってカスタマイズできます。

カスタムツールの構築

Fi dataフレームワークの重要な機能の1つは、AIエージェントに統合できるカスタムツールを構築できることです。これにより、デフォルトのツールを超えて、エージェントの機能を拡張し、特定のニーズに合わせてカスタマイズできます。

ビデオでは、Hacker News APIにアクセスするカスタムツールの構築方法が示されています。その手順は以下の通りです:

  1. APIと対話するための関数を記述し、引数と返り値を定義する。
  2. 関数の説明と入出力パラメータを指定して、Fi dataアシスタントにカスタムツールを追加する。
  3. デフォルトのツールと同様に、カスタムツールをアシスタントのタスクで使用する。

ビデオではまた、デバッグモードの有効化も紹介されています。これにより、アシスタントの内部プロセスの詳細なログを確認できるため、トラブルシューティングや動作理解に役立ちます。

カスタムツールの構築機能は、Fi dataフレームワークの強力な機能の1つです。これにより、特定のニーズに合わせて高度に専門化された自律型AIエージェントを作成できます。

DuckDBを使ったデータ分析

このセクションでは、DuckDBツールを使ってCSVやParquetファイルのデータ分析を行うアシスタントの機能を紹介しています。アシスタントは以下の機能を実演しています:

  1. テーブルが存在しない場合は自動的にデータをロードする。
  2. SQLクエリを実行して映画の平均評価を取得し、評価のヒストグラムを生成する。
  3. データに基づいて適切なバケットサイズを選択する。
  4. SQLクエリとその結果の可視化を明確かつ簡潔に表示する。

アシスタントがDuckDBを統合し、分析結果を効果的に提示する能力は、このフレームワークの強力さを示しています。このセクションは、アシスタントがデータ分析機能を活用して幅広いタスクに取り組める方法を強調しています。

リサーチレポートの生成

アシスタントには、OpenGPT-4に関する研究レポートを書くタスクが与えられています。以下の手順に従って取り組みます:

  1. Exaツールを使ってウェブ検索を行い、OpenGPT-4に関連する上位10件のリンクを見つける。
  2. 検索結果を慎重に読み込む。
  3. 要求された構造に従って、整形された記事を作成する:
    • 大まかな概要
    • OpenGPT-4の重要な点を詳しく説明した本文
  4. 最終的なレポートをMarkdown形式の「news_article.md」ファイルとして保存する。

アシスタントは以下の能力を示しています:

  • ウェブ調査を行い、関連情報を収集する
  • 調査結果を構造化された質の高い報告書にまとめる
  • Markdown形式で報告書を整形し、読みやすくする
  • 要求に従ってファイルに出力する

これらの機能は、アシスタントの調査能力、自然言語処理スキル、指示に従って高品質な成果物を生み出す能力を示しています。

FAQ