Site cover image

【下書き】NovelAIadviser開発メモ

  • NovelAIadviser

を作りました。

ここに動画

  • Python初学者
  • APIちょっとワカル

こんな状態でもOllamaを使って小説支援アプリが作れました。すごい!

というわけでここまでのチャット履歴をあげます。ChatGPTを使ったアプリ開発を試したいけどどんな指示をすればわからない人はこれ見て私の雑っぷりに存分に引いてください。

生きているエンジニア相手にこんなんやったらビンタされるね!

※毎回コードを復唱されるのが億劫なので、カスタムインストラクションで部分復唱をお願いしています。

やっててわかったこと

  • わかったコツ

AIを雑指示で混乱させない

変数名をそのまま伝えたり(例:context)、使う単語を統一するようにしましょう(例:回答→レスポンス)

最初の頃(1回目のコードのころ)は結構気にせずに好きな単語をバンバン使っていたんですが……なんか回答に時間がだんだんかかるようになりまして……

過去の会話も参照するから、てきとーに質問投げまくってるとどんどんAIが混乱してくるんですよね。

特に間違った質問や根本的にだめな提案をすると、AIもどんどんつられてだめになっていきます。

変な指示をしてしまったら指示からやり直すのもアリだと思います。

AIって人間ファーストだから、一度断ったダメ提案でもなんだかんだ考慮にいれちゃうんです……。

優しい子なんだよ……。

おかしくなり始めたらそういうときは諦めて新規チャットにしたほうが良いです。

  • しょうもない質問は別チャットで

一番作成中のアプリに詳しいAIは、当たり前だけど、今アプリについて話し合っているAIです。

この子は出来る限り混乱させないようにしましょう。

正規表現といった細かい修正や「これFlask以外」でもいけね?みたいな、アプリの基幹をひっくり返しかねない相談は新規チャットで聞いてみたほうが無難です。

メインのチャットではほぼ確定事項のみ話したほうが良いです。私はガン無視してるけど…。

特にアプリ構成を変えるレベルのものは、AIが話を引きずり始めたらまず進路修正できないよ!

なお、現在chatGPTで一番優秀なo1-previewちゃんはファイル取り込みに対応してません。

だから新規チャットを立てて作成中のアプリについて聞く際は、これまでのコードを渡す必要があります。

「コードコピペなんてやってられんわ!

 どうAIと共有するねん!」と思った方はこの記事を参照してください。

  • ふろく:Pythonファイルのコードを1つのファイルにまとめるやつ

お手軽なのがいい人は、Python限定ですが、リポジトリ内にあるPyファイルを1つにまとめるコード作ったのであげます。

combine_files.pyをリポジトリ内(ディレクトリ内)に入れて、コマンドプロンプトで”Python run combine_files.py”と打ってください。

すぐにcombined_output.txtというテキストファイルにまとめてくれます。

.gitignoreがあれば除外されているデータを無視してくれるよ!

ちなみにほぼo1-previewちゃん製です。君ほんとPythonに強いね。

さっき紹介した記事を参考に、「このアプリの機能を説明して!」って指示して、出てきた説明書きをcombined_outputの先頭につけておくといい感じになるよ。

  • AIが知らないことはこっちでどうにかする

AIが知らないことは”できません”。

当たり前なんだけど、これ本当に重要です。

頭がいいから推測でなんとかしようとしてくれるけど、各ライブラリのこんがらがった個性あふれる仕様が推測程度でどうにかなったらエンジニアは要らないんじゃい!(いつもお世話になっております)

AIが知らないこと――あっ憶測でなんとかしようとしているなコレは……と察すること――は、こちらから必要な情報を渡したり軌道修正が必要です。

OllamaのAPIの仕様とかわかんないからね!人間側が調べるしかないよね!

あああ!!知りたいことが載ってない!!直接試すしかない!!

そんななので、なんでもAIに任せすぎると、AIが詰んだ時にどこで詰んだかわからなくなって終わってしまいます。

別件でjavaScriptのコードももちょもちょしていたのですが、わけわからんバグにお互い「これで直った?」「直んないね」「ね」で開発終了しました。

凡ミスやメジャーなライブラリなら余裕で対応できるんですけど、情報が少ないライブラリだとAIでもどうにもできないんですよね。ユーザーが対応できないとどうにも。

AIに任せるにしても最低限の知識というか知見はあった方がいいです。

……不思議なことにこういうときに人間側の「たぶんこうなんやろなあ……」が働くんですよね。

たぶんこういう仕様やなあ……で進めてなんとかなっちゃうやつ。

このよくわからんシックスセンスは何なんだろう。にんげんってこわい!

  • ユーザーサイドの修正点は後からまとめて伝える

会話1回目のころは、ユーザーサイドで修正した点があればGPTにも都度都度共有していました。「毎回コードを直すのが面倒」というしょうもない理由からだったのですが……。

どんどん会話が重くなるしいいことないです。やめとけ!

そもそもGit使っていれば差なんて簡単に分かるし!

  • AIに検討させる

こちらの指示やアイデアが間違っていたり考慮不足だったりしても、AIはなかなか指摘してくれなかったり代案を出してくれなかったりします。

「こうしてください」ではなく「このアイデアどう?検討して!」って言っておくと指示を評価したうえで修正を考えてくれるのでおすすめ。

最後に

チャット履歴まるっと上げてるの少ないよな……と思ってあげました。

アプリ作ってほしいけどどう言えばいいねん!って困っている人の助けになればさいわい。