1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

うちのタダ働きをしてくれるアシスタント「あかせくん」を自慢させてください(労基案件)

Posted at

「ねー、うちにもしらせくん欲しい!ちゃんとお世話するからー」「わかりました、でもお給料は払いませんからね」

しらせくん、すごいですね。

ということで、しらせくんの同僚を我が家でも雇うことにしました。ただし無賃金で。赤字労働あかせくん。
まずはメールの要約をしてもらいます。

本家しらせくんはクラウド上の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などの作者のみなさまに謝意を表します。

全国の姓が「あかせ」のみなさま、ごめんなさい。

  1. anythingllmやollamaにそのようなバックドアがない場合。その有無は原理的には検証可能。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?