WEBVTT 00:00.710 --> 00:02.780 よし、 ラボに戻ろう。 00:02.780 --> 00:03.950 話をプロジェクトに戻そう。 00:03.980 --> 00:06.230 道具を使う時間だ。 00:06.530 --> 00:11.210 僕は今、 JupyterLabの2週目のフォルダにいて、 4日目に突入するところだ。 00:11.240 --> 00:19.880 これまでやってきたことを結集して、 架空の航空会社のカスタマーサービス・アシスタントを作る時が来た。 00:19.910 --> 00:21.770 まずは輸入品から。 00:21.770 --> 00:25.550 いつものように、 キーのロードを初期化する。 00:25.580 --> 00:32.870 今日はGPT four miniを使うつもりで、 OpenAIの初期化はそこにある。 00:32.900 --> 00:33.890 システムメッセージ。 00:33.890 --> 00:40.520 あなたはI便、 II便、 A便と呼ばれる航空会社のアシスタントだ。 00:40.610 --> 00:41.630 あれだ。 00:41.660 --> 00:45.200 一文以内で短く丁寧に答えること。 00:45.200 --> 00:46.400 常に正確に。 00:46.400 --> 00:48.770 答えがわからなければ、 そう言ってください。 00:48.800 --> 00:54.290 これはもちろん、 システム・プロンプトの非常に良いタイプだ。 00:54.350 --> 01:00.410 ええと、 もし、 幻覚がないことに強く焦点を当てたいのであれば、 真実性を重視したい。 01:00.410 --> 01:01.790 だから、 それを実行するんだ。 01:01.820 --> 01:04.370 それなら、 これはもうお馴染みのことだ。 01:04.370 --> 01:08.540 これはGradioが期待するスタイルのチャット機能である。 01:08.570 --> 01:14.630 メッセージを受け取り、 履歴を受け取り、 そしてOpenAIが期待するスタイルを構築する。 01:14.660 --> 01:16.940 以前より少し短く見えるかもしれない。 01:16.940 --> 01:19.850 そして、 今回は結果をストリーミングで返さないからだ。 01:19.850 --> 01:20.900 それはもう十分やったと思う。 01:20.900 --> 01:25.400 それに、 このような短い返答をするのだから、 ストリーミングはやり過ぎだろう。 01:25.400 --> 01:27.230 実際に見てみよう。 01:27.260 --> 01:28.280 上がってきた。 01:28.280 --> 01:29.870 私たちは今、 グラディオのことをよく知っている。 01:29.870 --> 01:33.440 私たちはそれを見せびらかす必要はないし、 そこで挨拶することもできる。 01:34.700 --> 01:36.680 こんにちは、 本日はどのようなご用件でしょうか? 01:36.710 --> 01:41.360 故郷のロンドンに行きたい。 01:41.360 --> 01:42.170 私はいつもそこに行きたいと思っている。 01:42.200 --> 01:42.950 素晴らしい選択だ。 01:42.950 --> 01:45.800 ロンドン行きのフライトをお探しですか? 01:46.460 --> 01:47.450 そうだ。 01:47.450 --> 01:50.300 チケットはいくらですか? 01:52.100 --> 01:56.060 リアルタイムの価格は分からないが、 最新のチケット価格はウェブサイトやアプリで確認できる。 01:56.090 --> 01:56.480 ロンドンだ。 01:56.480 --> 01:59.390 だから、 指示された通りに見るのがいいんだ。 01:59.390 --> 02:00.920 価格を幻覚することはない。 02:00.920 --> 02:02.900 そこに行こうとはしない。 02:02.900 --> 02:09.200 言われたとおりに動くし、 私たちが頼んだように1行の短い返事をしているのもわかる。 02:09.230 --> 02:11.600 よし、 戻ろう。 02:11.630 --> 02:17.780 そこで、 フロンティアLMSが提供する信じられないほど強力な機能であるツールについてお話ししましょう。 02:17.780 --> 02:21.770 関数を書いて、 レスポンスの一部としてその関数を呼び出すことができる。 02:21.770 --> 02:24.140 ほとんど不気味な響きだ。 02:24.170 --> 02:27.680 私たちのマシン上でコードを実行する力を与えているのだ。 02:27.710 --> 02:33.110 さっきも言ったように、 これは一種の物語に過ぎない。 02:33.530 --> 02:41.510 では、 まず自分自身で関数を作ってみよう。 この関数は、 アラームを武装させるのに便利な関数だ。 02:41.510 --> 02:45.710 この関数は、 都市を指定してチケット価格を取得する。 02:45.710 --> 02:49.130 だから、 印刷することから始まるんだ。 02:49.130 --> 02:52.490 目的地の都市で呼び出されるチケット料金を入手する。 02:52.670 --> 02:58.250 そして、 この関数がいつ呼び出されるかを後で確認できるようにするためだ。 02:58.520 --> 03:03.380 つまり、 目的地の都市を小文字にするんだ。 03:03.380 --> 03:10.130 そこで、 小文字の都市と価格を辞書で調べてみる。 03:10.130 --> 03:13.190 見つからなければ不明と表示される。 03:13.400 --> 03:15.170 ここで1つ付け加えよう。 03:15.200 --> 03:18.650 なぜその場で変更しないのか? 03:18.680 --> 03:20.180 おそらく、 すべてを壊してしまうだろう。 03:21.110 --> 03:21.770 そうでないことを祈る。 03:21.800 --> 03:28.100 ベルリンと、 ベルリン行きの航空券のための素敵で、 安くて、 特別な取引をしよう。 03:28.100 --> 03:29.000 なぜだ? 03:29.330 --> 03:29.900 うーん。 03:29.930 --> 03:31.880 よし、 実行してみよう。 03:32.180 --> 03:35.090 では、 これを試してみよう。 03:35.120 --> 03:44.270 ベルリンまでのチケット代、 何が手に入るか見てみよう。 03:44.300 --> 03:46.400 そして、 ツール、 チケット代と書いてある。 03:46.400 --> 03:49.490 ベルリンに99ドルで電話。 03:49.520 --> 03:50.990 今、 あなたはこう思ったかもしれない。 03:51.020 --> 03:51.980 道具ってどういう意味? 03:51.980 --> 03:54.080 これはツールではなく、 単なる機能だ。 03:54.110 --> 03:56.630 そして答えは、 今のところただの機能だ。 03:56.630 --> 03:58.490 我々はそれをツールにしようとしている。 03:58.490 --> 04:02.570 実際にそう聞こえるかどうかはわからないが、 私の中ではそう聞こえる。 04:02.930 --> 04:07.400 とにかく、 これが僕らのツールを作るということなんだ。 04:07.940 --> 04:15.560 さて、 これらのツールをLLMとのインターフェイスに導入する過程には、 ちょっとした物語がある。 04:15.560 --> 04:20.420 グラディオのインターフェイスを立ち上げるような単純なものにはならないだろう。 04:20.420 --> 04:23.660 残念ながら、 もっと複雑なんだ。 04:23.660 --> 04:24.770 それには理由がある。 04:24.770 --> 04:26.180 そして、 その理由を突き止める。 04:26.240 --> 04:28.340 うーん、 でももう少し複雑なんだ。 04:28.460 --> 04:36.830 うーん、 でも良いニュースは、 他のツールの他のファンクション・コールでも再現できる、 ある種のクッキー・カッターのようなスタイルだということだ。 04:36.830 --> 04:39.740 だから、 これを自分のプロジェクトに再利用することができる。 04:39.740 --> 04:41.390 そして、 そうなることを強く望んでいる。 04:41.420 --> 04:51.290 ここに有用なプロジェクトを掲載した意図のひとつは、 これをリソースとして、 自分のプロジェクトにコードの断片を使えるようにすることだ。 04:51.440 --> 04:55.160 そして、 あなた自身のツールを追加してみることをお勧めします。 04:55.160 --> 04:57.980 だから、 あなたはこれを注意深く追うべきだ。 04:58.550 --> 05:07.700 ええと、 最初に言っておくのは、 今書いた関数を記述するために必要な特定の辞書構造を構築する必要があるということだ。 05:07.700 --> 05:09.380 そして、 こんな感じだ。 05:09.410 --> 05:11.150 プライス・ファンクションと呼ぼう。 05:11.150 --> 05:12.050 好きなように呼べばいい。 05:12.080 --> 05:15.290 名前をつけて、 それを説明する。 05:15.290 --> 05:25.070 LLMがこの関数をいつ呼び出すのが適切かを理解できるようにするためだ。 05:25.070 --> 05:28.460 つまり、 目的地までの往復航空券の料金を取得すると書いてある。 05:28.490 --> 05:30.710 チケットの値段を知りたいときはいつでも電話してください。 05:30.710 --> 05:34.940 例えば、 客が「市内までのチケットはいくらですか? 05:34.970 --> 05:38.360 だから、 例を挙げることは常に良い、 良いテクニックなんだ。 05:38.360 --> 05:39.950 それが、 ここで使っているものだ。 05:39.950 --> 05:43.640 そして、 このセットアップでパラメータを指定する。 05:43.640 --> 05:47.060 そして、 この関数には1つのパラメータがある。 05:47.060 --> 05:50.330 そして、 それこそがパラメーターの役割なのだ。 05:50.480 --> 05:54.230 そうやって、 使っている機能を説明するんだ。 05:54.230 --> 05:58.070 そして、 必須パラメータだと言っているのがわかるだろう。 05:58.640 --> 06:00.530 これがセットアップだ。 06:00.560 --> 06:03.110 そしてこの時点で、 私は少し立ち止まるつもりだ。 06:03.110 --> 06:05.210 そして次のビデオでは、 さらに続けるつもりだ。 06:05.210 --> 06:09.650 そして、 LLMにこの機能を持たせるつもりだ。 06:09.650 --> 06:10.700 そこで会おう