以下の内容はhttps://wineroses.hatenablog.com/entry/2025/04/15/132041より取得しました。


Obsidian:生成AIでテキストを編んでいく

Notion AIを真似しました。

Notion

Notionを触ってみて「文章の続きをAIが考えるの、面白いなあ」と思い、Obsidianに組み込もうと思いました。

単にプロンプトを選択するだけですけどね。

prompt.md

Templaterスクリプトです。

<%*
const api_key = 'xxxx'

common = "ですます調の三行くらいで回答してください。"
prompts = [
"続きを考えてください",
"要約してください",
"具体例を挙げてください",
"何かに例えてください",
]

const url = 'https://generativelanguage.googleapis.com/v1beta/models/'
const model = 'gemini-1.5-flash'
e = app.workspace.activeLeaf.view.editor
p = e.getCursor().line
s = e.getLine(p)
lines = tp.file.content.split("\n")
p0 = p - 20
if(p0<0) p0 = 0
prompt = lines.slice(p0, p).join("\n")
if(s) {
  await e.setLine(p, "")
} else {
  s = await tp.system.suggester(prompts, prompts)
  if(!s) return
}
prompt += `\n\n${s}。\n${common}`
end_point = `${url}${model}:generateContent?key=${api_key}`
new Notice("Thinking...")
const data = {
  contents: [{
    parts: [{ text: prompt }]
  }]
}

response = await fetch(end_point, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(data)
})
if(response.ok) {
  const result = await response.json()
  return `${result.candidates[0].content.parts[0].text}`
}else{
  new Notice(`エラー:${response.statusText}`)
}
%>

Geminiを利用しています。 1行目にご自分のAPIキーを設定してください。

https://aistudio.google.com/app/apikey

使い方

ホットキーかモバイルツールバーに登録。

カーソル行をプロンプトと見なし、カーソル行までのテキストを対象に生成AIを実行します。 回答がカーソル位置に追加されます。

で、カーソル行が空行のとき、プロンプトのメニューが出ます。

選ぶと、そのプロンプトが適用される。 これで書くのをアシストしてもらう作戦です。

問題点

この記事をもとに「続きを考えてください」を選ぶと、スクリプトの問題点を指摘し始めます。 しかも三行に収まらず、延々と何項目も並んだ返答が出てきて…。

そんなことを頼んだ覚えはない! TemplaterスクリプトなんだからAPIキーが暗号化されてなくてもいいじゃないか。 エラーメッセージも詳細に返す方がいいのはわかってる。 そうじゃないの、ここから話を展開したいの。

でも「テキスト全文を渡すのは長すぎるし、何を期待しているのかわかりにくくなります」はその通りだなあ。 Notion AIはどんな処理にしているんだろう?

ということで「カーソル行より前の20行だけ渡す」に変えてみました。 これだとそれっぽくなる。 「それっぽくなる」というのは勘違いで、 どうも人間も「全体の流れ」なんて見てなくて「ここ20行くらい」を文脈と思ってるんじゃないか。

もしかしたら、人間の思考も局所的な文脈処理に依存しているのかもしれませんね。
今後の研究で、そのメカニズムが解明されるのが楽しみです。

まとめ

最後の段落は生成AIによるものです。




以上の内容はhttps://wineroses.hatenablog.com/entry/2025/04/15/132041より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14