Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Droid.Kaigi]Android = 沖縄 * ビーチ

[Droid.Kaigi]Android = 沖縄 * ビーチ

DroidKaigi.collectで発表したandroidアプリです
ビーチに似合う判定をするアプリです
https://droidkaigi.connpass.com/event/322947/

Avatar for Keita Nakata

Keita Nakata

August 31, 2024

More Decks by Keita Nakata

Other Decks in Technology

Transcript

  1. 目次 1. 背景 2. 実装 3. 結果 4. 展望 リポジトリンク↑

    ちなみにBBQでは、 お酒は一人5缶 + ビールサーバ 用意
  2. 画像認識部分のコード private fun sendImageToOpenAI(base64: String) { val openAI = OpenAI(token

    = apiKey) val request = ChatCompletionRequest( model = ModelId("gpt-4-vision-preview"), messages = listOf(ChatMessage( role = ChatRole.User, messageContent = ListContent( listOf(TextPart(text = "画像に100点満点 で点数を付けてください。「クレイジー」、「沖縄感」、「老 若男女に愛される」、「ジェンダーレスの美らの四つで それぞれの配点は25点\n。例:60\nクレイジー:20\n沖 縄感:10\n老若男女に愛される:20\nジェンダーレスの 美ら:10\nA:" ), ImagePart( imageUrl = ImagePart.ImageURL(url = "data:image/jpeg;base64,$base64")))))),) CoroutineScope(Dispatchers.IO).launch { try { resultTextView.text = "評価中。。。。" val result = openAI.chatCompletion(request) val content = result.choices.firstOrNull()?.message?.content withContext(Dispatchers.Main) { val bitmap = (imageView.drawable as BitmapDrawable).bitmap if (content != null) { saveResult(bitmap, content) } resultTextView.text = content ?: "結果がありません " findViewById<Button>(R.id.uploadButton).visibility = View.GONE findViewById<Button>(R.id.cameraButton).visibility = View.GONE deleteButton.visibility = View.VISIBLE } } catch (e: Exception) { withContext(Dispatchers.Main) { resultTextView.text = "エラーが発生しました : ${e.message}"} } }}
  3. やってみた結果と今後 - ほとんどが85点だった - 赤ちゃんが泣いても笑っても 85点 - 人が映ってなくても85点 - プロンプトがよくなかった

    - プロンプト修正必要 - プロンプトインジェクション!!! - プロンプト修正(教えてください) - 人間を評価できない時がある。。。。 - ポリシーが原因?(教えてください) - プロンプトをUIで変更できるように - Google Playで配布したい!(APIの取り扱い)