「ねー、うちにもしらせくん欲しい!ちゃんとお世話するからー」「わかりました、でもお給料は払いませんからね」
しらせくん、すごいですね。
ということで、しらせくんの同僚を我が家でも雇うことにしました。ただし無賃金で。赤字労働あかせくん。
まずはメールの要約をしてもらいます。
本家しらせくんはクラウド上のLLMサービスが中の人ですが、self-hosted教なので自宅内に既にいるollamaさんが中の人です。
n8nを利用してもいいのですが、我が家の既存メッセージ配信基盤に相乗りします。
本家しらせくん | 弊社あかせくん | |
---|---|---|
中の人 | Google Gemini | ollama Swallow 8B |
職場 | クラウド | 在宅勤務 |
上司 | n8n | anythingllmと謎プログラム |
業務範囲 | 広範 | メールなど少数のみ |
メール仕入れ先 | gmail | getmail経由imap |
納品先 | slack | mattermost (self-hosted), ESP32接続LCD |
給与 | 月数千円 | なし(電力・機材は現物支給) |
性格 | 社交的 | ひきこもり・守秘義務遵守 |
仕事の質 | 高速・丁寧 | 職場による |
そんなあかせ君の最大の長所は、無賃労働というより口の固さです。私たちはGoogleやOpenAIなどの事業者が顧客との契約に基づいて真面目に情報を扱っていると信じてはいますが、それを検証する手段を持ちません。
他方、あかせ君は自宅(およびVPN内)からデータを外に持ち出すことはありません1。しらせくんより仕事が遅かったり今ひとつだったとしても、取り扱うデータがもともと外から来たものだとしても、間違いなくこのひきこもり具合はあかせくんの長所です。
メール出典: ウェザーニュース
使用フォント: JK丸ゴシック
概要
我が家にjsonのPOSTを受け取ると、内容に応じてLCD, LED, mattermostなどに通知してくれるhttpdがいます。
これを使って、「CO2濃度が高いので換気扇つけました」「vpnを経由しないsshログインありましたけどご自身ですよね?」「logwatch実行しました、結果確認してね」「新着メールが来ました」など様々な通知を処理しています。
ここに相乗りしてollamaを実行します。
長文のメールも来ますし履歴の確認もしたいので、ollama 11434に直接ではなくanythingllmを経由します。
レシピ
getmail
imapをpollして、メールを取り込んでくれるgetmailです。
一つ注意点があります。getmail6と名乗るものがありますが、元のgetmailとは別物でバグもあります。お勧めできません。
procmail
もうかなりの歴史のprocmail
いまならもっとモダンなものもあるでしょうが、大昔からずっと使ってきたフィルタの山もあるのでそのまま使います。
json化 (自作プログラム)
procmailからパイプとして起動。
:0 c : $LOCKFILE
| json-forwarder
stdinを読んでMIMEなど処理してjsonでpostします。
配信api (自作プログラム)
webアプリフレームワークで適当に作ります。
要約処理にはそこそこ時間がかかりますので、anythingllmの呼び出しは非同期のworkerに「このプロンプトを処理して、結果をmattermostのhogeチャネルに投稿とmongodbへ書き込みしてね。あとは任せた!」と投げて早々に200を返します。
以下のメールを要約してください。
subject: $subject
from: $from
$body
jsonで出力してください
等と依頼した場合でも、jsonの前後に自然言語がつくことがあります。json decodeの前に正規表現で{}
の外を消しましょう。
mqtt管理 (自作プログラム)
mqttでESP32達にお知らせを出すプログラム。
queueとして使うmongodb collectionをwatchし、通知を出します。
夜中は些細な通知を表示すると安眠妨害で怒られるので検閲をします。
人間が不在の時は通知を無視します。
処理し終わったらdequeueします。
anythingllm
直接ollamaを扱うにはRAGなど色々面倒なので、anythingllmを使います。
api keyを出すと、REST APIで操作できます。
ollama
お馴染みollama
東工大+産総研のswallow 8bを使っております。
mattermost
お馴染みmattermost
ESP32接続液晶ディスプレイ
MQTTで文字列を受け取ったら、しばらく液晶に表示するようにします。
あかせくん労働強化
あかせくんにはスキャンしてOCRされたPDFからの金額抽出などもしてもらっています。
しかしOCRも宅内完結で正直、品質があまり良くなく、結果としてあかせくんも誤認識しがちです。とはいえ、自分で全部やるよりは遥かに楽です。
他、RSSやlogwatchなども要約もしております。
あかせくんがんばれ! お仕事案はたくさんあるんだ! お給料は払わないけどね!
謝辞
元ネタとなったしらせくんの筆者、ollamaやswallowなどの作者のみなさまに謝意を表します。
全国の姓が「あかせ」のみなさま、ごめんなさい。
-
anythingllmやollamaにそのようなバックドアがない場合。その有無は原理的には検証可能。 ↩