あらまし
私は以前、急にクソアプリが欲しくなって、
「乱数日記」なるものをChatGPTに作らせました。
それがこちらです。
あれから時が経ち、私の実力も向上しているはずです!
ということで今回は、AIに作らせたクソアプリを自分で再現して、
(何なら機能も追加して)AIに勝っていきたいと(?)思います。
言語の選定
今回、言語はPythonを使用します。
AIに作らせたときはwebアプリであることを重視していたためhtmlでしたが、
もう私はGoogle Colabという神の力を手に入れました。
しかも自力でかけるのもPythonだけなのでPythonを使用します。
成果物
文章を書くのが苦手なのでサクッと紹介します。
AI版と違うところ
いいところ
・自分でランダム生成候補となる文節を追加できる
悪いところ
・それぞれの単語リスト(txtファイル)ができてしまう
・Pythonができる環境でないと実行できない
・文節の削除にはTXTファイルをいじる必要がある
(↑これはAI版だとhtml直いじりだったし進歩では..?)
コード
コード全文です。
import random
ans = []
X = ["when","where","who","how","do"]
def add(N):
f = open(N + 'list.txt', 'a')
f.write(input() + " ")
f.close()
def generate():
for S in X:
words = open(S + 'list.txt', 'r')
A = words.read().split()
ans.append(random.choice(A))
words.close()
while True:
N = str(input())
if (N == "when") or (N == "who") or (N == "where") or (N == "how") or (N == "do"):
add(N)
elif (N == "generate"):
ans = []
generate()
print(str(ans).replace(" ","").replace("'","").replace("[","").replace("]",""))
elif (N == "exit"):
break
else:
print("It is unsupport word")
使用ライブラリ
・random
文章をランダムで生成するときに使用します。
操作方法
実行すると入力を要求されます。
ここで特定のコマンドを入力することで操作を行えます。
操作コマンド
・addコマンド
「add 〇〇」(〇〇には「when」、「who」、「where」、「how」、「do」のいずれかのみ入る)
と入力すると、更に入力を求められます。
そこで入力した文節が、それぞれの選択肢が格納されているリストに保存され、
次回生成時よりランダム生成の可能性があります。
・generateコマンド
「generate」と入力すると、各リストの中から選ばれたランダムな文節から
おかしな文章が生成され、満足することができます。
面白いかどうかは、あなたのaddで何を入力したかにかかっています。
・exitコマンド
「exit」と入力すると、whileループから抜けることができます。
ただし、「add 〇〇」のあとに出てくる入力欄で「exit」と打てば、
ランダムで文中にexitと書いてある意味のわからない文の完成です。
振り返り
結局私はAIに勝てたのか?
リストにまとめてみました。
| 評価項目 | AI版 | 自作版 | 補足事項 |
|---|---|---|---|
| 開発言語 | HTML | Python | - |
| 開発時間 | 10秒 | 約3時間 | AI版は生成にかかった時間を記載 |
| コード行数 | 168行(GUI) | 35行(CUI) | ただしAI版にはlocalhostでの保存 |
| 拡張性 | ◯ | ◎ | データが処理と分離され影響範囲が狭い |
| 利用ハードル | 低 | 高 | AI版はGithub pagesで体験可 |
| 個人的な満足度 | ☆☆ | ☆☆☆☆ | 達成感、機能追加できた点からも自作版に軍配 |
体験するならAI版、仕組みを理解したり、自分の文節で文を作らせたいならPython版です。
自作版の開発時間(約3時間)には、不明点の検索、デバッグなどの時間も含まれています。
まとめ
今回の比較から分かったのは、
AIは「速く形にする」のに強く、
自作は「理解と拡張」に強い。
つまり、
アイデア検証 → AI
本格的な開発 → 自作
という使い分けがいいかなと感じました。
意外と難なくできてしまったので文量も内容も薄いですがお許しください。
今回なぜこれをしてるのかって?
自作AIの出力生成で手間取ってるから
生成という点で共通しているこの企画を思いついたってわけだ