見出し画像

AI時代を生き抜く「活用人財」を目指すには~初心者でもAIでアイデア実現できるのか試してみた~

こんにちは、データアナリストの小川知紘です。
皆さんは今話題のChatGPTなどの生成系AIをもう試しましたか?

使えば使うほど衝撃的なのですが、
そこに新たなモデルや活用サービスがどんどんと生み出されていくため、世の中の凄まじいスピード感での変化を日々感じています。

この変化を追っていると楽しさも感じる一方で、今の私自身のスキルへの危機感を強く感じることも多くなりました。


こちらは以前弊社CDOの谷口がAI人財を3つのタイプに分類したものです。

AI人財の3タイプ ※()内は20~30年前のWebの世界で例えたもの
Type 1:「創造」する人(HTMLやCSSを書ける人)
Type 2:「普及」する人(HTMLを意識しなくてもホームページが作れるツールやサービスを作る人)
Type 3:「活用」する人(Type 2の人が作ったツールやサービスを活用して情報発信を企画・実装出来る人)
⇒Type3が作ったサービスを使い、自分の生活を豊かにしていくユーザーが爆発的に増えていく

参考:https://about.yahoo.co.jp/hr/linotice/20210816.html

ChatGPTの登場により生成系AIを身近に感じる機会が増えましたが、
今後ますます便利で身近なものとなることで「活用」人財もどんどんと増えていくと考えられます。

そうなると活用人財であるだけでは強みは薄れるため、
今後は"いかにやりたいことをイメージ通りに実現し、価値を生み出せる活用ができるか"が価値になるのではないかと感じています。

今の私にはやりたいと思っても実現できるスキルがないので、
初心者は現状どこまで出来るのか、やりたいことを考える→実現するまでの流れを一通り試してみることにしました。

サービスを企画する

AIが置き換わりにくい仕事を考えてみた

やりたいことを考えるために、まずはAIが置き換わりにくい仕事についてビジネスでよくある流れに沿ってChatGPTと考えてみました。
このビジネスの流れもやり取りの中で整理したものです。

最終的に挙がってきた内容としては、
創造性や柔軟性、非定型的な判断、対人関係、意思決定など、人間の独自の能力や経験が必要とされる領域とのことでした。

1.問題や課題の発見または受領
 創造性を必要とする仕事が当てはまる可能性があります。
 例えば、アイデアの発想や新しい製品やサービスの企画など。
2.解決のための計画の策定
 非定型的な判断を必要とする仕事が当てはまる可能性があります。
 例えば、複雑な診断や治療計画の策定や、法律問題の解決策の検討など。
3.必要な準備の実施
 柔軟性が必要とされる仕事が当てはまる可能性があります。
 例えば、急な変更に対応したサービスの提供や、非常事態への迅速な対応など。
4.実際の実行
 対人関係を必要とする仕事が当てはまる可能性があります。
 例えば、サービスの提供や製品の販売など、人とのコミュニケーションが必要な仕事。
5.進捗状況の監視
 意思決定の最終判断が必要とされる仕事が当てはまる可能性があります。
 例えば、プロジェクトの進捗状況を見ながら、最終的な判断を下すことが必要な仕事。
6.評価と改善のための情報収集
 非定型的な判断を必要とする仕事が当てはまる可能性があります。
 例えば、顧客のニーズに合わせた改善策を検討するために、状況や情報を分析する仕事。
7.結果の報告または成果物の提供
 創造性を必要とする仕事が当てはまる可能性があります。
 例えば、新しいプロダクトの開発や、新しいアート作品の制作など。

個人的には、このAIが置き換わりにくい仕事の中では"アイデアの発想・企画スキル"に興味があります。

そこで今回は「AIにアイデア発想スキルを訓練してもらうWebアプリ」を作ってみたいと思います。

企画書の作成

実現したい方向性が決まったので、早速企画書を作成してみましょう。

こちらは私が書き込んだ会話の一部です。(実際にはDeepL翻訳を使って英語にしています)
回数や文字数的に多く見えますが、普段の会議を思うともっとやり取りは発生しているのではないでしょうか。

