Skip to content

Commit

Permalink
Modified expression
Browse files Browse the repository at this point in the history
Modified expression
  • Loading branch information
yoshioterada committed Dec 17, 2023
1 parent 1fe476e commit 91fa18c
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -141,19 +141,19 @@ Copilotを 使って Dataverse でテーブルを作成する手順は下記

![Select new table](../../images/describe-new-table.png?WT.mc_id=academic-105485-yoterada)

3.新しいテーブルの説明」画面で、テキストエリアを使って作成したいテーブルを記述します。例えば、「請求書情報を保存するテーブルを作成してください」と入力します。「送信」ボタンをクリックして、この指示を AI Copilot に送ります。
3.Describe the new Table」画面で、テキストエリアに作成したいテーブルの内容を記述します。例えば、「請求書情報を保存するテーブルを作成してください」と入力します。「送信」ボタンをクリックして、この指示を AI Copilot に送ります。

![Describe the table](../../images/copilot-chat-prompt-dataverse.png?WT.mc_id=academic-105485-yoterada)

4. AI Copilot は、追跡したいデータを保存するために必要なフィールドといくつかのサンプルデータを含む Dataverse テーブルを提案します。その後、会話形式のステップを通じて AI Copilot アシスタント機能を使って、自分のニーズに合わせてテーブルをカスタマイズできます。

![Suggested Dataverse table](../../images/copilot-dataverse-table.png?WT.mc_id=academic-105485-yoterada)

1. 財務チームは、サプライヤーにメールを送り、請求書の現在のステータスを更新したいと考えています。Copilot を使って、サプライヤーのメールを保存する新しいフィールドをテーブルに追加できます。例えば、「サプライヤーのメールを保存する列を追加してください」という指示を入力します。「送信」ボタンをクリックして、この指示を AI Copilot に送ります。
5. 財務チームは、サプライヤーにメールを送り、請求書の現在のステータスを更新したいと考えています。Copilot を使って、サプライヤーのメールを保存する新しいフィールドをテーブルに追加できます。例えば、「サプライヤーのメールを保存する列を追加してください」という指示を入力します。「送信」ボタンをクリックして、この指示を AI Copilot に送ります。

1. AI Copilot は新しいフィールドを生成し、そのフィールドを自分のニーズに合わせてカスタマイズできます。
6. AI Copilot は新しいフィールドを生成し、そのフィールドを自分のニーズに合わせてカスタマイズできます。

1. テーブルの作成が完了したら、「作成」ボタンをクリックしてテーブルを作成します。
7. テーブルの作成が完了したら、「作成」ボタンをクリックしてテーブルを作成します。

## AI Builder を使った Power Platform の AI モデル

Expand All @@ -174,21 +174,21 @@ Power Platform で利用可能な事前構築済み AI モデルには以下の
- **フォーム処理**:このモデルはフォームから情報を抽出します。
- **請求書処理**:このモデルは請求書から情報を抽出します。

