生成AIへの指示を、生成AIと共に考える

PUBLISHED AI #Claude Code #ChatGPT #プロンプト

生成AIを使った開発では、自分ですべての指示を考える必要はありません。私はChatGPTと壁打ちしながら方向性を決め、Claude Codeへの具体的な指示もChatGPTに作ってもらっています。実装結果を再びChatGPTに戻し、修正や次のフェーズを考えてもらうことで、非エンジニアでも効率よく開発を進められます。今回は、実際のクリニック業務で使うツール開発を例に、その具体的な進め方をご紹介します。

生成AIを活用する方法については、さまざまな手法が紹介されています。次々と新しい方法が登場する中で、それらを具体的に理解して実践することは、我々非エンジニアにとって、なかなかハードルが高いものになりつつあります。

今回は、私自身が実践している中で、一つ有効だと感じている方法をご紹介したいと思います。その方法とは、生成AIに指示を与える際のプロンプト、つまり「生成AIへの指示そのものを、生成AIと共に考える」という方法です。今回は、この方法について詳しく見ていきます。

最初に結論を申し上げると、私はChatGPTに「Claude Codeへどのような指示を出せばよいか」を考えてもらい、その指示をClaude Codeに渡すという形で開発を進めています。

そもそも私の生成AIを活用する手順

そもそもですが、私が何かプロジェクトを始めようとするとき、どのように始めているのかというところからお話ししていこうと思います。

私が何か新しいプロジェクトを始めようとするとき、現在はまず紙で考えたり、メモを起こしたりするところから始めるのではなく、いきなりChatGPTに相談を投げかけ、壁打ちをしながら考えるところから始めます。例えば最近取り組んだものでは、私のクリニックがある地域のサーベイランスデータをスクレイピングし、それをサイト上に最新情報として表示する仕組みを、自分が知りたい情報に最適化して作るというものがありました。

これについて考えるときも、まずChatGPTに「こういうものを作ろうとしている」「こういうものが欲しい」「こういうことをやろうと思っている」といった内容を投げかけます。すると、「こういうことができる」「こういう手法がよい」「こういう技術が使える」といった案を、大体いくつか返してくれます。そこで壁打ちを続けながら、細かい方向性を決めていくという進め方をすることが多いです。

そのうえで、私は現在、実際にプロジェクトを作る際にはClaude Codeをメインの生成AIとして使用しています。Claude Codeはエージェント型AIであるため、実際にサイトを構築したり、プロジェクト内のデータやファイルを整理したりする作業については、現時点ではClaude Codeの方に分があると私は考えており、このような使い分けをしています。

もちろんChatGPTでもCodexを使用できますが、私が使用している範囲では、プランによっては利用できる量がやや少なく、比較的早くリミットに達してしまうことがあります。そのため、現時点ではClaude Codeの方が使いやすいと感じています。

具体的に指示を出す手順

ChatGPTとの対話で話が概ねまとまってくると、「では、いよいよ実装しよう」という流れになります。そこでChatGPTに、「このプロジェクトをClaude Codeに作ってもらいたいので、Claude Codeに対する指示を作ってください」とお願いすると、すぐに指示を書いてくれます。そして、その指示をClaude Codeに貼り付ければ、プロジェクトがどんどんできていきます。本当に簡単です。

ここでのコツとしては、一気にすべての指示を出そうとしないことです。一度に多くのことを指示すると、Claude Codeが混乱してしまったり、意図しない方向に進んでしまったりすることがあります。そのため、ある程度大きなプロジェクトの場合には、プロジェクト全体をフェーズ1から5などに細かく分割し、「フェーズ1ではここまで」「フェーズ2ではここまで」と、ある程度目標を定めながら実装していくことが多いです。これについても、こちらであまり深く考えなくても、ChatGPTに「Claude Codeで実装したい」と伝えると、ある程度うまく分割してくれます。ですので、こちらが最初にやることとしては、ChatGPTが考えてくれた、例えばフェーズ1の指示をClaude Codeに貼り付けます。

