🔥
LLMで自分を監視して、仕事中眠そうな時にシステム通知するbotを作った。
最近「AI幹事」のリリース記事を見て「自分も何か作ってみたい」と思い、botを作ってみました。
仕様
5秒に1回Macのカメラでキャプチャを撮り、その画像とプロンプトをLLM(Gemini)に送って「眠そうか」「困っていそうか」を判断しています。
「眠そう」「困っていそう」とLLMが判断した場合、Macで通知が表示されます。
プロンプト
以下のようなプロンプトで実行しています。
※GeminiではJSONモードもありますが、一旦精度などは無視して実装しています
prompt = """
画像に写っている人物の表情を分析し、以下の形式のJSONで回答してください:
- "sleepy"は人物が眠そうに見える場合はtrue、そうでない場合はfalseにしてください。
- "troubled"は人物が困っているように見える場合はtrue、そうでない場合はfalseにしてください。
- 必ず"{"で始まり"}"で終わる形式でレスポンスを返してください。
レスポンスの形式:
{
"sleepy": true/false,
"troubled": true/false
}
"""
フローチャート
動かしてみる
実際に自分を監視させて、通知が来るか確認してみました。
(精度はだいぶ低いので、ここではうまく返してくれたところだけを載せています。。笑)
1. 集中して作業をしている時
レスポンス
{
"sleepy": false,
"troubled": false
}
通知なし
2. 考え事をしている時
レスポンス
{
"sleepy": false,
"troubled": true
}
通知
3. 眠気MAX時
レスポンス
{
"sleepy": true,
"troubled": false
}
通知
状況に応じてちゃんと通知が送信されました。
精度
現状プロンプトのチューニングや画像処理などを行っていないので、精度は50%くらいです。
安く済ませるためにgemini-1.5-flash
を使っていますが、モデルによってももちろん変動します。
今後チューニングをして、より精度が高いものにできたらいいと思っています。
ソースコード
こちらのGitリポジトリに入っています。
さいごに
個人的にすごく面白くて、今後色々な機能をつけて精度も上げていきたいと思っています。
何かいい案やアドバイスがあれば教えていただけると嬉しいです!
Discussion