メルマガ読むならアプリが便利
アプリで開く

週刊Life is beautiful 2023年6月27日号:OpenAIの神アップデート

週刊 Life is beautiful
今週のざっくばらん OpenAIの「神アップデート」 3週前に、「GPTからAPIを安定して呼ぶ方法」というタイトルで、GPT3/4からAPIを呼ぶために私が色々と苦労した話を書きましたが、この問題を綺麗に解決するアップデートが、OpenAIから行われました。 「Function Call」と呼ばれる機能で、APIの定義を明示的に渡すと、GPT3/4がそれを呼ぶべきと判断した時には、通常の会話とは別の出力「function_call」で呼びたい関数を指定してくれる機能です。 具体的な呼び方は、こんな感じです。response = openai.ChatCompletion.create( model=context.model, messages=context.messages, functions=context.functions) modelには、使いたいモデル("gpt-3.5-turbo-061"もしくは"gpt-4-0613")を、messagesには、プロンプトを、functionsに、APIの定義を指定します。 APIの定義は、JSONで、[ { "name": "get_current_weather", "description": "Get the current weather", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state" }, "format": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "The temperature unit to use." } }, "required": ["location", "format"] } } ] のように指定します(OpenAIが提供しているサンプルコードより)。 systemプロンプトして"Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous."とした上で、「東京の天気を教えて」と質問すると、通常の会話の "content" ではなく、"function_call" として以下のようなデータが返ってきます。{ "name": "get_current_weather", "arguments": { "location": "Tokyo", "format": "celsius" } } これは、GPTが、「『東京の天気を教えて』というリクエストに答えるには、関数 "get_current_weather" を呼ぶべき」と判断したことを示しており、後はアプリケーション側で、その指示に従って、APIを呼べば良いのです。 従来型の方法でも、「呼びたい関数をJSONで指定してください」とsystemプロンプトに指定すれば似たようなことが出来ましたが、JSONの返し方が一定ではないため、安定して動かすことがとても難しかったのですが、この仕組みにより、安定して関数を呼び出すことが出来るようになりました。

この続きを見るには

この記事は約 NaN 分で読めます( NaN 文字 / 画像 NaN 枚)
これはバックナンバーです
  • シェアする
まぐまぐリーダーアプリ ダウンロードはこちら
  • 週刊 Life is beautiful
  • 「エンジニアのための経営学講座」を中心としたゼミ形式のメルマガ。世界に通用するエンジニアになるためには、今、何を勉強すべきか、どんな時間の過ごし方をすべきか。毎週火曜日発行。連載:菅首相に会って来た/米国で起業する時に知っておかねばならないこと。
  • 880円 / 月(税込)
  • 毎週 火曜日(年末年始を除く)