見出し画像

プログラミング知識0の医師が、生成AIのプロンプトだけで、iPhoneアプリ作った話

みなさんこんにちは!AI使ってますか?

さて、かねてよりカルテを音声入力するアプリの制作に、試行錯誤を続けていたんですが、

ついに!iphoneのアプリを作ることができましたー!!

これ、全部僕が作りました。

「プログラミング知識0」
「AIとプロンプトのみ」
「+気合い」

なんとか完成!

やればできるもんです。
ただし、簡単にすぐできるわけではありませんでした。
今回は、アプリを自分で作る(自分の職場に向けて)ことのメリットと、実際の工程の触りの部分を解説します。


医師が自分でアプリを作るメリット

アプリを作る側の工程がわかる

業者に業務改善の依頼をすると、「それはできません」とか、「出来てきたけど、ちょっと違うんだよね」とかなることがよくあります。
お互いの業務の解像度が違って、こういうふうに変えてほしい!
がなかなか伝わらなくてヤキモキします。

自分で作ることで、
「自分で作りたい目指すもの」
「作ってみてできることと、出来ないこと(できるけどめっちゃ工数がかかること)」
両方がわかります。

つまり、「デバイスのできること」に「自分のやりたいこと」を近づけることができる。

これは今後の医療DXのキーポイントだと思います。

現場の課題を一番知っている

医療デバイスや、医療に対するソリューションを提供する会社とMTGをよくするんですが、「現場のファクト」の解像度を手に入れるのに、非常に苦労しているようです。
MTGで現場の苦労話を言語化するって、
「実際やってみないとわからない」

って感じで、
本当に伝わらないんですよね。

この現場の解決したい問題を、間違いなく理解して、それを製品に繋げられるのは、現場で働いている人しかできないというわけです。

すぐ現場の問題を拾える、すぐ実証実験できる

新しい製品が、現場にとって本当に有効なのかは、「使ってみないとわからない」
そういうことはよくありますね。
課題を知っている人が作る、そしてその場で広めることが出来れば、すぐにその効果を実感したり、マイナーチェンジしたりすることもできます。

病院に勤めていないと使用感等はすぐに対応できませんし、そもそも実証実験にお金と手間がかかります!

「現場にマッチした」
「すぐにチューニングできる」

という圧倒的なアドバンテージがあるのです!
(今回は院内倫理委員会に承認いただきました。患者個人の情報は入れていません)

アプリを作ることで得られたこと

言語化能力がついた(日本語力Up)

まずは、自分でやりたいことのイメージを日本語にしなければなりません。
言い回し一つとっても、違う意味で取れるような言葉にすると、予想外の動きをしてくれるのが、AIです。

具体的な例をあげてみましょう。
先ほどの動画で「QRコードを生成」ボタンを押すと、テキスト内容がQRコードに変換されていたと思います。

このボタンの指示を

「チャットのテキストをQRコードにする」
とお願いした場合

「今までChatに出てきたテキストを全て」

出してくる可能性があります。

「直前にAIが返答したテキストを、QRコードに生成する」
と、間違いようないような、日本語を準備します。

この辺がうまくいっていないと、作りながら何がエラーかわかりません(コードが読めないんで、どういう指示が入っているか理解できない)

プログラミング的思考が身についた

プログラミング的思考、今小学生が習ってるやつです。
パンにバターを塗る時は
「パンにバターを塗れ」ではなく
「バターの蓋を開ける」「右手にナイフを持つ」「右手に持ったナイフでバターをすくう」「ナイフのバターがのった面を下側にする」「左手でパンを持つ」「パンの上にバターのついたナイフを乗せる」「右手をナイフを持った状態でパンの水平方向と同じ方向に手を動かす」


とまあ、「あれやって!」を分解する必要があるわけです。

どう聞いても間違いない指示を作り、
それを「ピタゴラスイッチ」のように組み合わせることで、プログラムはできています。
「ビー玉を置く」という外部アクションから、さまざまなプログラムがドミノ倒しで進んでいく中、そのビー玉が余計な道に逸れないように、「プログラミング」の道を準備してあげる。


そういう思考イメージで組んでいきました。

ちょっとだけプログラミング言語がわかるようになった(読めるとは言ってない)

流石に1っヶ月もコードと向き合っていると、何が書いてあるが少しわかるようになります。英語入ってますしね!

この文章は、音声入力開始だな
この文章は、テキストボックスの色についてだな
いつもここでエラー出るところだな

ぐらいは理解できるようになりました。
理解ができるようになると、
一つのファイルがコードで重くならないように、別に分けて管理することができます。

うむ。やれんことはない。だが、自分で書けるようには多分ならない!

はじめに聞くこと「アプリを作りたいんだけど、どうしたらいい?」

僕が作りたいアプリは

「音声で入力したざっくりした会話状態のカルテを、適切なフォーマットの電子カルテ様式に変換し、そのQRコードを1ボタンで出すアプリ」

とりあえず、何聞けばいいかわからないですよね。
自分で何を作りたいか、明確なイメージが必要です。

iPhoneアプリを作りたい!とChatGPT に投げたところXcodeダウンロードしなよって言われたので、いうとおりにしたあと、

完全に丸投げ質問w

いまいちイメージがつかめなかったんで、CanvaでそれっぽいHome画面作ってお願いします。

基本的にはお願いしたいことを、日本語で忠実に再現、伝わらなければスクショや画像を用いて説明。

こちらの日本語がうまくタスクを説明できていない場合は、予想外の動きをすることがあります。

あとは、やりたいことを言語化し、機能を追加→エラーを確認→エラーをAIが解決→コードコピペで貼り付け→再度実行→・・・以下繰り返し(需要があれば今後noteで続き書きます)

コードを書く能力より、プログラミング的思考が大事

コードはあくまでも「言語」です。
大事なことは、その言語がわからなくても、プログラムが問題なく動くようにすることです。

自分の準備した「ピタゴラスイッチ」を間違いなく進むように状況設定していきましょう。

最初
「音声で入力したざっくりした会話状態のカルテを、適切なフォーマットの電子カルテ様式に変換し、そのQRコードを1ボタンで出すアプリ」
と説明しました。

最終的にアプリが問題なく動くようにするためには上記のような「ピタゴラスイッチ」が出来上がりました。
タスクを細かく分解して説明してあげる必要がありました(本当はもっと詳細に詰めて作っています)。

もちろん、これは最初から計画していた立て付けではありません。やって行くうちに、こうしないと違う答えを返してくる!

ってのがわかり、そちらの方向に行かないように日本語で上手に説明する必要があります。

今思えば、
「音声で入力したざっくりした会話状態のカルテを、適切なフォーマットの電子カルテ様式に変換し、そのQRコードを1ボタンで出すアプリ」
をAIに丸投げして

「こんな感じでアプリ作る時には、どのようなステップを踏んでつくればいいですか?」

で始めればよかったなと思っています。


こういう過程が「プログラミング的思考」なんです!多分!(小学校で習わない世代)。

約1ヶ月、結構大変でしたが、

「何よりも自分でやる、やり切る」

どの仕事でも言えることですが、自分でやるって一次情報を得ることで、人にお願いするときの解像度が格段に上がります。

万人におすすめできるやり方ではないと思いますが、

「言語化応力重要」「やればできる!」

を皆さんにお伝えできたのであれば良いなと思います!





この記事が気に入ったらサポートをしてみませんか?