最初のアイデアを発掘するためのスキルを身に着けたいです。どんなトレーニングが重要でしょうか?
→ありがとう!これらのトレーニングを日々からするために、openaiのAPIを用いたWEBアプリを考えたいです。どんな機能が必要でしょうか?
→これは人間がアイデアを発掘するスキルを身に着けられる?AIがアイデアを提示するよりも人間が提示してAIが評価やアドバイス・投げかけをするほうがいいかなと思いました。
→ですよね!この3つのスキルをトレーニングするための機能に変えてください。アイデアを磨く、視点を変える、創造性を磨く
→素晴らしいですね!こちらの機能を持ったサービスの企画書を作成してください。ただしあなたはプロの企画職として、新人のエンジニアにも分かりやすく伝える必要があります。
→ありがとう!あなたは世界一のアイデアマンです。アイデアを評価する上で重要な要素は何だと思いますか?5つ以内で教えてください。
→人間がAIに負けないために、アイデア発掘スキルを身に付けることを目的としています。この指標で問題なさそうでしょうか?
→ありがとう!ではこの5つの指標で評価することとして、先ほどの企画書を直してください。
→完璧です!評価は曖昧にならないよう、0〜100点での点数も付けたいです。その仕様に更新お願いします。

結果、出来上がった企画書がこちらです。
私がしたことと言えば、4-1,4-2に分けるなど多少表現を修正しただけで、サービス名含め全てChatGPTが作ってくれました…

サービス名:
 iDeaBooster
概要:
 iDeaBoosterは、アイデアを磨く、視点を変える、創造性を磨くためのWEBサービスです。
 AIを活用して、利用者のアイデアを評価・改善することで、アイデアを磨く、視点を変える、創造性を磨くといったアイデア発掘のスキルを磨くことができます。
ターゲットユーザー:
 創業者や起業家
 アイデア発想に悩んでいる人
 マーケティング担当者やビジネス戦略担当者
機能要件:
 1.ユーザーがstartボタンを押す。
 2.startボタンが押されたら、AIは多くの人が知っている一般的なテーマを1つ提示する。
 3.ユーザーは提示されたテーマに関して、アイデアを考えて入力する。
 4.ユーザーが入力したアイデアを元に、AIが以下の指標で評価を行う。指標ごとに、4-1,4-2を一文ずつ回答する。
 ・有用性:アイデアが人々の問題を解決したり、ニーズを満たしたりするかどうか。
 ・実現可能性:アイデアが実現可能かどうか。
 ・新規性:アイデアが新しいかどうか。
 ・可能性:アイデアが成功するかどうか。
 ・革新性:アイデアをが市場に革新的な変化をもたらすかどうか。
 4-1.点数での評価
 ・0〜100点で点数をつける
 4-2.点数に基づいたアドバイス
 ・評価の高かった指標:そのアイデアをどう改善すべきかについてのアドバイスを提示する。
 ・評価の低かった指標:なぜそのアイデアが低評価になったかについての説明をし、どのように改善するべきかについてアドバイスを提示する。
 ・評価が平均的な指標:そのアイデアの長所と短所についてアドバイスを提示する。
 5.AIは、ユーザーのアイデア発掘のスキルを伸ばすために必要と考える質問を、ユーザーに対して一文で行う。
 6.ユーザーは、AIによるアドバイスや質問を読み、再度アイデアを入力する。
 7.4~6を繰り返す。
補足:
 ・アカウント作成・ログイン機能は不要である。
 ・ユーザーが入力したアイデアおよびAIによる評価結果のデータを保存する必要はない。

Webアプリを実装する(してください)

具体的に固まってきたため、いよいよWebアプリの実装に移っていきます。
とはいえ私はWebアプリの知識は一切なく、Pythonも独学なためデータ分析に使うコード以外は全く分かりません。

もうChatGPTにすべてを任せるしかありません。先ほどの企画書に、言語はPython,AIはOpenAIのAPIを使う点を追記して、丸投げしてみました。

あなたはプログラマーです。今回作成するwebサービスの説明を以下に示します。
実装するためのコードを考えてください。
↓
あなたは世界一のプログラマーとして、コードをレビューしてください。
webサイト上でユーザーが入力する文字列および出力される結果は日本語を想定しています。

