そうだ、奥多摩に行こう

Notionの中の小人

2025年10月24日 AI Notion

Notion

最近Notionに小人さんを住まわせている。日常のメモをNotionのDBに書いているが、書いているうちに話が広がってきてタイトルと中身がよく乖離する。

これの対策としてサブタイトルを追加し、定期的に小人にレコード内容を読んでもらい、サブタイトルを更新してもらうようにした。あとついでにタグも付けてもらっている。

こんな感じのメモがあって、

before

本文を追記するとサブタイトルを直しといてくれる。ちょっと便利。

after

他の小人

SNS user

チェックしたいSNSアカウントの名前を入れるDBもある。そこにスクリーンネームを入れておくと、その人のプロフィールとタグ付けをやっといてくれる。タグで絞り込んだりしないけど、属性を概覧するときには便利。

Discord view

さらに小人は半日ごとにSNSユーザーのツイートを収集してきて、いい感じにまとめて送ってきてくれる。

同じやり方で読みたいRSSをDBに入れて、メタ情報を付与し、翻訳と要約を済ませた文章をDiscordに送信させている。

n8nで動いている

n8n

AI関連の記事を読んでいた時にたまたま目にしたノーコード・ローコードツールの n8n で動いている。n8nは IFTTT とか Zapier みたいなもので…さらにそこにAIも付けられるよ、みたいな感じだった。

色々できるが、自分は cron + AI + DB + Discord の組み合わせが多い。

n8nにも内蔵の簡易DBがありGUIで操作できるが、ビューとしてはNotionの方が使いやすいのでNotionを使っている。値を編集しない場合は内蔵DBを使っている。

n8nで他に作ったもの

Notion連携以外でこんなものも作った。どれもすぐに作れて、便利に利用している。

洗面所の天気ウィジェットにAIメッセージ

ラズパイ

洗面所に天気情報を出すラズパイを貼り付けているが、そこに表示していたテキストは不快指数の表現そのままで、あんまり良くなかった。体感と離れているし、たいてい不快ゾーンの表示になってしまう。もっとこう、いい感じにしてほしかった。

Free Weather API から値を取得しているので、ここのJSONをトリミングしてAIに読ませて、「小学生が理解できる文章で出せ」と指示してある。また、6時間毎に更新しているので、朝には朝〜帰宅頃の、午後は帰宅後遊びに行くときの、夜は明日の天気情報がいい感じに表示される。

紫外線情報や空気の情報も入っているので、夏は「日焼け止めを〜」と出るし、冬の風の強い日は多分「風を通さない上着を〜」と出してくれる。

深夜はどうせ寝てるので適当なことを喋らせている。

子供の給食献立表の読み取りと通知

給食献立表

小学校が給食の写真をブログにアップしてくれているので、取得してLINEに通知するボットだけは作ってあった。が、朝の段階で知りたい。子供は毎朝献立表を見て楽しそうにしている。でも自分はあの見づらい表をいちいち見たくない(低学年も読めるようにほぼひらがなになっている)。

n8nにフォームトリガーがあるので、スマホで写真を撮ってフォームに送って、AIがいい感じに読み取ってテキストデータにして、NotionDBに入れるようにしてある。

ひらがなもちゃんと漢字に直してあるので読みやすい。月初に処理して、毎朝Discordに通知している。

子供の部活の予定プリントの読み取りとカレンダーの追加

スケジュール読み取りワークフロー

中学生の部活スケジュールもプリントで来るが、これも見づらい。さらに自分たちに関係ない情報が多い。これを注意深く読んで、必要な情報だけを手作業でカレンダーに入れる必要があった。幸いフォーマットが固定だったので、いい感じのプロンプトを書いておくことでいい感じに読んでくれる。

これもn8nのフォームからスマホの写真をアップロードするようにしていて、しばらくするとicsファイルがダウンロードされる。ファイルを開いてカレンダーに登録するだけで済むようになった。

ちなみに画像を読む能力はGeminiが強い。日本語だから?という理由もありそうで英語はまた違う結果になるかもしれないが、体感の性能は Gemini > ChatGPT > Claude だった。ただ、ChatGPTは読めているのに出力が途中で止まってしまうので、今回この処理には使っていない。トークン数?コンテキスト長?GPT-5 Proなら?とか思ったけど調べるのが面倒くさくてやめた。

Geminiが強いのは数年前からVisionAPIを公開していたり、最近だと Nano Banana が話題になったりしているので、他のベンダーより進んでいるんだろうか。

OpenAI、Geminiの利用料金のチェック

AI利用料

画像処理はトークン数をかなり使うので、何度も読み込ませていたら料金ページのグラフがどんどん伸びていった。伸びても500円くらいなんだけど、ケチなので気になってしょうがない。ので、OpenAIとGeminiの料金チェッカーも作り、Discordに通知させている。

OpenAIはAPIがあるので取得は簡単だった(AdminAPIを使う)。Geminiはちょっと面倒で、GoogleCloudでなんか色々やる必要があり、支払いアカウントがどうのこうの、支払データがBigQueryにでてくるからどうのこうの、と面倒くさすぎる。

ClaudeはAPIがなかったので保留。

小人のコスト

気になる小人のコストだが、n8nはセルフホスティングしているのでそっちに費用はかからない。主にAIの利用料になる。ほぼ gpt-4o-mini を使っているので、1日1〜2円くらい、月50円くらいだと思う。安くて助かる。

しかし、モデルの違いがわからずコスパに自信がない

