Azure OpenAIにGPT-4oがすぐにやってきました。
現在、Azure上でプレビューが開始されたGPT-4o (OpenAI の発表サイト)は、OpenAIとMicrosoftの提携によって開発された画期的なマルチモーダルモデルです。
今回はAzure OpenAI でGPT-4oをプレビュープレイグラウンドで色々検証してみようと思います。
目次
事前申し込み
Azure OpenAI の利用申し込みを行っている必要があります。
Early access playground
Azure OpenAI Service Early access playground
Azure OpenAI Studioの新機能、GPT-4oを試す際に確認しておくべきポイントは以下の通りです。
- GPT-4oはEarly Access Playground (Preview) で利用可能です。
- 利用可能地域はWest US3とEast USのみです。
- 1つのサブスクリプションにつき、5分間に10リクエストまでの制限があります。
- Azure OpenAIサービスの乱用監視が有効であり、承認された変更があっても、デフォルトのコンテンツフィルターは有効で変更できません。
- GPT-4oはプレビューモデルであり、現在はデプロイや直接APIアクセスはできません。
- Azure OpenAI Studioにアクセスし、OpenAIリソースへのアクセス権がある認証情報でサインインします。
- West US3またはEast US地域のAzure OpenAIリソースを選択します。これらの地域にリソースがない場合は、新しく作成する必要があります。
- Azure OpenAI Studioのメインページから、Get started セクションの下にある Early Access Playground (Preview) ボタンを選択します(このボタンはWest US3またはEast USのリソースが選択されている場合のみ利用可能です)。
- 以前のチャットプレイグラウンドと同様に、モデルに質問を始めることができます。
ご利用の際は、これらの点に注意してください。
利用方法
今回はGPT-4oに対応しているEast US にデプロイします。Azure Portalからアクセスしてリソースをデプロイしておきます。
その後、以下のようにAzure OpenAI Studio に移動します。
Azure からプレビュープレイグラウンドにを起動します。
すでに利用できるようになっています。
テストしてみる
食事画像からカロリーの算出
ファイルをアップロードして説明させてみます。
試しに、最近ホテルで食べた朝食(超モリモリ)の写真をアップロードしてカロリー計算させてみようと思います。
アップロードする写真はこちらです。
ただ一言、”カロリー計算して” と依頼してみました。
結果:
この食事の総カロリーを見積もるために、それぞれの料理のカロリーを推定してみましょう:
1. どんぶり(とろろ、イクラ、ホタテなど):約400-500キロカロリー
2. 味噌汁:約50-100キロカロリー
3. オムライス:約400-500キロカロリー
4. フライ(エビ、フィッシュ)**:2つ合わせて約200-300キロカロリー
5. カレーライス:約300-400キロカロリー
6. 小鉢料理:約50-100キロカロリー
7. お茶:0キロカロリー(通常)
これらを合計すると、全体で約1400-1900キロカロリーの範囲になります。
すごい!多くの情報を1発で説明してくれていますし、精度も高いです。
かなり画像を正確に認識し、カロリー計算してくれていることがわかります。
どんぶりがの中には確かにホタテが入っているのですが、実際人の目で見てもわかりにくいです。それにもかかわらずちゃんと認識しています。
栄養指導、保険業、給食、社食、ホテル、旅館やダイエットアプリ等で利用できそうです。
どのようにリクエストが送信されているかを確認してみます。
コピーしました!
[
{
"role": "system",
"content": [
{
"type": "text",
"text": "You are an AI assistant that helps people find information."
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "カロリー計算して"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAIAAAAOAA・・・X/2Q=="
}
}
]
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "この食事の総カロリーを見積もるために、それぞれの料理のカロリーを推定してみましょう:\n\n1. **どんぶり**(とろろ、イクラ、ホタテなど):約400-500キロカロリー\n2. **味噌汁**:約50-100キロカロリー\n3. **オムライス**:約400-500キロカロリー\n4. **フライ(エビ、フィッシュ)**:2つ合わせて約200-300キロカロリー\n5. **カレーライス**:約300-400キロカロリー\n6. **小鉢料理**:約50-100キロカロリー\n7. **お茶**:0キロカロリー(通常)\n\nこれらを合計すると、全体で約1400-1900キロカロリーの範囲になります。"
}
]
}
]
画像はBase64の形式で直接送信されていることがわかります。
この処理で利用されたトークンを確認することができます。
入力の進行状況インジケーターにマウスオーバーすると表示されます。
Power Apps のエラーについてスクリーンショットを送って解決をお願いする
Power Apps のエラーについて、スクリーンショットを送って解決してくれないか頼んでみます。
送信してみました。
あえて、 Power Apps です
ということは教えずに単に解決してと依頼しています。
何が間違っているかというと、UpdateContext(IsLoading, !IsLoading)
と記述してエラーになっているわけですが、Set関数のように書いてしまっているのでSyntaxとして間違っています。これを説明なく、Power Fx としての正しい書き方を教えてくれるのでしょうか?
回答が返ってきました。
回答は完璧です!
コピーしました!
エラーメッセージが表示されているのは、Power Appsの「OnSelect」プロパティに記述された式に問題があるためです。エラーの内容を確認すると、「UpdateContext」という関数が使われていますが、その構文に誤りがある可能性があります。
`UpdateContext`関数は、Power Appsでコンテキスト変数を更新するために使用されます。`IsLoading`という変数を切り替えるために使用しているようですが、正確な使用方法は以下のとおりです:
```plaintext
UpdateContext({ IsLoading: !IsLoading })
```
このように、波括弧 `{}` を使用して、更新する変数とその新しい値を指定します。エラーを解消するためには、`OnSelect`プロパティのコードを上記のように変更してみてください。
しかも直し方まで丁寧に説明してくれています!
IT資格トレーニング、転職支援などのサイトや、サポートセンター、市民開発支援アプリ、ハッカソンでのメンター等に利用できそうです。
人間に「ちょっと見て!」とお願いしたり、スクリーンショットをチャットしたりすると、その向こう側で答えてくれているのは実はAIかもしれませんね。
人間相手だと、変な時間(休日や夜間に勉強していたり)、何度も質問しづらい時など、とても便利そうです。
レシートをJSON 形式にしてもらう
レシートをアップして、JSON形式で出力してもらいます。特にスキーマを指定せずお願いしてみます。
読み込ませたレシートはこちらです。
ちゃんとJSONのみ返答してくれました。内容もばっちりです。
コピーしました!
{
"store": {
"name": "ENEOS",
"branch": "三芳SS",
"address": "三芳町藤久保831",
"phone": "0492-59-6704"
},
"date": "2018-07-04",
"time": "13:48",
"receipt_number": "92-487005-9020005-00 04870",
"customer": "様",
"items": [
{
"code": "4159 000011",
"name": "レギュラー",
"quantity": "51.99L",
"unit_price": "¥140",
"subtotal": "¥7279",
"tax": "¥53.8"
}
],
"total": "¥7279",
"tax": "¥539",
"prica_usage_amount": "¥7279",
"prica_serial_no": "90368073",
"prica_previous_balance": "¥14296",
"prica_current_balance": "¥7017",
"note": "※上記にて納品書とさせて頂きます",
"staff": "セルフ",
"receipt_id": "No.4467"
}
これも完璧です。数字などは得に強いですね。
経費精算システムなど、色々な利用シーンに使えそうです。
請求書
請求書をJSON形式で出力してもらいます。
今回もスキーマなど指定せずに推定してもらいます。
応答はばっちりでした。
コピーしました!
{
"invoice": {
"title": "請求書",
"recipient_company": "日本マイクロソフト株式会社",
"recipient_person": "佐藤 太郎 様",
"subject": "導入作業費用について",
"issue_date": "2022年2月1日",
"invoice_no": "INV-44444",
"payment_due": "請求日翌月末",
"total_amount": "¥33,000(税込)",
"items": [
{
"no": 1,
"item_code": "INSTFA01",
"description": "FA01据付作業",
"quantity": 1,
"unit_price": 20000,
"amount": 20000
},
{
"no": 2,
"item_code": "SRVFA01",
"description": "FA01メンテナンスサービス",
"quantity": 1,
"unit_price": 10000,
"amount": 10000
}
],
"subtotal": "¥30,000",
"tax": "¥3,000",
"total": "¥33,000",
"bank": "○○銀行 △△支店",
"account": {
"number": "0123456",
"name": "サンプル(カ"
},
"remark": "",
"issuer": {
"company": "大金鋼鉄株式会社",
"address": "〒111-1111 東京都新宿区新宿1-2-3 新宿第1ビル2階",
"phone": "03-333-3333",
"fax": "03-444-5555",
"email": "sample@tokushugokin.com",
"contact_person": "鈴木 次郎"
}
}
}
戸籍謄本
戸籍謄本から家系図を作成できるか試してみます。
今回は2枚つづりのため2枚添付します。
これにはびっくりしました。
ただし、隆→徳、はる→なると間違えて認識していました。日本語のOCRは十分素晴らしいですが、名前など予測しにくいものは間違える可能性があるのかもしれません。
家系図って、こういうフォーマット。このフォーマットでお願い!とGPT -3.5 Turboの時は必要でしたが、不要でした。
以上、ご参考になれば幸いです。