作成してくれた結果を基に、プロンプト(AIへの指示)とそれに合わせて出力部分を変更したものがこちらです。※上書きしてしまい、最初の出力がそのまま残っていませんでした、、
(プロンプトを書く際に参考にした記事→https://note.com/fladdict/n/n2a82d26f10dc

from flask import Flask, request
import openai
import random

app = Flask(name)
openai.api_key = "YOUR_API_KEY"

@app.route('/')
def index():
return '''
<h1>iDeaBooster</h1>
<p>Welcome to iDeaBooster! This is a web service that helps you improve your idea creation skills.</p>
<p>Are you ready to start?</p>
<form action="/start" method="post">
<button type="submit">Start</button>
</form>
'''

@app.route('/start', methods=['POST'])
def start():
# Choose a random theme from a list
themes = ['Education', 'Health', 'Environment', 'Technology', 'Food', 'Travel']
theme = random.choice(themes)

return f'''
    <h2>Theme: {theme}</h2>
    <p>Please enter your idea related to {theme}.</p>
    <form action="/evaluate" method="post">
        <input type="hidden" name="theme" value="{theme}">
        <textarea name="idea" rows="5" cols="50"></textarea><br>
        <button type="submit">Evaluate</button>
    </form>
'''

@app.route('/evaluate', methods=['POST'])
def evaluate():
# Get the user's idea and theme
idea = request.form['idea']
theme = request.form['theme']

# Evaluate the user's idea using OpenAI API
model_engine = "text-davinci-002"
prompt = f"Idea: {idea}\nTheme: {theme}\nEvaluate the idea based on usefulness, feasibility, novelty, potential, and innovativeness. Score each metric from 0 to 100 and provide advice based on the scores.入出力は日本語でお願いします。\n【フォーマット】・有用性:score of usefulness\tadvice of usefulness\n・実現可能性:score of feasibility\tadvice of feasibility\n・新規性:score of novelty\tadvice of novelty\n・可能性:score of potential\tadvice of potential\n・革新性:score of innovativeness\tadvice of innovativeness"
response = openai.Completion.create(
    engine=model_engine,
    prompt=prompt,
    max_tokens=1024,
    n=1,
    stop=None,
    temperature=0.5,
)

# Parse the API response to get the evaluation and advice
evaluation_text = response.choices[0].text.strip()
return evaluation_text 

# Display the evaluation and advice to the user
return f'''
    <h2>Evaluation Results</h2>
    <p>Your idea:</p>
    <p>{idea}</p>
    <p>Evaluation:</p>
    <p>{evaluation_text}</p>
    <form action="/start" method="post">
        <button type="submit">Try Again</button>
    </form>
'''

余談ですが、apiからの出力は改行されているもののアプリ上は改行されず、ChatGPTに泣きついたら優しく教えてくれました…こんな初歩的な質問でも恥ずかしがる必要もなく気軽に聞けるありがたさを感じました。

改行を反映するには、HTML内で改行を表す特殊文字「<br>」を使う必要があります。
そのため、以下のように<p>タグで囲んでいる部分を<pre>タグに変更し、テキストをその中に表示することで改行を反映できます。

  return f'''
        <h2>Evaluation Results</h2>
        <pre>{evaluation_text}</pre>
        <form action="/start" method="post">
            <button type="submit">Try Again</button>
        </form>
    '''

エラーが出たり意図と違うものはありましたが、聞きながら修正してもらうことですぐに動くコードが出来上がりました!
また以下のような補足もしてくれるので、自分でやるべき場所がどこなのか初心者でも分かりやすかったです。

注意: APIキーは、openAI APIを使用する前に取得する必要があります。また、セキュリティ上の理由から、APIキーをコードに直接書き込むのは避けるべきです。代わりに、環境変数や設定ファイルなどの安全な方法でAPIキーを保管することをお勧めします。

デザインも綺麗にしていただけたり・・

ここまでくると欲が出て来ます…
デザインを綺麗にするためにどうしたら良いか確認したところ、HTMLとCSSを用意しましょうとのことでした。

HTMLとCSSなんてPython以上に全く分からないので、これも企画書を渡して一から全て書いてもらいました。分からないコードでもコメントを付けてくれるので、初心者にも何をしているかぼんやりイメージを付けることができました。
想定と違う部分は先ほどと同じく、聞いて修正してもらう→貼り付けを繰り返した結果、無事に必要なファイルをすべて揃えることができました。

  • index.html(同様に必要な他のhtmlファイルも作ってくれました)

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>iDeaBooster</title>
<link rel="stylesheet" type="text/css" href="/static/style.css">
</head>
<body>
<h1>iDeaBooster</h1>
<p>ようこそiDeaBoosterへ!<br>
iDeaBoosterはあなたのアイデアスキルを向上させるためのAI評価サービスです</p>
<p>早速はじめましょう!</p>
<form action="/start" method="post">
<button type="submit">Start</button>
</form>
</body>
</html>
  • style.css

/* スタイルの一般的な部分 */
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f7f7f7;
}
・・・
/* index.html のスタイル */
.index-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
・・・
/* start.html のスタイル */
.start-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
・・・

