From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
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
10 KiB
322 lines
10 KiB
WEBVTT |
|
|
|
00:00.680 --> 00:08.180 |
|
そして、 このPythonモジュールにあるユーザーインターフェースのコードへようこそ。 |
|
|
|
00:08.180 --> 00:10.130 |
|
価格は適正なドットパイ。 |
|
|
|
00:10.130 --> 00:18.860 |
|
そしてここでは、 特に製品の背後にあるUIを構築するコードを見ていく。 |
|
|
|
00:19.070 --> 00:22.070 |
|
そして、 それはいくつかの輸入品から始まる。 |
|
|
|
00:22.190 --> 00:24.110 |
|
グラディオを輸入する上で非常に重要なものだ。 |
|
|
|
00:24.110 --> 00:29.900 |
|
さらに重要なのは、 ディール・エージェントの枠組みを輸入することだ。 |
|
|
|
00:30.230 --> 00:33.440 |
|
そして、 クラス・アプリを定義する。 |
|
|
|
00:33.440 --> 00:39.080 |
|
一番下までスクロールすると、 一番下にapp dot runとあるのがわかるだろう。 |
|
|
|
00:39.110 --> 00:41.270 |
|
アプリを作成し、 それを実行する。 |
|
|
|
00:41.270 --> 00:43.250 |
|
そして、 それは何を創造することなのか? |
|
|
|
00:43.250 --> 00:44.240 |
|
ほとんど何もしない。 |
|
|
|
00:44.240 --> 00:47.420 |
|
エージェントフレームワークのために空の変数を設定するだけだ。 |
|
|
|
00:47.450 --> 00:51.260 |
|
肉汁は "ラン・アー "方式だ。 |
|
|
|
00:51.260 --> 01:00.280 |
|
そしてそれはもちろん、 「プライス・イズ・ライト」の素晴らしいブロックを使ったGradioのより高度な構造を使ったユーザーインターフェイスを生み出す。 |
|
|
|
01:00.610 --> 01:06.250 |
|
それから、 ここにあるのは、 前に見たコードとよく似たコードだ。 |
|
|
|
01:06.280 --> 01:10.480 |
|
実際、 ここにあるユーザーインターフェースの部分は同じだ。 |
|
|
|
01:10.480 --> 01:14.020 |
|
いくつかのタイトルの行がある。 |
|
|
|
01:14.020 --> 01:17.890 |
|
それからデータフレームを入れる。 |
|
|
|
01:17.890 --> 01:22.630 |
|
これは、 列として説明価格見積もり割引とアールを持っています。 |
|
|
|
01:22.630 --> 01:28.480 |
|
そして、 以前と同じように機会データフレームと呼ばれるものにセットアップされ、 割り当てられる。 |
|
|
|
01:28.750 --> 01:33.040 |
|
ええと、 唯一変わったのは、 その直後に起こることだ。 |
|
|
|
01:33.040 --> 01:34.810 |
|
それでは、 どうぞ。 |
|
|
|
01:34.840 --> 01:37.630 |
|
これがこのファイルの新しい内容だ。 |
|
|
|
01:37.630 --> 01:40.780 |
|
UIのドットロードがあるんだ。 |
|
|
|
01:40.780 --> 01:43.660 |
|
だから、 ここでもグラディオに言うのだ。 |
|
|
|
01:43.690 --> 01:48.310 |
|
ロードするときは、 ある指示を実行してほしい。 |
|
|
|
01:48.310 --> 01:54.060 |
|
そして、 gradioの標準フォーマットである関数名から始まるフォーマットを使って、 |
|
|
|
01:54.060 --> 01:56.970 |
|
入力と出力を呼び出すように指定する。 |
|
|
|
01:56.970 --> 02:00.690 |
|
そしてこの場合、 startという関数を呼び出してほしいと言っているのだ。 |
|
|
|
02:00.720 --> 02:02.700 |
|
この機能には入力はない。 |
|
|
|
02:02.700 --> 02:07.890 |
|
そして、 それが何を返すにせよ、 それを機会データフレームにフックしてほしい。 |
|
|
|
02:07.890 --> 02:13.500 |
|
つまり、 テーブルに入れるのに適した情報を返してくれることを期待しているのだ。 |
|
|
|
02:13.500 --> 02:16.860 |
|
だから、 機能的なスタートが期待できる。 |
|
|
|
02:17.310 --> 02:23.130 |
|
そして、 GRドットタイマーと呼ばれるGradio UIコンポーネントを作成します。 |
|
|
|
02:23.130 --> 02:26.160 |
|
そして、 それはいくつかのタイミングを計るものだ。 |
|
|
|
02:26.160 --> 02:29.100 |
|
これは実際には目に見えないUIコンポーネントである。 |
|
|
|
02:29.400 --> 02:35.160 |
|
それは舞台裏で動いているもので、 60年代には必ず目を覚ます。 |
|
|
|
02:35.160 --> 02:38.580 |
|
そして、 60秒ごとに何をするかというと......グラディオに何をすべきかを指示しなければならない。 |
|
|
|
02:38.580 --> 02:42.480 |
|
Gradioに伝える方法は、 タイマー、 ドット、 ティックを呼び出すことだ。 |
|
|
|
02:42.480 --> 02:50.060 |
|
そして、 そうしたら、 Gradioの標準的な構造標準的なアプローチを使って、 再びGradioに情報を提供する。 |
|
|
|
02:50.060 --> 02:52.220 |
|
呼び出される関数を指定する。 |
|
|
|
02:52.220 --> 02:54.350 |
|
この場合、 私は行けと言う。 |
|
|
|
02:54.380 --> 03:03.080 |
|
入力を与えれば、 何もない。 出力は、 何が返ってきても、 機会データフレームに入れなければならない。 |
|
|
|
03:03.080 --> 03:05.300 |
|
もう一度言う。 |
|
|
|
03:05.330 --> 03:11.180 |
|
ここで呼び出すセレクト・メソッドは、 以前とまったく同じだ。 |
|
|
|
03:11.180 --> 03:12.440 |
|
これも変わらないことだ。 |
|
|
|
03:12.440 --> 03:13.550 |
|
全く同じではない。 |
|
|
|
03:13.550 --> 03:16.490 |
|
少し変わったけど、 基本的には同じだよ。 |
|
|
|
03:16.550 --> 03:23.570 |
|
そして、 エージェントフレームワークのメッセンジャーアラート、 チャンスについてのアラートへのコールで終わる。 |
|
|
|
03:23.840 --> 03:27.290 |
|
だから、 その小さな変化にお気づきだろう。 |
|
|
|
03:27.290 --> 03:29.360 |
|
完全な警戒態勢に入る。 |
|
|
|
03:29.750 --> 03:37.130 |
|
さて、 あとは2つの機能を見ていくだけだ。 |
|
|
|
03:37.130 --> 03:44.810 |
|
そしてディスプレイの上部には、 問題の2つの機能であるスタートとゴーが表示される。 |
|
|
|
03:44.820 --> 03:48.030 |
|
そして、 それらを見るなら、 まずはスタートから始めよう。 |
|
|
|
03:48.060 --> 03:53.280 |
|
スタートが行うのは、 ディール・エージェント・フレームワークの新しいインスタンスを作成することだ。 |
|
|
|
03:53.310 --> 03:56.610 |
|
フレームワーク全体をコントロールする重要なオブジェクト。 |
|
|
|
03:56.940 --> 04:02.460 |
|
それをインスタンス化し、 どのような機会があるかを記憶させる。 |
|
|
|
04:02.460 --> 04:08.430 |
|
そして、 これらの機会を表す関数テーブルを呼び出し、 そのテーブルを返す。 |
|
|
|
04:08.460 --> 04:09.930 |
|
では、 テーブル4は何をしているのか。 |
|
|
|
04:09.960 --> 04:12.360 |
|
テーブル4はこの小さな機能だ。 |
|
|
|
04:12.900 --> 04:15.870 |
|
だから、 4番テーブルはチャンスがある。 |
|
|
|
04:15.870 --> 04:18.810 |
|
そして、 ここに入ればチャンスを思い出すことができる。 |
|
|
|
04:18.840 --> 04:23.250 |
|
チャンスはここにある。 |
|
|
|
04:23.250 --> 04:30.000 |
|
それこそが、 エージェントフレームワークのメモリに保存される、 取引と見積もりと値引きを含むものである。 |
|
|
|
04:30.000 --> 04:31.380 |
|
それはチャンスだ。 |
|
|
|
04:31.980 --> 04:34.170 |
|
そこで第8週に戻る。 |
|
|
|
04:34.440 --> 04:42.530 |
|
つまり、 この関数は機会オブジェクトを単なる文字列のリストに変換する。 |
|
|
|
04:42.560 --> 04:54.860 |
|
説明、 価格、 見積もり、 割引、 URL、 正確にはタイプ、 ここにあるデータ・フレームに入れるために必要な構造を持つ文字列のリストのリスト。 |
|
|
|
04:54.890 --> 04:58.730 |
|
だからまた、 単純に取引を開始する。 |
|
|
|
04:58.730 --> 04:59.480 |
|
エージェントのフレームワーク。 |
|
|
|
04:59.510 --> 05:06.440 |
|
メモリを見て、 それを文字列に変換して返す。 |
|
|
|
05:06.470 --> 05:09.920 |
|
60年代には必ず呼ばれたものだ。 |
|
|
|
05:09.950 --> 05:13.160 |
|
囲碁は非常に、 非常に似たことをやろうとしている。 |
|
|
|
05:13.160 --> 05:14.630 |
|
よく似ているのがわかるだろう。 |
|
|
|
05:14.660 --> 05:18.200 |
|
ただ、 この小さな小さな一本の線が追加されているだけだ。 |
|
|
|
05:18.350 --> 05:19.490 |
|
大したことはできない。 |
|
|
|
05:19.490 --> 05:20.780 |
|
何でもやってくれる。 |
|
|
|
05:20.780 --> 05:25.370 |
|
これは、 エージェントフレームワーク上で実行される呼び出しの行である。 |
|
|
|
05:25.370 --> 05:27.950 |
|
以前は手作業でやっていたことだ。 |
|
|
|
05:27.950 --> 05:31.610 |
|
私たちが構築したワークフロー全体がトリガーされる。 |
|
|
|
05:31.610 --> 05:33.290 |
|
それが囲碁だ。 |
|
|
|
05:33.320 --> 05:41.800 |
|
そして、 このGRタイマーによって、 60歳ごとに碁はキックオフされる。 |
|
|
|
05:42.010 --> 05:45.700 |
|
あとは実際に動いているところを見るだけだ。 |
|
|
|
05:45.820 --> 05:52.630 |
|
ランチャーで新しいターミナルを開いてみよう。 |
|
|
|
05:52.660 --> 05:58.750 |
|
そして、 conda activate LMSでconda環境を有効化するように変更します。 |
|
|
|
05:59.920 --> 06:01.090 |
|
これでよし。 |
|
|
|
06:01.090 --> 06:08.020 |
|
今はPython price is rightと入力するだけで実行できる。 |
|
|
|
06:08.050 --> 06:10.570 |
|
ドットパイはそれくらいシンプルであるべきだ。 |
|
|
|
06:10.600 --> 06:13.390 |
|
ちょっとドラムロールを見てみよう。 |
|
|
|
06:13.420 --> 06:15.220 |
|
そして321だ。 |
|
|
|
06:15.220 --> 06:16.180 |
|
さあ、 始めよう。 |
|
|
|
06:18.100 --> 06:23.050 |
|
ちょっと考えている間に間があって、 バーン! |
|
|
|
06:23.080 --> 06:27.100 |
|
値段も手頃だし、 もっと仕事がある。 |
|
|
|
06:27.100 --> 06:29.950 |
|
そして、 目の前にあるのがこれだ。 |
|
|
|
06:30.250 --> 06:32.200 |
|
もちろん、 私たちが見ているのは記憶だ。 |
|
|
|
06:32.230 --> 06:34.860 |
|
我々はそれがもたらすチャンスに注目している。 |
|
|
|
06:35.280 --> 06:39.120 |
|
下にスクロールして、 一番下の項目を見てみよう。 |
|
|
|
06:39.120 --> 06:46.920 |
|
それは、 以前コマンドラインから実行したときに、 つい最近私たちに表面化した項目だと思う。 |
|
|
|
06:47.010 --> 06:49.500 |
|
そしてもちろん、 それをメモリーに保存する。 |
|
|
|
06:49.500 --> 06:54.000 |
|
だから、 私たちはここで浮上した項目を見ている。 |
|
|
|
06:54.000 --> 07:02.730 |
|
コマンドラインに戻ると、 もちろん、 初期化され、 |
|
|
|
07:02.730 --> 07:11.760 |
|
セットアップされ、 準備が整ったことがわかる。 |
|
|
|
07:11.790 --> 07:16.590 |
|
そして1分後、 キックオフして起動する。 |
|
|
|
07:16.590 --> 07:19.830 |
|
あなたはこれを開き、 実行し、 これを試してみようとしている。 |
|
|
|
07:19.830 --> 07:22.590 |
|
そして、 私と同じように、 それが走るのを見ることになる。 |
|
|
|
07:22.590 --> 07:28.980 |
|
そして次回の講義では、 その結果について見ていくことにしよう。 |
|
|
|
07:29.250 --> 07:30.720 |
|
そこで会おう。
|
|
|