1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ウルヴァリンのように自己修復するPythonスクリプト

Last updated at Posted at 2023-03-19

概要

Wolverineは、Pythonスクリプトのクラッシュ箇所を自動的にデバッグしてくれるスクリプトとのこと(※)。マーベルのウルヴァリンのように自己回復能力を持つというコンセプトが面白いと思いコピペで試しました。

まだgpt-4を利用できないため、代わりにgpt-3.5-turboを使用したところ期待した通りにデバッグできませんでしたが、スクリプトを繰り返しGPTに自動で改善させる発想が興味深く、勉強になりました。

※元ツイート

Setup

  • READMEの内容を微修正
    • 前提:GitHub CLI, Git, Python3がインストール済み
gh repo fork https://github.com/biobootloader/wolverine.git
cd wolverine
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
git clone https://github.com/{YOUR_REPOSITORY_NAME}/wolverine.git
git remote add upstream https://github.com/biobootloader/wolverine.git
git remote -v
origin  https://github.com/{YOUR_REPOSITORY_NAME}/wolverine.git (fetch)
origin  https://github.com/{YOUR_REPOSITORY_NAME}/wolverine.git (push)
upstream        https://github.com/biobootloader/wolverine.git (fetch)
upstream        https://github.com/biobootloader/wolverine.git (push)
  • wolverine.pyについて
    1. OPENAI_API_KEYをos.environで読むよう変更
      環境変数にOpenAIのAPIキーが未設定の場合追加。set OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxx
    2. モデルをgpt-3.5-turboに変更しているが、gpt-4が使える場合変更不要
 # Set up the OpenAI API
-with open("openai_key.txt") as f:
-    openai.api_key = f.read().strip()
+openai.api_key = os.environ["OPENAI_API_KEY"]

     response = openai.ChatCompletion.create(
-        # model="gpt-3.5-turbo",
-        model="gpt-4",
+        model="gpt-3.5-turbo",
+        # model="gpt-4",

実行例

  • READMEのExample Usageの内容と同じ。
  • 実行するとbuggy_script.pyが更新される。想定ではデバッグされるはずだがgpt-3.5-turboでは奇怪なコードが生成され正常動作しない。
  • モデルをgpt-4に変更するか、gpt-3.5-turbo向けに最適化し対策が必要とみえる。
python wolverine.py buggy_script.py "subtract" 20 3
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?