背景
https://style-assistant.net/ でユーザーが入力したメッセージから、その内容に基づいて「テキストのみ」か「画像付きのテキスト」かを判別したかった。
OpenAIのAPIを使用し、メッセージの内容を解析できるのではと思ったので、やってみた。
やったこと
ユーザーのメッセージを解析し、視覚的表現が理解を助けるかどうかに基づいて、「画像必要」と「画像不要」を判別する
"""メッセージ内容に基づいて必要なアクション(テキスト処理か画像処理か)を分類する"""
message = inspect.cleandoc(
f"""
Given the prompt: '{message_text}', does it require an image or not?
Please respond with '画像必要' or '画像不要'.
### Guidelines
- If the prompt involves fashion, style, or design descriptions where visual representation could enhance understanding, respond with '画像必要'.
- If the prompt involves general information or advice that does not rely on visual aids, respond with '画像不要'.
### Examples
- 最新のイタリアンスタイルのメンズファッションを教えて => 画像必要
- 結婚式の招待状が来た。フォーマルなドレスコードに合わせたスタイルを教えて => 画像必要
- 彼女と海辺で過ごす日のための涼しげなコーディネートは? => 画像必要
- おすすめのジーンズブランドを教えて => 画像不要
- 彼氏に10万円以下の予算で時計をでプレゼントしたい。おすすめは? => 画像不要
- 彼女の誕生日が近い。彼女は、いつもグレーの洋服を着ている。このスタイルに似合うハンドバッグのブランドを教えて => 画像不要
"""
)
self.message_generator_gateway.send_message(message)
action = "image" if "画像必要" in resp else "text"
return action
結果
予想以上に高い精度でユーザーメッセージに基づく内容の分類を行うことができた。
ただ、プロンプトが複雑になったり、2択以外の選択する場合は別の選択肢を考える必要がありそう。