白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

AIのビジネスアイデアを考えてもらおうぜAIに

こんばんは。
衣替えをしたんですが、そういえばスプリングコートとか一回も着ていないことに気付きました。

日々生成AIの新しいモデルが公開されて群雄割拠の時代という感じですが、なんかすごいことができそうな気がする割にアイデアが思いつきません。
じゃあ自分でアイデア考えてくれよということで試しに作ってみました。

今回作ったもののコードはこちら。
github.com

とりあえずGPT-4に聞いてみますか

あなた
生成AIをテーマにしたビジネスアイデアを10個挙げてください

ChatGPT
AIをテーマにしたビジネスアイデアを10個挙げますね:

1. AIパーソナルアシスタントサービス - ユーザーの日常生活やビジネス活動をサポートするためのカスタマイズ可能なAIアシスタントを提供します。スケジュール管理、メールの自動返信、健康管理など多岐にわたるサービスを提供。
2. AI駆動のリモート監視システム - 製造業や物流業界向けにリアルタイムでの機械やシステムの監視を行うAIソリューション。故障予知や最適化提案を自動で行い、運用コストの削減を実現。
3. AIベースのエデュケーションプラットフォーム - 個々の学習者のニーズに合わせたカスタマイズ可能な教育コンテンツを提供するプラットフォーム。AIが学習進度や理解度を分析し、最適な学習プランを提案。
4. AIを活用した健康診断アプリ - ユーザーの日常の健康データを分析し、早期の健康問題を警告するアプリ。病歴やライフスタイルに基づいてパーソナライズされた健康改善提案を提供。
5. AI動画編集ツール - AIが自動でビデオの編集を行うツール。映像のクオリティを自動で向上させるフィルターや、効果的なカット編集を提案。
6. AI音声認識顧客サービス - 電話やチャットでの顧客サービスをAIが自動対応。顧客の要望に基づき、迅速かつ正確な対応を行い、顧客満足度を向上させる。
7. AIマーケット分析ツール - 市場データをリアルタイムで分析し、ビジネスの意思決定を支援するツール。トレンドの予測や競合分析が簡単に行える。
8. AIスマートホームソリューション - 家の中のあらゆるデバイスをAIで制御するシステム。エネルギーの最適化、安全性の向上、生活の便利さを提供。
9. AIによる法律アドバイザリーサービス - AIが法的ドキュメントを分析し、法律問題に対するアドバイスを提供するサービス。小規模企業や個人でも手頃な価格で法律サービスを受けられる。
10. AIベースのフリーランスマッチングプラットフォーム - フリーランサーとプロジェクトのマッチングをAIがサポート。スキルとプロジェクト要件の最適な組み合わせを提案し、効率的な人材配置を実現。

適当なプロンプトだけどなんか割とそれっぽいですね。
でも何回か繰り返してるとわかるのですが、割と似たようなアイデアばかりになってきます。

2段階作戦

毎日動かして貯めたいので、バリエーションが欲しいです。
なので、

  1. 適当にキーワードを挙げてもらって貯める
  2. 貯めたキーワードの中からランダムで抽出して、それらを組み合わせてアイデアを出す

という2段階のフェーズを踏む作戦にしました。

キーワードを貯める

とりあえずこんな感じにしてみました。LangChainのJS版を使っています。
CommaSeparatedListOutputParserでカンマ区切りを配列に変換できますが、たまーになんか変な動きをします。
「日本語でカンマ区切りで新しいサービスのアイデアを1単語のキーワードを出力してね。数字はいらないよ。」って感じですかね。調整の余地はありそうです。

const chatTemplate = ChatPromptTemplate.fromMessages([
    SystemMessagePromptTemplate.fromTemplate("You are a creative assistant. Use Japanese as the language. Your response should be a list of comma separated values, eg: `foo, bar, baz`."),
    HumanMessagePromptTemplate.fromTemplate(`Please output {size} one-word keywords in Japanese to generate ideas for new services. Should not output number! only keyword.`)
]);

const chain = new LLMChain({
    llm: this.model,
    prompt: chatTemplate,
    outputParser: new CommaSeparatedListOutputParser()
});

const result = await chain.invoke({ size: size });
return result.text as string[];

しばらく貯めているとこんな感じになります。何かほかの用途にも使えそうな気もします。
モデルがあれこれあるのはいろいろ試してみてるからです。こういうときにLangChainは便利ですね。
(スキンケアゲーム、スキンケアゲームゲーム…なにそれ)


イデアを作ってもらう

ランダムにキーワードを抜き出すあたりはSQLでやっています。そのあたりはGitHubを見てもらうということで。

で、プロンプトとかOutputParserとかはこっちの方がちょっと複雑ですね。
「あなたはクリエイティブなアシスタントだよ(洗脳)。与えたランダムなキーワードから0~2つをヒントに"生成AI"というコンテキストで現実には存在しないアイデアを考えてね。」みたいな感じです。これも調整の余地はありそうです。
今回はオブジェクトにそのままマッピングしたいのでStructuredOutputParserを使って構造を与えています。

const keyword: string = keywords.join(",");

const chatTemplate = ChatPromptTemplate.fromMessages([
    SystemMessagePromptTemplate.fromTemplate("You are a creative assistant; output results in JSON. Use Japanese as the language."),
    HumanMessagePromptTemplate.fromTemplate(`In the context of generative AI, create a concept that does not exist in reality, name it and output a brief description of it.
Below are some random keywords, and I hope you will use 0 to 2 of them as hints if necessary (you don't necessarily have to use them).
{keyword}

Please submit {cnt} ideas.
{formatInstructions}`)
]);

const outputParser = new StructuredOutputParser(
    z.object({
        ideas: z.array(z.object({
            name_en: z.string().describe("English name of the concept"),
            name_jp: z.string().describe("Japanese name of the concept"),
            description_jp: z.string().describe("Description of the concept about 200 token"),
            tags_jp: z.array(z.string()).describe("Tags for this concept"),
        }))
    })
);
const formatInstructions = outputParser.getFormatInstructions();

const chain = new LLMChain({
    llm: this.model,
    prompt: chatTemplate,
    outputParser: outputParser
});

const result = await chain.invoke({ keyword: keyword, cnt: cnt, formatInstructions: formatInstructions });
return result.text.ideas as LlmResult[];

こんな感じです。いちいち名前がかっこいい。


で、いいアイデアはできるの?

正直微妙…。
感覚的にはGeminiはイマイチ、GPT-3.5は平凡で簡潔、Claude3 HaikuとCommandR+はそこそこの精度でそこそこの文章量。GPT-4はGPT-3.5よりいい感じではあるけどちょっとAPI利用料が…。
そういえばLlama3は試してないですね。

いっぱい回してるとやっぱり傾向はあるみたいで、やたら夢をコントロールしたがったり、時間を超えようとしたり、宇宙に行ったり、新しい芸術を作ったりしたがります。
この辺りは現実世界には存在しない概念みたいなプロンプトが効きすぎているのかもしれないですね。

こんな感じの画面も作ったけど、これはだいぶ適当につくってしまったので、気が向いたらそのうち公開するということでね…。

みんなでガチャしましょう。アイデア料は収益の1%でいいですよ。(嘘です)