大規模な言語モデル(LLM)は、高度なプロンプトがあっても、JSONのような構造化された出力を確実に生成するのに苦労しています。迅速なエンジニアリングが役立ちますが、それは完璧ではなく、時折エラーにつながります。このチュートリアルでは、LLMSでの関数呼び出しが正確で一貫した構造化されたデータを保証する方法を示しています。
関数呼び出しにより、LLMは構造化されたデータ(通常はJSON)を生成し、外部システム、API、およびツールと相互作用し、正確性を維持しながら複雑でコンテキスト認識のタスクを可能にします。正確性で知られるGPT-4.5を使用して、関数をコールするスクリプトを作成します。まず、株価を取得する機能を作成します。次に、別の追加を追加して、プロンプトに基づいてLLMに複数のツールを選択できるようにします。最終アプリケーションは、株価とニュースフィードを提供します。
著者からの画像
GPT-4.5の関数呼び出し利点:
GPT-4.5は、関数呼び出しを強化し、外部システムとの相互作用と複雑なタスク処理を改善します。主な機能は次のとおりです。
(OpenAIモデルの詳細については、ブログ「GPT 4.5:機能、アクセス、GPT-4O比較など」を参照してください。)
単一関数呼び出し(株価):
GPT-4.5とyahooquery
ライブラリ(Yahoo Finance Dataのため)を使用して、簡単なシステムを構築します。ユーザーは株価について尋ね、価格を取得して応答する関数をトリガーします。
ライブラリをインストールする:
!ピップインストールopenai yahooquery -q
株価関数:このPython関数はティッカーシンボル(AAPLなど)を取り、価格を返します。
Openai Import Openaiから JSONをインポートします Yahooqueryの輸入ティッカーから def get_stock_price(ティッカー): 試す: T =ティッカー(ティッカー) Price_Data = T.Price firce_dataおよびprice_dataのティッカー[ティッカー] .get( "Regulalmarketprice")はありません。 価格= price_data [ティッカー] ["Regulalmarketprice"] それ以外: {ティッカー}の価格情報を返すことはできません。」 eとしての例外を除く: return f "{ティッカー}のデータを取得できなかった:{str(e)}" return f "{ティッカー}は現在$ {price:.2f}で取引されています"
ツールの定義: OpenAI用のツール定義(辞書のリスト)を作成し、関数の名前、説明、出力タイプを指定します。
ツール= [{ 「タイプ」:「関数」、 "関数": { 「名前」:「get_stock_price」、 「説明」:「Yahoo Financeから現在の株価を取得」、 「パラメーター」:{ 「タイプ」:「オブジェクト」、 「プロパティ」:{ 「ティッカー」:{"タイプ": "string"} }、 「必須」:["ティッカー"]、 「追加のプロパティ」:FALSE }、 「厳格」:本当 } }]
関数を呼び出します: GPT-4.5にユーザーメッセージを送信して、モデルとツールを指定します。
client = openai() メッセージ= [{"role": "user"、 "content": "メタ株の現在の価格はいくらですか?"}] 完了= client.chat.completions.create(model = "gpt-4.5-preview"、メッセージ=メッセージ、ツール=ツール) print(complete.choices [0] .message.tool_calls)#関数の呼び出しを示します
実行して返す:ティッカーを抽出し、 get_stock_price
を実行し、結果を印刷します。次に、自然言語のフォーマットのためにモデルに送り返すことにより、応答を改良します。
複数の関数呼び出し(株価とニュース):
feedparser
Libraryを使用してストックニュースを取得する関数を追加します。
feedparser
をインストールします:
!ピップインストールフィードパージャー-Q
ストックニュース機能:この関数は、特定のティッカーの上位3つのニュースヘッドラインを取得します。
フィードパージャーをインポートします def get_stock_news(ティッカー): rss_url = f "https://feeds.finance.yahoo.com/rss/2.0/headline?s= {Ticker}&Region = us&lang=en-us" 試す: feed = feedparser.parse(rss_url) feed.entriesではない場合: f "{ティッカー}のニュースは見つかりません。」 news_items = [f "{entry.title}({entry.link})" for feed.entries [:3]] f "{ティッカー}の最新ニュース:\ n {chr(10).join(news_items)}" eとしての例外を除く: return f "{ティッカー}のニュースを取得できなかった:{str(e)}"
複数のツールの定義: tools
リストを更新して、両方の機能を含めます。
モデルの選択: GPT-4.5に両方の機能を必要とする質問を尋ねます(例:「Google Stock and News」)。 GPT-4.5は、適切な関数を自動的に選択して呼び出します。
結果処理:両方の関数の結果を処理し、LLMによって返された関数名に基づいて条件付きロジックを使用する可能性があります。その後、結果は、最終的な人間の読み取り可能な応答のためにLLMに渡されます。
結論:
このチュートリアルでは、関数呼び出しがLLMSに構造化された出力を生成し、外部リソースと対話する方法を示しています。このアプローチは、LLM駆動型アプリケーションの信頼性と精度を改善し、より洗練されたAIシステムへの道を開いています。 GPT-5のような将来の進歩は、この分野でさらに大きな能力を約束します。提供されたコードスニペットを組み合わせて拡張して、より複雑で強力なアプリケーションを作成できます。
以上がGPT-4.5関数呼び出しチュートリアル:AIで株価とニュースを抽出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。