ChatGPTのCode Interpreterを活用してPythonコードを実行する

「ChatGPT Code Interpreterの活用方法を知りたい…」「ChatGPTでPythonの実行できるの?」そう思う方も多いのではないでしょうか。

実は、ChatGPT Code Interpreterを使用することで、簡単かつ迅速にグラフを作成することが可能です。

今回PROMPTYでは、ChatGPT Code Interpreterを用いたグラフ作成の実例をまとめてご紹介します。

Code Interpreterの概要について知りたい方は、こちらの記事をご覧ください。

関連記事

ChatGPTのCode Interpreterというコード実行プラグインがChatGPT Plus会員(有料会員)にリリースされたことが分かりました。 これにより、ChatGPTを使用している間、データ解析やグラフ生成といった機能[…]

はじめに

こちらのCode Interpreterでは質問文で指定した処理内容をPythonで実行します。

Pythonのバージョンは、3.8.10を使用しています。少し古いバージョンですが、ChatGPTの学習データが2021年までであることを踏まえると、妥当なバージョンです。

ChatGPT Code Interpreterでは、numpy, scipy, pandas, matplotlib, seaborn, sklearn, statsmodels, math, datetime, collectionsなど主要な標準ライブラリを揃えています。

セキュリティや安全性の観点から、現在の実行環境では、OpenAIによって使用できるライブラリが制限されています。

実際にChat GPT Code InterpreterでPythonコードを実行する

① 演算とグラフの作成するコードを実行する

Chat GPT Code Interpreterにpyファイルを読みこんで実行します。今回は二次関数のグラフの描画と積分の計算を行います。

プロンプト:

こちらのPythonコードを実行します。

import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate

# 関数の定義
def f(x):
    return x**2

# xの範囲
x = np.linspace(1, 5, 1000)

# yの計算
y = f(x)

# グラフの描画
plt.plot(x, y, label='y=x^2')
plt.fill_between(x, y, color='skyblue', alpha=0.5)  # 面積を塗りつぶす
plt.legend()
plt.show()

# 面積(数値積分)の計算
area, error = integrate.quad(f, 1, 5)
print(f"The area is: {area}")

GPT-4の出力(Code Interpreter):

このように、読み込んだPythonコードの処理内容を解説しながら、コードを実行してくれます。

グラフや積分値も問題なく出力されました。

② 素数を判定するコードを実行する

指定した数字が素数であるかを判定するコード読み込んで実行します.

プロンプト:

こちらのPythonコードを実行します。

def is_prime(n):
    if n <= 1:
        return False
    elif n <= 3:
        return True
    elif n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        i += 6
    return True

num = int(input("Enter a number: "))
if is_prime(num):
    print(num, "is a prime number.")
else:
    print(num, "is not a prime number.")

GPT-4の出力(Code Interpreter):

Code Interpreterで利用できるようにコードを修正してから、素数の判定を実行してくれました。

③ 画像の輪郭を検出するコードを実行する

アップロードした画像から物体のエッジ(境界)を検出し、その輪郭をプロットするコードを実行します。具体的には、画像内の急激な輝度の変化をエッジとみなすCanny法と呼ばれる手法を用いてエッジ(境界)を検出します。

プロンプト:

アップロード画像に対して、以下の処理を実行してください。
from skimage import io, filters, measure
from skimage.color import rgb2gray
from skimage.feature import canny
from skimage.segmentation import clear_border
from skimage.measure import label, regionprops
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

# 画像を読み込む
image = io.imread('your_image_path')

# グレースケールに変換する
gray_image = rgb2gray(image)

# エッジ検出(Canny法)を行う
edges = canny(gray_image)

# 輪郭を検出する
contours = measure.find_contours(edges, 0.8)

# 元の画像に輪郭を描画する
fig, ax = plt.subplots()
ax.imshow(edges, cmap=plt.cm.gray)

for contour in contours:
    ax.plot(contour[:, 1], contour[:, 0], linewidth=2)

plt.show()

アップロードした画像:

GPT-4の出力(Code Interpreter):

問題なくコードを実行し、画像内の物体(文字の)輪郭を検出してプロットしています。

まとめ

今回PROMPTYでは、ChatGPTのCode InterpreterでいくつかのPythonコードを実行しました。このCode Interpreterを活用することで、Pythonコードの実行を簡単に行うことができます。

今回の例を参考に、皆さまもChatGPTのCode Interpreterを使ったPythonコードの実行をしてみてはいかがでしょうか。