ChatGPTと遊んでいます。
- Pythonは全く触ったことがなかったので、web版のChatGPTに質問しながら、APIでChatGPTにつなげる方法を聞きました。
- つなげるようになったので、API経由で会話しながら「自分のリポジトリを自分で改善できるやつ」を目指してやってます。
- とりあえず「モジュールを追加する」ことはできるようになりました。
- .env.exampleファイルを.envにリネームして、自分のAPIキーを入れる。(とりあえずpineconeはまだ不要)
- main.pyを実行する。
- セッション形式、翻訳形式、対話相手の名前を入力する。
- 例えば「one-on-oneセッション、翻訳なし、traveler」を指定すると、異世界旅行者との対話ができます。
- APIにつなげて、いろんなbotと会話できます。
- 例えば、assistantは優秀なPythonのプログラムアシスタントとして振る舞います。「~~というコードを書いて。ファイル名はfileName.pyで。」と頼むと、(多分)注文した内容のfileName.pyを生成します。これは上書き生成なので、コードの改善も可能です。
- logフォルダ以下には、これまでの自分とChatGPTとの会話が残っていて、読めます。
- セッション形式を「自動タスク処理」にすると、tasksディレクトリに保存されたtaskを自動的に実行する(現状ではcodesとtestsのみ)
- assistant : Pythonの専門家。モジュールを生成できる。モデル:gpt-3.5-turbo
- traveler : いろんな異世界を冒険した探検者。冒険譚を話してくれる。モデル:gpt-3.5-turbo
- coder : 自動タスク用。Pythonコードを返す。モデル:gpt-4
- test_coder : 自動タスク用。Pythonテストコードを返す。モデル:gpt-4
assistantとのモジュール生成による、リポジトリの改善例
- 人間が関わらなくてもコードの追加・改善ができるようになること
- 何らかの大雑把な命令に対して、追加機能の提案をbot自身で行うこと
- ユーザーが「taskNameをやっておいて」と一言伝える
- 現時点で解決可能なタスクと、不可能なタスクに分ける
- 現時点で解決可能なタスクをすべて実行する
- 不可能なタスクに対し、必要になる追加機能を洗い出す
- 必要な追加機能をpythonモジュールでリポジトリに追加し、実行可能にする
- 結果、不可能なタスクが解決可能になったら、全て解決する
- 1-6を繰り返すことで、万能命令解決リポジトリになる(のか?)