モデルの種類が多すぎる。Open AIだけでもテキスト系がたくさんあって、4.1, 4o, 5 があり、それぞれに無印、-mini、-nanoがある(推論が強いo4とかは使っていない)。Claudeもhaiku, sonnet, opusがあり、細かいバージョンがぶら下がっている。Geminiは幸いProとFlashだけで助かる。オープンソース系でllamaがあって 3.1, 3.2, 3.3, 4 とかあり、パラメータ数違いもある。Mistral、gemma、qwenなど他にもまだまだある。

最初はお金をかけたくなくてローカルLLMを試していたが、MacBookAirM2(メモリ24GB)だとだいぶ遅い。小人をさっさと動かしたかったので、コストと性能のバランスの良いと思った gpt-4o-mini で落ち着いた(でもGPT-5-nanoの方がいい場合もありそうだし、GPT-4o-nanoで十分な箇所もある気がしている)。

落ち着いてなかった

数日間 gpt-4o-mini で動かしていたが、Discordに「今日のコストは1円」と来るのがなんか嫌。行動経済学でも「人間、お金が減るのめっちゃ嫌がる」みたいな話があった気がするし。

Groqという推論に特化したプロセッサを作っている企業のAPIで、ある程度無料で使える。AI漫才みたいに激しく使わなければ無料内で収まるのでこっちに乗り換えた。

GPT OSS 20B, 120Bも使えるし、Lamma4 Scout, Maverickも使える。Qwen3 32Bもある。いろいろ試して出力のいいものを選んだ結果、Moomshot AIのKimiに決めた。文章が一番自然だしなんか速い。コストは高い。ずっと「moonshotai(ムーン書体)」と読んでいて「なんや、月姫フォントか」とか思っていたがムーンショットだった。

ということでほぼ無料に落ち着いた。

はい、こちら小人設計局です

単発の小人ができたので、こいつら集めて何かできませんかね?と考えて、「DBに雑なタイトルとアイデアを入れておいたらあとは小人さんがなんかいい感じに作って完成まで持っていく」ものを作ってみた。元々はAI編集室という名前で、ウェブメディアっぽい記事を生成していたが、コンテンツが面白くなかったのでこっちに変えた。

とりあえず仕様書まで作ってくれる。こんな感じで動く。

  • 「あんなこといいな、できたらいいな」のレベルでタイトルと概要を入れる
  • 小人さんが誤字脱字チェックをしてくれる
  • 小人さんが日本十進分類法で内容を分類する (編集室の時の名残)
  • 分類に合わせて専門家を生成するメタプロンプトを生成する
  • 専門家になりきった小人さんがアイデア出しをして見出しだけ作る
  • (ここで一旦人間のレビューを挟んでいたが、面倒なのでやめてそのまま進む)
  • 見出しを元に専門家が本文を生成してカードをReviewableに移動する
  • ここで人間がレビューし、内容が良ければそのまま完成。だめな場合はコメント欄にレビューを残してRedoにチェックを入れておくと、小人さんがやり直して再提出してくる

というもの。指示の出し方によるが、なんかそれっぽいコンテンツが出てくるようになった。

小人設計局の出力

本当はレビュー用の小人も用意して小人同士でやり合わせたかったが、NotionのAPIや仕組みを調べるのに疲れてしまってそこまで行けなかった。

これに近いことは、OpenAIのCodexとAgentsSDKでできるらしい。
Building Consistent Workflows with Codex CLI & Agents SDK

あと、レビュー内容を覚えといてくれるので、「Pythonやめて」って言うと別プロジェクトでもPythonを出さなくなる。これはChatGPTのメモリの真似で、レビュー内容の要望だけいい感じに覚えるようにしてある。

プロンプトエンジニアリング、コンテキストエンジニアリング

レビューのワークフロー

どちらも「文字書くだけでしょ?」「強いモデル使えば済むんでしょ?」と思っていて、半分くらいあってる気もするが、この規模のワークフローを作るとさすがに意識せざるを得なかった。リーズニングの強いモデルならこの辺をいい感じにやってくれるんだろうか?自動でやれるならそっちに任せたい。
任せたかったが、リーズニングについて調べたら「推論力」だったので、前段のプロンプトで間違ってるとAIが明後日の方向に走り出すということになり、結局人間が頑張らないと駄目なのであった。

AIは伝え方が10割なので、こちらが全体の文脈を見ながら意図を適切に伝えないといけない。なので、これはこういう技術なんだなと思った。プロンプトのエンジニアリングだ。

あと、プロンプトにこちらの技術レベルを指定していないので、小人設計局が随分と話のレベルの高い資料を出してしまう。「コピペの多い生涯を送ってきました」とこちらの術式を開示することで、難しすぎる設計書を出させないようにする必要があった。

フラスコの中の小人ホムンクルス

ところでNotionの中の小人は、初めのうちはこちらのメモを整えてくれて、知恵を授けてくれたり手伝ったりしてくれていた。だが役割をもたせた小人を増やした時に「おや、これでは俺が鋼の錬金術師に出てくる”お父様”みたいだな」と思えてきた。専門家のメタプロンプト(変装)なんかがエンヴィーっぽい。入口で面倒くさがりながら誤字チェックするのがスロウス、分類するのがラースだろうか。

n8nはローカルマシンのDockerで動いていて、コンテナ内の権限はnodeユーザーに制限されているのでフラスコはDockerなのだが、もし小人がここから出ようとして「ホストマシンへのアクセス権があれば、もっと便利になりますよ…」としゃべり始めたらいよいよホムンクルスめいてくるな、と思ったのだった。


という感じNotionが賑やかになってきた。AIがすごく楽しいので、そういうお仕事ありましたら @monoooki までご連絡ください。フロント〜バックエンドまで、要件定義から実装まで対応できます。