
NoteableプラグインでPHPを動かしてみる(ChatGPT部, 大城)
ご無沙汰しております、ChatGPT部、部長の大城です。ちょっと本業のChatGPT案件&セミナーが詰まっており中々ブログ記事更新出来てませんが、時間が少しできたので久々のエントリ。
今日はNoteableプラグインでPHPを(無理やり)動かす方法についてです。
事の発端:PHPカンファレンス沖縄2023のネタ検討
こちら、私の地元の沖縄で開催されるということでリビルドの鈴木さんに誘われて先週の2023/9/16(土)に参加したPHPカンファレンスです。
そちらの私の発表はこちらですが、そのおまけでちょっとだけChatGPTのNoteableプラグインでPHPを動かす話をしました。
該当スライドはこの辺り。今回はこの環境の構築方法について少しまとめます。


↑無事、PHPがNoteableのjupyter notebook環境で動作しています。
実現方法:他の環境でビルドして設置
こちら、ChatGPTにNoteableで実行可能な言語を確認するとPythonとRが上げられるのですが、PHPは含まれていませんでした。
一方でビルド済みのPHPのバイナルファイルを設置すれば動くかも、とChatGPTに教えてもらいましたので、その手順です。
その1:頑張ってビルドする
Noteableの実行環境(OS)についてChatGPTに聞いてみると、Ubuntuの環境だよと教えてくれました。最初はその環境用のビルド済みのPHPのバイナリファイルが無いか探してみたのですが、今ひとつ探しきれなかったので、同じ環境をAWSで構築し、そこでPHPをソースからビルドしてみました。
なお、その工程は結構苦労したのですが、まとめるのは大変なので苦労の記録だけ残しておきます・・。(makeコマンドなんてめっちゃ久々に叩きました)
その2:ビルド済みのPHPのバイナリファイルをNoteableのプロジェクトに設置
Noteableにはファイルアップロードの機能があります。新規にプロジェクトとノートブックを作成してもらい、同じプロジェクト内に先ほどビルドしたPHPのバイナリファイルを設置し、そちらを使ってもらうように指示しました。
こちらも記録はこんな感じ。(今日試してみたら実行環境がなんかちょっと違う気もしましたが、動作してました)
一応、アップロードの画面としてはこんな感じですね。

私の場合は30MBくらいのtar.gzで固めたPHPのバイナリファイルを設置し、そちらをChatGPTが解凍、さらにChatGPT自身がPHPのバイナリファイルのパスを探して使ってくれてました。賢い。( php-bin/bin/php )
その3:あとはPHPをコマンドラインで実行
ファイルを作って実行も多分できると思いますが、簡易的にChatGPTにNoteableプラグインを使ってPHPのコードを書いてもらい、実行してもらいました。
①Hello World
問題なく動きますね。

②phpinfo()
こちらも動作しました。Pythonの実行画面からシステムコマンド!でPHPを無理やり動かしているので、ちょっと見た目として違和感はありますが・・(笑

その4:所感とTips
PHPが無事動作しました。ちなみに他の言語もビルドして動くものなら同じような感じで行けるのでは、と思ってます。(dockerで行けるか、とかは未検証ですが、エンタープライズ版のNoteableにはそういう機能もあるっぽいですね)
あとTipsとしては「5分に1回くらい、PHPのバイナリファイルの実行権限が剥奪される」というおそらくセキュリティ上の仕掛けが動いていましたので、毎回システムコマンドで実行権限を付与してPHPのバイナリファイルを叩いてね、と指示するのが少々手間ではありました(chmod +x)。
ちなみに・・ Open Interpreterを使えば良いのではという気も・・
ここまで試行錯誤して色々やってきましたが、ローカル環境でChatGPTのAPIを叩いてプログラムを実行できると噂のOpen Interpreterを使えば、例えばMac環境なら普通に手元にPHP入れて実行すればいいのでは・・という気もして来ました。まぁでもNoteable環境なら外部にNotebookの公開もできますし、(やや苦しいですが) Noteableの方が手軽なケースもあるかも?とも思ってます。
ということで、今日はNoteable環境でPHPを実行するお話でした。
皆さんもどうぞ良いChatGPTライフを・・!(大城)