ぜ~んぶテキストベースで快適に仕事したい
- ワープロソフトウェアの操作やスタイル調整に悩む
- 作図ソフトウェアのお絵描きに悩む
- プレゼン資料のレイアウトに悩む
- etc . . .
こういう仕事、ほんとめっちゃうっとうしかった。
本業ではないし、設計に専念したい。非エンジニア部門も含めて全部テキストベースになれば良いのに。常々そう思っていた。
そうだ、実現するためのソフトウェアをAIに作らせよう!!!
今はAI時代、これまで自分1人でできなかったことでもAIに作らせることができるようになった。革命的だと思う。AIは1万行のコーディングでも数時間でやってくれる。
AIのアウトプットの精度をあげる文章
まず初めに、AIのアウトプットの精度をあげる文章について考えた。
AIは察してくれない ため、曖昧な文章はそのまま誤解として返ってくる。AIが誤解しようのない文章 のポイントをまとめた。
-
一文一義にする
1つの文には1つの意味だけを書く。
- BAD例
Aを修正してBも対応しておいて
- GOOD例
Aを修正する。
Bに対応する。
AIは文を単位に意味を解析するため、複数の意味が混ざると誤解が生じる。
- BAD例
-
箇条書きを使う
複数条件・複数要件は必ず箇条書きにする。
- BAD例
A,B,Cを満たす場合
- GOOD例
いかの全てを満たす場合
- A
- B
- C
AIは文章よりも箇条書きの方が正確に構造を理解する。
- BAD例
-
指示語を使わない
「これ」「それ」「あれ」「さっきのやつ」は禁止。
- BAD例
これ直して。
- GOOD例
前のメッセージで生成した
help.htmlの<section id="usage">を修正する。
対象を明示することで、AIの誤解がゼロに近づく。
- BAD例
-
能動態にする(受動態を使わない)
受動態は行為者が曖昧になるから、能動態にする。
- BAD例
ファイルが生成されました
- GOOD例
AIに
help.htmlを生成させた
AIは「誰が何をするか」が明確な文を最も正確に処理する。
- BAD例
-
論理和(または)と論理積(かつ)を混在させない
AIは混在した論理構造を誤解しやすい。
- BAD例
AかつBまたはCの場合
- GOOD例
以下のいずれかの条件を満たす場合
条件1:AかつB
条件2:C
論理は必ず分解して書く。
- BAD例
-
否定を慎重に扱う
否定は誤解の温床だ。可能なら肯定に書き換える。
- BAD例
AではないBを除外しない
- GOOD例
Aを含むBだけを対象にする
- BAD例
-
分岐を減らす
条件が多いほどAIは誤解する。分岐は可能な限り単純化する。
- 条件を統合する
- 例外を減らす
- 依存関係を整理する
分岐が少ないほど、AIの出力は安定する。
-
構造を先に提示する
AIは構造を理解してから内容を生成する。
- まずキー構造
- まずファイル構造
- まず処理の流れ
構造 → 内容 の順で書くと、AIの精度が大きく向上する。
-
最大のポイント AIの大好物
AIの学習データの多くがMarkdownという書式のテキストデータだから、Markdown で質問してあげると精度の良い回答する。
しかし未知の状態からMarkdownを学ぶには学習コストが高い。AI時代に必須の書式なのに、いきなり使いこなすのは難しい。
非エンジニアでも直感的にMarkdownを書けるフリーソフトはないのだろうか?
それがあった!
Obsidian を使えば、誰でも自然に普通のワープロソフト感覚で Markdown を書ける。こういうソフトウェアを探していた。
以降は次の繰り返しでソフトウェアを作る
- Obsidianで Markdown を書く
- Microsoft copilot にインプットする(仕様にする)
- Microsoft copilotのアウトプット(仕様)をまとめて、VSCode のチャット(Github copilot)に貼る
直接、VSCode のチャット(Github copilot)に貼らない理由はトークンを食いつぶさないように精度の良い質問をするため。
Obsidianの標準の機能だけでは目指しているものに少し足らない
そうだ!AIにプラグインを作らせよう! で、作らせたObsidianのプラグインがこちら。
| プラグイン名 | 説明 |
|---|---|
| Table Formatter | Obsidianのテーブル整形がしょぼいので自分好みに整形するプラグイン。 |
| PlantUML Integrator | 既存のPlantUMLのレンダリングプラグインの調子が悪かったので、自分で作ったレンダリングプラグイン。 |
| Shared Vault | クローズドネットワークの共有フォルダで共同作業したかったので作ったサーバレスの書庫共有プラグイン。 |
| Markdown Dialect IAL | 後述のPandocのIAL(Markdown方言のようなもの)を使えるようにするプラグイン。 |
Obsidianを使っていない相手に配布したい
Obsidian などのビューアを持っていない相手にも資料を渡したい。
Obsidian自体でもPDFやHTMLに変換したりできるのだけど、pandocを使うともっと詳細な変換の制御ができる。
がしかし、pandocのコマンドが複雑だし、1ファイルづつコマンドを打ってたらとてもやってられん。
そうだ!AIにGUIソフトウェアを作らせよう! で、作ったソフトウェアがPandocGUIだ。
書庫ごとまるっとHTMLに変換したり、特定のフォルダ、ファイルを除外したりいろいろ便利に使える。
これで自分の仕事の範囲はぜ~んぶテキストベースで快適に仕事ができるようになった。