カスタム AI モデルを使うと、自分のモデルを AI Builder に取り込んで、AI Builder のカスタムモデルと同様に機能させ、自分のデータを使ってモデルをトレーニングできます。これらのモデルを使って、Power Apps と Power Automate の両方でプロセスを自動化し、結果を予測できます。自分のモデルを使用する場合、適用される制限があります。これらの制限について詳しくは[こちら](https://learn.microsoft.com/ai-builder/byo-model#limitations?WT.mc_id=academic-105485-yoterada)をご覧ください。
カスタム AI モデルを使うと、自分のモデルを AI Builder に取り込んで、AI Builder のカスタムモデルと同様に機能させ、自分のデータを使ってモデルをトレーニングできます。これらのモデルを使って、Power Apps と Power Automate の両方でプロセスを自動化し、結果を予測できます。自分のモデルを使用する場合、適用に関して制限があります。これらの制限について、詳しくは[こちら](https://learn.microsoft.com/ai-builder/byo-model#limitations?WT.mc_id=academic-105485-yoterada)をご覧ください。

![AI builder models](../../images/ai-builder-models.png?WT.mc_id=academic-105485-yoterada)

## 課題#2 - スタートアップによる請求書処理フローの構築

財務チームは請求書の処理に苦労しています。彼らはスプレッドシートを使って請求書を追跡していましたが、請求書の数が増えるにつれて管理が難しくなってきました。そこで、AI を使って請求書を処理するワークフローの構築を依頼されました。このワークフローでは、請求書から情報を抽出し、その情報を Dataverse テーブルに保存することが求められています。また、抽出した情報を財務チームにメールで送信できるようにする必要もあります
財務チームは請求書の処理に苦労しています。彼らはスプレッドシートを使って請求書を追跡していましたが、請求書の数が増えるにつれて管理が難しくなってきました。そこで、AI を使って請求書を処理するワークフローの構築を依頼されました。このワークフローでは、請求書から情報を抽出し、その情報を Dataverse テーブルに保存することが求められています。また、抽出した情報を財務チームにメールで送信する必要もあります

AI Builder とは何か、なぜそれを使うべきなのかを理解したところで、先ほど説明した AI Builder の請求書処理 AI モデルを使って、財務チームが請求書を処理するのに役立つワークフローを構築する方法を見ていきましょう。

AI Builder の請求書処理 AI モデルを使って、財務チームが請求書を処理するのに役立つワークフローを構築するには、下記の手順を実行します:

1. [Power Automate](https://make.powerautomate.com?WT.mc_id=academic-105485-yoterada) のホーム画面に遷移します。

2. ホーム画面のテキストエリアを使って、構築したいワークフローを記述します。例えば、「メールボックスに請求書が届いたら処理してください」と入力します。「送信」ボタンをクリックして、この指示を AI Copilot に送ります。
2. ホーム画面のテキストエリアを使って、構築したいワークフローを記述します。例えば、「メールボックスに請求書が届いたら処理を開始してください」と入力します。「送信」ボタンをクリックして、この指示を AI Copilot に送ります。

![Copilot power automate](../../images/copilot-chat-prompt-powerautomate.png?WT.mc_id=academic-105485-yoterada)

Expand Down
30 changes: 21 additions & 9 deletions 11-integrating-with-function-calling/translations/ja-jp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@

このレッスンを終えると、下記ができるようになります:

- 関数呼び出しの使用理由を説明できます
- 関数呼び出しを使う理由を説明できます
- Azure Open AI Service を使用して関数呼び出しアプリを構築できます。
- アプリケーションのユースケースに適した効果的な関数呼び出しを設計できます。

## シナリオ:関数を用いてチャットボットを改善する

このレッスンでは、教育スタートアップで、利用者である学生がチャットボットを使用して技術コースを検索できる機能を実装したいと考えています。利用者のスキルレベル、現在の役割、興味のある技術に合わせたコースを推奨します。

このシナリオを実現するために、下記を組み合わせて使用します
このシナリオを実現するために、下記の機能やサービスを使用します

- `Azure Open AI`:利用者にチャット体験を提供する為に使用します。
- `Microsoft Learn Catalog API`:利用者のリクエストに基づいて、コースを見つける支援を行います。
Expand All @@ -38,7 +38,7 @@

## 関数呼び出しを行う理由

関数呼び出しを行う前は、LLM からの回答は構造化されておらず、一貫性がありませんでした。開発者は、得られるさまざまな回答に対して処理できるように、複雑な検証コードを記述する必要がありました。例えば、ユーザーは「今のストックホルムの天気は何ですか?」のような回答も得ることができませんでした。これは、モデルがデータをトレーニングした時間に制限されていたためです
関数呼び出しを行う前は、LLM からの回答は構造化されておらず、一貫性がありませんでした。開発者は、得られるさまざまな回答に対して処理できるように、複雑な検証コードを記述する必要がありました。例えば、ユーザーは「今のストックホルムの天気は何ですか?」のような回答も得ることができませんでした。これは、モデルの学習データをトレーニングした時間が制限されていたためです

「関数呼び出し」は、Azure Open AI Service の機能で、下記ができるようになります:

Expand Down Expand Up @@ -114,7 +114,7 @@

上記のプロンプトは、LLM に情報を抽出し、応答を JSON 形式で返すように指示しています。

1. プロンプトと Azure Open AI への接続設定を行った後、`openai.ChatCompletion`を使用してプロンプトを LLM に送信します。プロンプトは `messages` 変数に格納し、ロールを `user` に設定します。これは、ユーザーからのメッセージがチャット・ボットに書き込まれる様子を模倣するために記載します
1. プロンプトと Azure Open AI への接続設定を行った後、`openai.ChatCompletion`を使用してプロンプトを LLM に送信します。プロンプトは `messages` 変数に格納し、ロールを `user` に設定します。これは、ユーザーからのメッセージがチャット・ボットに書き込まれる様子を模倣するために記載しています

```python
# プロンプト1からの応答
Expand All @@ -132,7 +132,7 @@
openai_response2.choices[0].message.content
```

これで、両方のリクエストを LLM に送信し、受信した回答を `openai_response1['choices'][0]['message']['content']` で調べることができます
これで、両方のリクエストを LLM に送信し、受信した回答を `[openai_response1.choices[0].message.content]` 等で取得することができます

1. 最後に、`json.loads`を呼び出すことで、応答を JSON 形式に変換できます:

Expand All @@ -145,13 +145,25 @@
応答 1:

```json
{ "name": "Emily Johnson", "major": "コンピューターサイエンス", "school": "Duke University", "grades": "3.7", "club": "チェス・クラブ" }
{
"name": "Emily Johnson",
"major": "コンピューターサイエンス",
"school": "Duke University",
"grades": "3.7",
"club": "チェス・クラブ"
}
```

応答 2:

```json
{ "name": "Michael Lee", "major": "コンピューターサイエンス", "school": "Stanford University", "grades": "3.8 GPA", "club": "ロボティクス・クラブ" }
{
"name": "Michael Lee",
"major": "コンピューターサイエンス",
"school": "Stanford University",
"grades": "3.8 GPA",
"club": "ロボティクス・クラブ"
}
```

プロンプトは同じで、説明も似ていますが、`grades` プロパティ値の出力形式が異なる場合があります。例えば、`3.7``3.8 GPA`のような形式で出力する場合があります。
Expand Down Expand Up @@ -238,8 +250,8 @@ functions = [
- `name` - 呼び出したい関数名
- `description` - 関数がどのように動作するかの説明。ここは具体的で明確であることが重要
- `parameters` - モデルが回答で生成する値と形式のリスト。`parameters` 配列はアイテムで構成され、各アイテムには次のプロパティを含む
1.`type` - プロパティのデータ型
1.`properties` - 回答に使用する特定の値のリスト
1. `type` - プロパティのデータ型
1. `properties` - 回答に使用する特定の値のリスト
1. `name` - フォーマットされた回答で使用するプロパティ名。例えば、`product`
1. `type` - プロパティのデータ型。例えば、`string`
1. `description` - 特定のプロパティの説明
Expand Down

0 comments on commit 91fa18c

Please sign in to comment.