目次
この記事はpyspa アドベントカレンダー 2024の6日目です。
公私ともにAIを活用しきれてないけど、こんな感じで使いましたというお話です。
Elasticsearchのハンズオン
お客さん向けにElasticsearchのハンズオンを1時間 x 15回という形で提供しました。 新しい人も入ってきたので慣れてもらうために、また、知ってる人もハンズオンすることで普段は触らない・知らない機能を触って刺激になってアイデアが浮かぶかもしれないしという感じのモチベーションです。
ただ、資料作成にそれほど時間をかけるのももったいないですよねとお客さんとの会話にも出たので、そういう時にこそAIでしょ!となり、使ってみました。
こんな感じで。
Google AI StudioのGeminiに壁打ちの相手してもらってるところだけど、賢いなぁ(驚き屋みたいになってるな) pic.twitter.com/swyvbTdYxt
— Jun Ohtani (@johtani) May 1, 2024
このツイートではGoogleのAI Studioを使っていますが、ChatGPTでも同じように作ってもらって、最終的にはChatGPTで最後の回までを作ってもらいました。 プロンプトを工夫したりはできていないので、まだまだ使い切れてる感じはしないですが。。。
流れとしては、次のような感じで作ってもらいました。
- 15回で初心者向けのハンズオンの流れを考えてもらう
- 「Elasticsearchのハンズオンを15回程度で考えているところです。全文検索のユースケースを想定しています。カリキュラムを考えてみてください」
- 戻ってきた答えにはロギングなどのユースケースも混ざっちゃってたので何度かやり取りして直してもらいました
- 大体出来上がったらそれぞれの回のハンズオンについて詳しく書き下してもらいます
- 最初の流れでは、1行程度の説明しかなかったので、ここでそれぞれのハンズオンでの流れが出来上がります
- あとは、個別にさらにいくつか会話をしていって、仕上げていきました
- 「図を用いて説明して」「手順を書いて」「Dockerを使う形のインストールだと?」
題材がElasticsearchということもあり、世の中に資料がたくさんあって学習されているようで、REST APIやクエリもなんとなく作ってくれます。 おかげでハンズオン資料もそれなりの形にできたのではかどりました(出てきたクエリなどは個別に確認しますが、ざっくりした項目は上げてあるのであとは説明すればいい)。
ただ、Elasticsearchはバージョンアップも頻繁なので、「資料があふれている=古いバージョンの書き方もある」という状況がよく起こります。 私はある程度知っている内容なので、「ここがおかしい」「これは古い」という形で自分ですぐに修正が入れられるので良いのですが、知らない分野だとそれぞれの調査で時間がかかるだろうなぁという感じです。
慣れてる内容を再度まとめたり、文章を書いてもらってちょっと修正などは作業がすごく楽になって助かりました。
GoでSlackのボット作成(第2弾)
もう一つの使い方としてプログラムも書いてもらいました。 こっちはうまく指示が出せずに失敗という感じになってしまいましたが。。。
3月に「続ける思考」を読んだ記事を書きました。 で、本をちょっとずつ読んだり、ガンプラをちょっとずつ作ったりしています。 それらの記録をつけるのに、Slackのボットを作ってみるか→じゃあ、AIに手伝ってもらいながらコーディング?という流れで、壁打ちしながらコードも書いてもらってみたのですが。。。
ペアプロってこんな感じなのだろうか? pic.twitter.com/KWxYERNgX3
— Jun Ohtani (@johtani) May 1, 2024
G.W.に壁打ちしながらコードは書いてもらったんですが、実際にGoLandにもってきて動かそうとすると、まぁ、うごかないのです。。。 (そもそもmainの関数なのにpackage mainになってないとか。。。) 結局、お蔵入りして8月に骨格をもとにしながら最低限(Google Driveじゃなくてローカルファイルに保存)の実装にして動くようになって活用していますが。
反省点はこんな感じ
- 複数ファイルにまたがるような形で設計してもらおうとしたのがよくなかった
- そもそも指示の出し方がよくない?(プロンプト書くのが下手?)
- GitHub CopilotのようなIDEで使えるもののほうがよさそう(もってきて動かすのがめんどくさい)
- テストとか書いてもらうのがいいのかなぁ?
もちろん、メリットもありました。
- プロジェクト、プログラムの命名
- 「こんなプログラムを作りたいんだけど名前をいくつか考えて?」「もっと中二っぽい名前がいいな」という感じ会話をして10個くらい名前を考えてもらってそこから採用した
- 変数名、関数名などの命名
- READMEの記述
- REST APIのレスポンスJSONとかをもとに構造体作ってもらったり
- 書いてもらったプログラムの個々のパーツは書き方の参考になった
あとは、JetBrainsのAIアシスタントに課金はしていないのですが、GoLandの補完が賢くなっており、定型的なエラー処理やログメッセージなどを予測して補完してくれるのがすごく楽ですね。テストケース書く時もいい感じに補完してくれるのかしら?(書きなさいよテストケース)
まとめ
まだまだうまく使えてない自信があります(なんだそれ)。 プロンプトを工夫したりなどはしていないので、なんとなく会話してもらってAIに壁打ちしてもらう形程度にしか使えてないと思っています。 あとは、プログラミングでの活用も課金してたりはしていないので、試してみないとなぁ。
世の中的には、プロンプトエンジニアリング、RAG、エージェントRAG、グラフRAG、画像生成などいろいろ流行っていますが、なんとなく概念を知っているかな?くらいになっています。 来年はRAGだとかエージェントRAGだとかをもっと触って使ってみたり作ってみたりしないとですね。 (本も買って積んでるし。。。)
comments powered by Disqus
See Also by Hugo
- GoでSlackのボットを作った話
- 機械学習による検索ランキング改善ガイドを読みました
- 仕事中のBGM環境
- 今年のDIYキーボードとコントローラーラック
- Lunakey Miniを組み立てて、BLE+LPME-IO化してみた #DIYキーボード