以下の内容はhttps://wineroses.hatenablog.com/entry/2025/03/01/145823より取得しました。


Obsidianで自動書記するためのプロンプト

昨日は代筆してもらうTemplaterを考えたのですが、繰り返しているとネタ切れになって、同じような話がぐるぐる回り始める。 これだと自動書記には程遠い。

そもそも「文を考えるとはどういうことか」のメタレベルの問いだと気づきました。

Cursor

遠藤諭さんのCursorを使った執筆方法が参考になりました。 プロンプトは都度入力するスタイルで、選択範囲を指定して読みやすく修正してもらっています。 あるいは、途中まで書いた文章を補完してもらったり。

とすると、プロンプトは選択式ではなく、自由に入力するのが実用的か。

prompt.md

Templaterスクリプトです。

<%*
const api_key = 'xxxxx'

const url = 'https://generativelanguage.googleapis.com/v1beta/models/'
const model = 'gemini-1.5-flash'
s = ""
prompt = tp.file.selection()
if(!prompt){
  e = app.workspace.activeLeaf.view.editor
  p = e.getCursor().line
  s = e.getLine(p)
  if(!s){
    lines = tp.file.content.split("\n")
    prompt = lines.slice(0, p).join("\n")
  }
}
if(!s){
  s = await tp.system.prompt("どうしますか?")
  if(!s) return
}
prompt += `\n\n${s}`
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 `\n${result.candidates[0].content.parts[0].text}`
}else{
  new Notice(`エラー:${response.statusText}`)
}
%>

api_key は下記アドレスで取得してください。

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

使用例

スクリプトを呼び出すと:

プロンプトを求めてくるので、何か指示します。 カーソル位置までのテキストを対象に回答がカーソル位置に書き込まれます。

カーソル行があるときは、それをプロンプトと見なします。

また範囲選択すると、その部分だけの修正や置換ができます。

パターン・ランゲージ

井庭さんがコミュニケーション用のパターン・ランゲージとしていくつか考案しています。 「こういう言葉を入れたら対話が展開するんじゃないか」というパターンですね。

これのライティング版を考えれば、執筆に応用できる。 前回のような選択方式で自動書記を展開していけるはずです。

見たところ、いくつかの二項対立で表せようです。

  • 深める / 簡略化する
  • 広げる / 限定する
  • 抽象化する / 具体化する
  • etc

こんな感じじゃないかな。

そういう視点でほかの人が書いた文章を読み、「このパラグラフでテーマを広げているなあ」とか分類する。 分類する中で、ほかに軸が必要となれば追加していくので良さそうです。

そうすると、自動書記用のプロンプトも集まってくるでしょう。

井庭さんの「ライティング・パターン論」も出てました。 まだモックアップの段階で止まってるみたい。 13年前の考察かあ。 今の生成AI時代だとどうなるんでしょうね。

まとめ

まったく新しいアカデミック・ライティングの教科書

阿部 幸大

手始めに『アカデミック・ライティング』からパターンを抜き出してみようかな。

Geminiのおすすめプロンプト

この記事を元にprompt.mdに「具体例を上げてください」と指示しました。

パターン1:文脈と方向性を明確にする

  • 目的: 現在書いている文章の文脈と、次に進む方向性を明確化します。

  • プロンプト例:

    • "現在のテーマは〇〇です。次に、〇〇について深掘りしますか?それとも、〇〇と関連する別の側面を検討しますか?" (〇〇には具体的な内容を挿入)
    • "直前の段落では〇〇について述べました。この流れを踏まえ、次の段落では〇〇を説明し、結論として〇〇を示したいと考えています。どのように記述すれば良いでしょうか?"
    • "今書いているのは〇〇に関する論説です。論点Aを支持する論拠をさらに展開するか、それとも反論を検討しますか?"

パターン2:文章構造を指定する

  • 目的: 論理的な文章構造を維持し、脱線を防ぎます。

  • プロンプト例:

    • "このセクションでは、〇〇、〇〇、〇〇の3つの論点を展開します。次に論点を追加する場合はどれですか? それとも、次のセクションに移行しますか?"
    • "箇条書きで論点を列挙しますか?それとも、段落形式で記述しますか?"
    • "この文章は、導入、本論、結論の3部構成です。現在、どの部分を書いているのか、そして次の部分に進むにはどうすれば良いでしょうか?"

パターン3:表現方法を指示する

  • 目的: 文章のスタイルやトーンをコントロールします。

  • プロンプト例:

    • "より学術的な表現にするか、それとも平易な言葉で書くか、選択してください。"
    • "この段落は、客観的な記述にするか、主観的な意見を含めるか、どちらが良いでしょうか?"
    • "比喩や例えを用いて説明しますか? それとも、事実を淡々と記述しますか?"

パターン4:具体的な質問を提示する

  • 目的: 思考の詰まりを解消し、具体的な方向性を示します。

  • プロンプト例:

    • "〇〇について、更なる証拠やデータが必要ですか? あるいは、専門家の意見を引用しますか?"
    • "〇〇という概念を、具体例を用いて説明する必要がありますが、どのような例が適切でしょうか?"
    • "〇〇と〇〇の違いは何ですか?その違いを明確に説明する文章を生成してください。"

4パターンか。 なるほどなあ。

教訓:プロンプトがわからないときは生成AIに尋ねればよろし。




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

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