見出し画像

ChatGPT新機能「Vision API」〜革新的教育ツールも簡単に作れる時代へ〜

テクノロジーが進化するにつれて、教育アプローチも大きく変化しています。特にOpenAIが2024年4月9日にリリースした「GPT-4 Turbo with Vision」は、AIを活用した教育ツールに新たな可能性をもたらしています。この技術は、ChatGPTがテキストだけでなく、視覚的な情報も理解できるようになりました。この記事ではそのAPIを使って、簡単なサービスも作ってみます。


Vision APIが開く可能性

OpenAIのGPT-4 Turbo with Visionは、画像や写真の分析能力を備えており、これにより開発者はテキストと画像を組み合わせたアプリケーションを容易に作成できます。健康・フィットネスアプリでは、ユーザーの食事写真から栄養情報を抽出し、ウェブデザインではスケッチから実際のウェブサイトを生成することが可能です。

Vision APIを使ったアプリケーション

以下に、GPT-4 Turbo with Visionを用いた具体的なプログラム例を示します。

import base64
import requests

# OpenAIのAPIキーを設定します。このキーはOpenAIから提供されるもので、APIを認証して使用するために必要です。
api_key = "[YOUR_OPENAI_API_KEY]"

# 画像ファイルをBase64形式にエンコードする関数です。
# Base64はバイナリデータをテキスト形式に変換するエンコーディング方式で、
# 画像をWeb上で扱いやすくするためによく使用されます。
def encode_image(image_path):
    # 画像ファイルをバイナリ読み込みモードで開きます。
    with open(image_path, "rb") as image_file:
        # 読み込んだ画像データをbase64形式でエンコードし、文字列に変換して返します。
        return base64.b64encode(image_file.read()).decode('utf-8')

# 解析する画像のファイルパスを指定します。
image_path = "[画像ファイルのパス]"

# 関数を呼び出して画像をBase64形式の文字列に変換します。
base64_image = encode_image(image_path)

# APIリクエストを送信するためのヘッダーを設定します。
headers = {
  "Content-Type": "application/json",  # コンテンツタイプをJSON形式に指定
  "Authorization": f"Bearer {api_key}"  # 認証情報としてBearerトークンを設定
}

# APIリクエストの本文(ペイロード)を設定します。
payload = {
  "model": "gpt-4-turbo",  # 使用するモデル名
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "[質問文]"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}",  # Base64エンコードされた画像データ
            "detail": "high"  # 画像の詳細度を高に設定
          }
        }
      ]
    }
  ],
  "max_tokens": 300  # 最大トークン数を指定
}

# APIへPOSTリクエストを送信し、レスポンスを取得します。
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
data = response.json()  # レスポンスのJSONデータを解析
content = data['choices'][0]['message']['content']  # 解析結果の内容を取得

# 解析結果を出力します。
print(content)

試しに下記の画像ファイルで試してみます。

送信したラリーの画像

質問文は、「この画像は何でしょうか?」として、プログラムを実行してみます。すると下記のような答えが返ってきました。

これはラリーカーの画像です。画像には、速い速度で泥道を走っている青と黄色のデザインのラリーカーが写っています。背景には木々がぼんやりと見え、車から飛び散る泥が迫力あるシーンを演出しています。この画像は、モータースポーツの一種であるラリーレースのダイナミックな雰囲気をよく表しています。

教育への応用

この機能を利用して、学生が自分で撮影した英文や数式の画像をアップロードするだけで、即座に正確なフィードバックを得られます。これにより、学習プロセスが加速し、より効果的な学習が可能になります。

この技術を教育分野に応用することで、写真から直接英文の誤りを訂正したり、数式を解析するツールを開発することが可能です。学生が自分の書いた数式や英文をカメラで撮影するだけで、即座にフィードバックを得られるわけです。

英文を校正する例

例えば、下記のような画像を送ってみます。質問文は、「この画像の英文を見て、間違いがあれば修正してください。」としています。

送信した手書きの英文の画像

すると、下記のような回答が返ってきます。英語の文法を修正してくれています。

この画像に書かれた英文には間違いがあります。正しくは "I have an apple." です。「apple」は母音で始まるため、不定冠詞は「an」を使用します。

数式を解く例

次に数学に関連する画像でも実施してみます。質問文は、「この方程式を解いてください。」としています。

送信した手書きの方程式

出力形式が、Latex形式でしたのでみやすいように画像に変換してみます。正しく回答を導けています。

数式の回答

広がる利用の可能性

「GPT-4 Turbo with Vision」の導入により、教育分野におけるAIの活用が一段と進むことが期待されます。このような技術を用いて開発されたアプリケーションやサービスの広がりが、学習方法の多様性を生み出す役割を果たすはずです。そして、学習体験を豊かにするツールとして、新しい教育の未来を形作っていくです。

こういった技術の進化が、教育が直面する多くの課題を克服し、全ての学生にとってより公平でアクセスしやすい教育環境を実現できる可能性を秘めてると感じています。

この記事が気に入ったらサポートをしてみませんか?