NotionAIにPython開発環境のセットアップ手順について訊いてみた
NotionAIを気軽に使ってみるアドベントカレンダーの14日目です。
パブリックな処理を手掛けない限り、利用するライブラリのバージョンというものは古いままになりがちです。Google App Scriptによる処理の楽さに甘えてローカル環境をやや放置気味でしたが、久々に触ってみると最新バージョンと大きく離れているライブラリがところどころに。
AIに出してもらったコードがローカルのライブラリバージョンに適合しなかったりするため、試しにAIが出すコードに適したバージョン等を訊いてみました。
NotionAIが扱うPythonコードの最適環境
質問文は特定の用途を指す表現にする必要があります。NotionAIは「知っているバージョン」と指示すると不明であるという答えを出します。これは、バージョンを求める意味が不明瞭な為に発生するものです。AIでよく陥りやすい罠ですね。「出力コードの動作保証バージョン」あるいは「生成時の基準に用いるバージョン」と用途を明確に指示しましょう。
NotionAIがコード生成時に用いるバージョンについては以下の通り。
申し訳ありません。先ほどの回答を修正させていただきます。
Notion AIは、Pythonコードを生成・理解する際に、以下のような特徴があります:
- 生成するコードは主にPython 3の一般的な文法に従います
- 最新のPython機能やシンタックスについては、安定版としてリリースされ、広く採用されている機能のみを使用します
- 特定のバージョンに依存する機能を使用する場合は、その旨を明示します
ただし、Notion AI自体は特定のPythonバージョンに制限されているわけではなく、ユーザーの必要に応じて適切なコードを生成できるよう設計されています。生成されるコードの互換性や具体的な動作確認については、実際の実行環境で検証することをお勧めします。
とはいえ、バージョン3もそれなりに幅が広めです。こういうときは具体的なセットアップ手順を出力させてみると特定のバージョンを利用してくれます。
anyenvを使ったpythonのセットアッププロセスを出して
よく知られているセットアップ手順だったため大筋は割愛します。ピックアップするポイントがあるとすれば、Ubuntu/Debianでの依存パッケージリストでしょうか。
sudo apt-get update
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
何を元に出してきたのか検索したところ、Ubuntu22.04でpython-opensslが見つからなかった場合のインストールセットのようです。
そして、以下が生成コードを動作させる際の主要バージョンに関する記述となります。
Notion AIが生成するPythonコードは、一般的なPython 3の主要バージョン(Python 3.7以降)で動作するように設計されています。特に以下の点に注意してコードを提供しています:
- Python 3.7以降の標準的な機能とシンタックスを使用
- 広く使われているライブラリやフレームワークとの互換性を考慮
- 特定のバージョンにのみ存在する実験的な機能は避ける
そのため、最適な実行環境としては以下をお勧めします:
- 推奨バージョン:Python 3.8 ~ 3.11
- 最低要件:Python 3.7以上
なお、生成されるコードの中で特定のバージョンでしか動作しない機能を使用する場合は、その旨を明示的にコメントで示します。
注意すべき点としては、PythonのEOL、とくにSecurity Supportでしょうか。3.8は2024年10月7日に終了しているため、3.9以降が好ましいでしょう。
あとがき
特定言語のコードを生成する際は、AIの知識への質問で生成したコードを使う際の適切なバージョンも併せて訊いておきましょう。環境で動かしているバージョンと大きく異なる状況は案外発生しやすいものです。