You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

322 lines
9.8 KiB

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
そこで会おう