何かと便利なXServerで話題のChatGPTを動かすために色々四苦八苦したので、手順をまとめる。

XServer × ChatGPT(OpenAI)の問題点

root権限が無いため、標準でインストールされているPythonに追加でモジュールがインストールできない。


方針

miniconda + pipを使う

minicondaってなに?

Minicondaとは、パッケージ管理システムと環境マネジメントシステムを担う conda と Python 基本パッケージを内包するディストリビューションです。 conda を用いて仮想環境を作成すれば、同じPC内で異なるバージョンのPython実行環境を用意することができます。

Google検索から抜粋

minicondaを使えばXServer上に様々なPython環境を構築できるようになります。

今回はminicondaを使ってXServer上にpython3.9環境を構築して、そのpython3.9にpip経由でOpenAIをインストールしていきます。

実際の手順

操作はXServerにssh接続してターミナル上で実行します。

minicondaのインストール

まずはインストールファイルをダウンロード&実行

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh

途中で入力を求められたりしますが、すべてyesを入力。

インストールが終了すると.bashrcにいろいろ記述されているので、sourceを実行して有効化。

source .bashrc

conda –versionと実行すると現在のcondaのバージョンが表示されます。

conda --version

コマンドプロンプトの左に「(base)」と表示されていればOKです

本環境では標準でPython3.10がインストールされていました。

(base) [xsXXXXXX@svXXXXXX ~]$ python --version
Python 3.10.9

Python3.9の環境構築

3.10のバージョンのままでもいいのですが、ローカルの開発環境がpython3.9なのでcondaコマンドを実行して3.9環境を構築します。

ここではp39という名前でpython3.9環境を構築しました。

conda create --name py39 python=3.9

次に、今構築したpython3.9環境をactiveにします。
コマンドプロンプトの左に「(py39)」と表示されたらOK。

こんな感じ↓

(base) [xsXXXXX@svXXXXX ~]$ conda activate py39
(py39) [xsXXXXX@svXXXXX ~]$ 

これで自由にモジュールを追加できるpython3.9環境ができあがりました。

あとは公式ドキュメントにもあるようにpipからopen aiをインストールします。

open aiのインストール

pip install openai

これでopen aiのライブラリもインストールできました。

サンプルプログラムなどはこの状態で動くはずです。

PHPからopen AIを実行

2023年4月時点でopen aiのAPIはpythonのものしかありません。

今回laravelフレームワークで構築したウェブアプリケーションからChatGPTを扱いたいので、condaで構築したpython環境とPHPから実行するPythonコマンドの実行ファイルを合わせる必要があります。

筆者の環境では、
/home/xsXXXXXX/miniconda3/envs/py39/bin/python
にpython3.9環境が構築されたので、phpで実行するなら以下のような記述になります。(pythonプログラムはhoge.pyとしています。)

<?php
$output = null;
exec('/home/xsXXXXXX/miniconda3/envs/py39/bin/python hoge.py', $output);
var_dump($output);