業務への活用
今年あたりから、対話型生成AIの信ぴょう性の高まりに伴いコーディングや資料作成の業務に活用した知見のメモ。
様々な対話型生成AI
昨年2023年のChat GPTを筆頭に今日では各社が様々な対話型生成AIを提供しており、
ほとんどは一定の範囲内であれば無料で利用可能。
Chat GPT(Open AI)
対話型生成AIの火付け役。OpenAIとMicrosotとの提携により今後どうなるか疑問。
Microsoft Copilot(Microsoft)
昨年から、Windowsユーザを対象にタスクバーから簡単にアクセスできるようになり、基本無料無制限。ただ、ややレスポンスが遅い。
Github Copilot(Microsoft)
自動で複数ファイルをもとに、コーディング予測・解説をしてくれるそうなので、他サービスでは必要だったコードのコピペが不要に。基本有料。
Gemini(Google)
今後、あらゆるGoogleサービスに組み込まれる予定。
perplexity(Perplexity AI, Inc.)
通常はxx年まで、と決まった期間を学習モデルにするのに対して、こちらは最新の情報を反映するよう重視されている。Google検索時に上部へ出てくるSearch Labsに似ている。
Claude(Anthropic社)
元OpenAI社員が独立し作っていることもあり、引き続き期待大。
Meta Llama(Meta社)
OSSの大規模言語モデル。日本語には特化していないが、今後の発展に期待。
個人的にはClaudeをよく利用。
ClaudeはChatGPTのIQを超えているそう。
基本編
いずれのサービスも欲しい情報を正確に得るためのプロンプト構成力が必要。
基本は以下の3点。
前提条件を明確に
使用している言語やバージョン、フレームワークなど。
バージョンによっては、書き方が大きく異なっている場合もあるため事前に宣言することが重要。
順序
プロンプトは冒頭を重視して読み込む傾向があるため、冒頭に依頼内容を置き、そのあとにコードといった参考内容を書くことが重要。
以下のTypescriptのコードにコメントを付与して
等。
エラー文はコピペ
まれに、回答に基づいてコーディングをしてもバージョン違いなどでエラーを吐くことがある。
その場合は、エラー文で再度質問すると、謝罪とともに回答を訂正してくれる。
応用編
添付資料に使う図の出力
Mermaid形式で図を出力してもらう。
Linux上にNext.jsをデプロイする場合の構成図をMermaidで作成して
出力された以下文字羅列を https://www.mermaidchart.com/ にてコピペすることで、資料に張り付けるための構成図や遷移図を簡単に作成することが可能。
graph TD
A[クライアント] -->|HTTPリクエスト| B[Nginx リバースプロキシ]
B -->|プロキシパス| C[Node.js サーバー]
C -->|実行| D[Next.jsアプリケーション]
D -->|ビルド| E[静的ファイル]
D -->|サーバーサイドレンダリング| F[動的コンテンツ]
C -->|接続| G[(データベース)]
H[PM2 プロセスマネージャ] -->|管理| C
I[Linux OS] -->|ホスト| B
I -->|ホスト| C
I -->|ホスト| G
I -->|ホスト| H
小芝居
「~になりきって」というペルソナパターンの複数人版。
対話型生成AIの問題点について2人を仮定して議論して
すると、Aさん・Bさんという架空の人物を想定して、勝手に議論を進めてくれるため、
新たな問題提起や、それぞれの立場に応じた問題提起、複数人でのプレゼン時の参考となる。
逆質問
反転インタラクションパターンという。
Linux上にNext.jsをデプロイするために必要な情報を質問して、十分な情報が得られたら回答を作成してください。
すると、カスタマイズ可能な項目を逆質問してくれるので、検討材料になったり、正確なシステム構成を行うことができる。
1.使用するLinuxディストリビューション: どのLinuxディストリビューションを使用していますか?(例:Ubuntu、CentOS、Debianなど)
2.サーバー環境: デプロイ先のサーバーはどのような環境ですか?(例:VPS、クラウドサーバー、オンプレミスサーバーなど)
3.Node.jsのバージョン: 使用するNode.jsのバージョンは何ですか?
4.データベース: Next.jsアプリケーションで使用するデータベースはありますか?(例:MySQL、PostgreSQL、MongoDBなど)
5.デプロイ方法: どのようなデプロイ方法を考えていますか?(例:手動デプロイ、CI/CDパイプライン、Dockerなど)
まとめ
ここ1年で、業務で使っていた・使えそうだと感じたものは以上の通り。
ここで紹介していない、ファクトチェック関連で様々プロンプトパターンがあるが、今後の精度向上に伴い不要となるのではないだろうか?
リファクタリングについては、洗練されたコードを投げた場合、1か所でしか使わないにもかかわらず、いささか細かく関数化しすぎな印象があるためあまりおすすめしない。
参考文献
書籍「生成AI時代の新プログラミング実践ガイド」