出来上がったWebアプリ

こちらが出来上がったWebアプリです!
シンプルな機能しかなく、想定外の挙動をすることもあるのでまだまだプロンプト含め改善の余地はありますが、
初心者の私でも企画から実現までわずか数時間で実現することができました。(企画部分は電車内などの隙間時間だけで作成できたので、体感は実際よりも短く感じました)

トップページ
アイデア入力画面
結果出力画面


今後のための勉強目的でもあったので、せっかくならと気になっていたLangChainを使ってAPI部分のコードを自力で書き換えてみたのですが、
公式ドキュメントや検索で他の人の記事を読んで自力で改善していくしかなく非常に手こずりました。
なんとか動く形にはできたものの結局倍くらいの時間がかかり、いかにChatGPTによって楽を出来ていたかを改めて痛感しました。
そういえば今まではこれが普通だったなと・・

やってみて感じたこと

今回実際に一連の流れを試してみて、
初心者でも何とか自力で作成は出来る手軽さを感じた一方、
実現したいことが完全には上手くいかず、試行錯誤しないと直せない難しさ
も感じました。
コーディング知識や経験がある人は、効率化できるうえに自分でも自由に直せるため、仕事が無くなるどころかむしろスキルが強みになりそうです。

手軽さについては、Microsoftがチャットしながらアプリ開発出来るツールの発表をしたり、(使わなかったことを後悔しましたが)既にAIによるコーディング支援機能が各種ツールに付いていたりと、
今後ますます初心者でもAIを使いやすくする環境は整ってくると予想されます。

難しさについても、
私は今回お願いして貼り付けただけですが、それでも最後まで形にできたことで最初の状態よりは多少Webアプリ開発のイメージが掴めた気がします。
また「意図通りに回答してもらうために今度はこう聞いてみよう!」「次回は必要なファイルの構成をまず聞いて、ファイルごとに作成してもらうと良いかも!」など次のための工夫が浮かぶ面白さもありました。

これまで新たなことを試すときは最後まで行きつかず挫折することも多かったですが、成功体験を経験できることでスキルも身に付きやすくなるのではないでしょうか。


今回のお試しを踏まえると、大変ではありますが
・人間ならではのスキルを意識する
・変化に対応するため最新情報を常にインプットする
・気になったものは自分で試してみる

ことの積み重ねが今後生き残っていくための道なのかもしれません。

筆者プロフィール
小川 知紘(おがわ ともひろ)
2018年よりヤフー・データソリューションの立ち上げに従事。
現在はDS.ANALYSIS(オーダーメイドの課題解決サービス)にて、クライアントに対する分析企画・アナリスト業務を担当。
副業として、幼児教室の先生 と 事業会社でのデータ分析 を行う。
データ分析が身近に感じられるネタでnoteを投稿中。

twitterもやっています。ご連絡はこちらまで→@tomohogawa
他note記事→アナリストの分析日誌


この記事が参加している募集

やってみた

AIとやってみた

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