Claude Codeに指示を貼り付けて実装が終わると、大体「どこまで、どのように実装できたのか」という内容が返ってきます。次に、その返ってきた内容を、もう一度ChatGPTに貼り付けます。

するとChatGPTが、方向性がずれていないか、修正した方がよいところはないかといった点も踏まえて、新たな指示や、フェーズ2へ進むための指示を作ってくれます。ですので、完成するまで私がやることとしては、ChatGPTが作った指示をClaude Codeに貼り、Claude Codeが実装した結果をChatGPTに貼る、という作業を繰り返すことになります。それに加えて、大きく方向性がずれていないかを自分で目視して確認する、というのが主な役割です。

実際に自分で手を動かして何かをするというよりは、生成AIが処理している待ち時間が大半になるため、この作業を進めながら別の仕事をするということも普通にあります。そのため、診療の合間に一つのプロジェクトがある程度進んでしまう、ということもしばしばあります。

実践し、実際に使いながら微調整を行う

上記の例では、実際にフェーズ5まで一通りの実装が済んだところで、まず実際に使ってみます。使っていくと、やはり調整したいところが出てくるのが普通ですので、気になるところから順番に修正していくという形になります。

例えば先ほどの例でいうと、市のサーベイランス情報を公式サイトから取得し、それを私が見たい形に表示するサイトを構築しました。

最初は、新型コロナウイルスとインフルエンザについて、現在どのような動向になっているのか、定点当たりの報告数やグラフを表示するところから始めました。ただ、実際に使ってみると、他の定点把握の感染症についても少しは見られた方がよいと感じたため、そうした情報も画面の下の方に小さく表示できるように調整しました。

また、データは大体週1回更新されるのですが、それを毎回手動で更新するのはもちろん面倒です。そのため、ワンクリックで最新情報に更新できるボタンを作り、押すと最新のデータを取得して表示してくれるように実装しています。さらに工夫すれば、これを自動更新にすることももちろん可能です。

自分に最適化したツールを作れる

このようなデータは、各市町村や都道府県などで公開されています。ただ、診療所によって必要な情報はもちろん異なります。特に感染症診療を行っている場合でも、小児科なのか内科なのかによって、必要となる情報は変わってきます。

公式情報は必要な情報が網羅的に掲載されており、網羅性という意味ではもちろん優れています。ただ、見やすさという点では、少し見づらいところもあります。今までは公式情報を開き、その中から自分に必要な情報を探して判断していましたが、それさえも少し煩わしく感じるようになりました。そこで、もう一目で自分に必要な最新情報を確認できるサイトを作ってしまうことにしました。このように、「自分のために少しだけ最適化したい」というサイトやシステムを、自分で生成AIを使ってプログラミングして作れるようになると、本当に便利です。

時間という意味で得られるものを考えると、情報を得るまでに短縮できる時間は、1回単位で見れば本当に2〜3分程度かもしれません。ただ、これは診療を続けていく限り、繰り返し行う作業です。本当に数分の節約であっても、100回、200回と積み重なれば、かなり大きな時間になっていきます。

何より大きいのは、集中力や頭のリソースを削減できることです。今までは公式資料のPDFをダウンロードし、そこから必要な情報をその都度探していく必要がありました。しかし、このサイトを自分で構築してからは、必要な情報が一目で分かり、最新情報もワンクリックで取得できます。これはまさに、自分でプログラミングができることの大きな利点の一つではないかと思います。

一度サイトを作れるようになると、次からは一気に速くなる

今回もそうなのですが、「自分がちょっと欲しい」と思うサービスや、情報を得るためのサイトを作ろうと思ったとき、すでに何個かサイトを自分で作った経験があり、ある意味で自分なりの「型」のようなものが決まってくると、ほとんど生成AIに投げるだけで作れてしまうようになります。

