193
180

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【ChatGPT】新機能「Function calling」が凄すぎた

Last updated at Posted at 2023-06-14

tl;tr

ChatGPTの新機能「Function calling」はすごい。
今後注目される機能になっていくと思われる。

ChatGPTの新機能「Function calling」について

6/13のアップデートで、ChatGPTに新たな機能「Function calling」が実装
されました。

「Function calling」は、ChatGPTに「呼び出すことができる関数」を教えておく機能で、ChatGPTがこの関数を呼び出せるようになります。
この機能を活用すると、ChatGPTを経由することで、曖昧な指示でも関数が実行できるようになります。

「Function calling」の概要と可能性

概要

ChatGPTに呼び出せる「functions」をパラメーターとして渡します。
この状態で通常通りChatGPTに送信をすると、関数の呼び出しを要求するレスポンスが帰るようになります。このレスポンスを受けとった時に、関数を実行して結果をChatGPTに再度返却します。

関数の形式
const functions = [
  {
    name: "insert_todo",
    description: "Insert a new todo",
    parameters: {
      type: "object",
      properties: {
        title: {
          type: "string",
          description: "The title of the todo",
        }, 
      },
      required: ['title'],
    }
  },
  {
    name: "get_todos",
    description: "Get all todos",
    parameters: {
      type: "object",
      properties: {},
      required: [],
    }
  }
];

図7.png

可能性

この機能のすごいところは「曖昧な指示」を「関数呼び出し」という具体性のあるものに変換してくれることです。
例えば、ユーザーが「掃除をしておいて」という曖昧な要求を出した際にも、「掃除の実行」という具体的な手段に変換してくれます。
ユーザーの抽象的な指示を具体化してくれるため、とんでもないアプリケーションが作成できるようになります。

図1.png

Function callingの利用: ToDoアプリ作成

今回は具体例として、「Function calling」を活用したToDoアプリを作成しました。
ChatGPTがユーザーの指示を受けて間接的にアプリケーションを操作してくれるので、日常会話のような指示でもアプリが正しく動作します。

ToDoアプリの概要

ToDoアプリは2つの関数を持ちます。

  • addToDo: ToDoの追加
  • getToDos: ToDoの取得

ChatGPTにはすでにこの関数について伝えてあり、必要に応じてこの関数を呼び出します。

図3.png

動作

addToDo

ChatGPTにToDoを追加する指示を出します。
「リリース」をToDoリストに追加して
すると、下のようなレスポンスを返しました。

> 「リリース」をToDoリストに追加して
(ログメッセージ: addTodo('リリース')が実行された)
ChatGPT: 「リリース」がToDoリストに追加されました。

図4.png

getToDos

ChatGPTにToDoを取得する指示を出します。
ToDoに何があるか教えて
すると、下のようなレスポンスを返しました。

> ToDoに何があるか教えて
(ログメッセージ: getTodos('リリース')が実行された)
ChatGPT: 現在のToDoは、以下のものがあります:
1. リリース実行(2021年6月13日に作成されました)
他に何かお手伝いできますか?

図5.png

まとめ

「Function calling」は曖昧なユーザーの動作を具体化してくれるという機能です。
これによってできるようになることはたくさんあると思います。
例えば、下のようなアプリケーションは作成可能になりそうです。

  • タスク・スケジュール管理
  • カスタマーサービスの効率化
  • RPGなどのゲームの操作

また、副次的な効果として、リクエストに必要なメッセージを小さくすることができるので、使用料金を抑えることも期待できそうです。

自分としては「ToDoやスケジュール」と「音声認識」を組み合わせてAIアシスタントを作成したいなと思いました。
このToDo管理だけでも自分の秘書のように振る舞ってくれるのでロマンを感じます笑
かなりアイデアを触発される機能なので、ぜひ触ってみることをお勧めします!

補足

作成したアプリケーションは下のURLからみることができます。

追記

この記事で紹介した機能を使用し、実際にアプリケーションを作成してみました。
作成するにあたって行った「対策・工夫」とその時に感じた「良かった点・注意すべき点」についてまとめ、記事にしています。
よろしければご一読ください。

193
180
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
193
180

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?