正直に言うと、最初はいろいろと面倒なところがあります。例えば、どうすれば必要な情報を取得できるのかということも、最初はまったく分かりませんでした。もちろん今でも自分で完全に把握しているわけではありませんが、ある程度経験してくると、例えば今回であれば「Pythonでスクレイピングすればすれば情報を取得できそうだ」ということが分かります。また、それをサイト上に表示するのであれば、例えばLaravelというフレームワークを使えば、インターネット上に公開する場合でも、セキュリティ周りをある程度考慮しながら構築できることも分かってきます。さらに、作っていく過程ではGitHubを使って適宜コードの変更履歴を保存・管理しておく、といった開発の流れも身についてきます。その他にも、諸々の指示を出すために、私はターミナルに膨大な数のショートカットを登録しており、よく使う操作の多くがワンコマンドでできるようになっています。そのため、開発がものすごいスピードで進んでいくわけです。

実際のコードを書く作業は、今でもClaude Codeがほとんどやってくれます。また、自分が分からないことがあったり、新しい技術を取り入れたいと思ったりした場合には、ChatGPTにある程度相談すれば必要な知識を得ることができます。そのうえで、初めて触る技術であっても、とりあえず使ってみることができます。本当に、2〜3個でも自分が「欲しい」と思うものを作ってみると、そこから先は、ある意味では惰性というか、その延長線上でどんどん自分が作りたいものを作れるようになってきます。そうなると、本当に速いです。仕事周りの改善が、ものすごいスピードで進んでいくようになります。

まとめ

今回は、生成AIに対する指示そのものを生成AIと一緒に考えながら、実際の開発につなげていく方法についてご紹介しました。

私の場合は、まずChatGPTに「こういうものを作りたい」という相談をして、壁打ちをしながら方向性を固めます。そのうえで、Claude Codeに渡すための具体的な指示をChatGPTに作ってもらい、それをClaude Codeに貼り付けて実装を進めます。実装結果を再びChatGPTに戻し、次の指示を作ってもらう。この繰り返しで、かなりの部分まで開発を進めることができます。

大きなプロジェクトであれば、フェーズ1、フェーズ2というように細かく分け、一気にすべてを作ろうとしないことも重要です。そして、一通り完成したら実際に使ってみて、使いながら必要なところを少しずつ修正していきます。

こうした方法を繰り返していると、Pythonで情報を取得する、Laravelでサイトとして表示する、GitHubでデータを管理するといった、自分なりの開発の「型」が少しずつできてきます。一度この型ができると、その後は新しいものを作るハードルがかなり下がります。

生成AIを使ったプログラミングの大きな利点は、既製品に自分を合わせるのではなく、「自分が少し不便だと思っていること」に合わせて、自分専用のツールを作れることだと思います。1回あたり数分しか短縮できない作業であっても、それを何度も繰り返すのであれば、時間だけでなく、集中力や頭のリソースの節約にもつながります。

非エンジニアであっても、生成AIと一緒に考えながら少しずつ作っていけば、以前であれば自分では作ろうとも思わなかったようなツールを、実際の業務の中で使える形まで持っていくことができます。まずは、自分が日々の仕事の中で「少し面倒だ」と感じていることから、生成AIに相談してみるのがよいのではないかと思います。


About the author この記事を書いた人:内科診療所の院長

IT企業でもコンサル会社でもなく、診療をしている開業医が、コードの作成から運用まで一人で行っています。取り上げるのは、実際に試して運用しているものだけです。

プロフィール →
Related entries
  1. 016 Claude Codeはコードを書くためだけのツールではない――文章の整理・編集からKindle出版まで
  2. 016 当院が月額7,600円を払ってでも使い続ける3つのITサービス|ChatGPT・Claude Code・Aqua Voice
  3. 016 生成AIの具体的な分類
  4. 016 Claude Codeをマニュアルの案内役にする――分厚い説明書を読まずに新しいシステムを使う方法
AIの記事をすべて見る →
  1. 016 Chrome拡張で業務サイトへのログインを自動化する
  2. 016 電子カルテ自動操作ツールTampermonkeyの衝撃