🧠 概要:
概要
この記事では、Obsidianにおけるタグ整理を自動化するためのGitHub Actionsの作り方について解説しています。非エンジニアでも扱えるように、GitHub Actionsの設定や必要なパラメータについて詳しく説明しています。これにより、手動での時間がかかるタグ整理作業をAIとGitHub Actionsを使って効率化することを目指しています。
要約
-
背景
- ObsidianとCursorを使ってAIを活用したメモ環境を構築。
- タグ整理もAIに頼むことで効率化が可能。
-
なぜタグ整理が必要か
- 情報検索性の向上。
- 関連ノートの発見が容易に。
- Graph Viewでの関連視覚化。
-
GitHub Actionsの機能
- Markdownファイルからタグを抽出。
- OpenAI APIでタグ改善案を提案。
- 除外フォルダ、禁止タグなどの設定が可能。
-
使用手順
- GitHubリポジトリでワークフロー設定(
tag-organizer.yml
ファイル)を作成。 - 各種設定(OpenAI APIキー、除外フォルダ等)を行う。
- GitHubリポジトリでワークフロー設定(
-
実行方法
- スケジュール設定や手動実行が可能。
- 実行後にPull Requestが作成され、変更を確認してマージする。
- まとめ
- このGitHub ActionsでObsidianのタグ管理が自動化され、知識管理の効率化が実現。
- コードは公開されており、機能追加やバグ修正への貢献が歓迎されている。
最近Obsidian とCursorを組み合わせてAI Nativeなメモ環境を構築している人が増えていると感じます。私もその流行りに乗って環境を整えた内の一人です。
Cursorを使えば、様々なインサイトを得たり、ブログ記事のドラフトを書かせたり、週次で振り返りを行ったりと色々なことをAIにやらせることができ、タグの整理もそのうちの一つかと思います。
私の環境はGitHubでデバイス間の同期を取っていますが、せっかくGitHubを使っているならGitHub Actionsで色々自動化すればいいじゃないかということで、タグ整理を自動化するGitHub Actionsのworkflowを作ったので、ご紹介します。
なぜタグ整理が必要なのか?
まず前提として、Obsidianでタグを整理することには、以下のようなメリットがあります:
-
情報の検索性が向上する
-
関連するノートを見つけやすくなる
-
graph viewで関連が可視化される
しかし、手動でタグを整理するのは時間がかかります。そこで、Cursorと組み合わせてAIでタグ管理を行うわけですが、これも結局然るべきタイミングで、人間がCursorに指示する必要があるわけです。
私はその作業すら面倒くさいので(笑)今回このGitHub Actions Workflowを作成するに至りました。
このツールでできること
このGitHub Actionsは以下の機能を提供します:
-
指定したフォルダ内のmarkdownファイルからタグを抽出
-
OpenAI APIを使ってタグの改善案を提案
-
対象フォルダ、除外フォルダ、禁止タグなどの設定が可能(もっと拡張していきたい)
使い方
まず前提ですが、ObsidianのワークスペースがGitHubで管理されている必要があります。
GitHubとの連携は以下の記事などを参考にして設定してください。
1. ワークフローの設定
.github/workflows/tag-organizer.yml というファイルを作って以下をコピペします(ディレクトリは必ずこの場所にします。そうしないとGitHubがワークフローを認識しません。):
name: Update Tags on: schedule: - cron: '0 15 * * *' # 0:00 JST workflow_dispatch: permissions: contents: write pull-requests: write jobs: update-tags: runs-on: ubuntu-latest timeout-minutes: 3 steps: - uses: actions/checkout with: fetch-depth: 0 - name: Organize Tags uses: tokku5552/obsidian-tag-organizer.1.0 with: openai-api-key: ${{ secrets.OPENAI_API_KEY }} target-folder: 's' exclude-folders: | - drafts - templates - private forbidden-tags: | - draft - temp - test model: 'gpt-3.5-turbo' temperature: '0.7' - name: Create Pull Request uses: peter-evans/create-pull-request with: commit-message: "tag updated" title: "🤖 Automated Tag Updates" body: | This PR contains automated tag updates. Changes were made by the tag organizer workflow. branch: update-tags-${{ github.run_number }} base: main delete-branch: true
2. 必要な設定
現時点ではOpenAI APIのキーが必要なので、発行してGitHub ActionsのSecretsに OPENAI_API_KEYという名前で保存します。
GitHub リポジトリのSettings > Secrets and variables > Actions > New repository secret をクリックして、NameはOPENAI_API_KEY、Secretには取得したAPI KEYをコピペして保存してください。
シークレットの保存
また上記のworkflowでは変更をPull Requestとして提出しますので、それを許可する設定が必要です。
Settings > Actions > General > Workflow permissionsで Read and write permissionsとAllow GitHub Actions to create and approve pull requestsにチェックを入れてSaveしてください。
Actionsの権限許可
一応これだけで設定は完了です。現時点で以下のようなパラメータを指定できるようになっています。
必須パラメータ
-
`openai-api-key`: OpenAI APIキー
オプションパラメータ
-
`target-folder`: タグ整理の対象フォルダ(デフォルト: “.”)
-
`exclude-folders`: 除外するフォルダ(YAMLリスト形式)
-
`forbidden-tags`: 使用禁止のタグ(YAMLリスト形式)
-
`model`: 使用するOpenAIモデル(デフォルト: “gpt-3.5-turbo”)
-
`temperature`: OpenAI APIの温度パラメータ(デフォルト: 0.7)
実際の使用例
基本的な使い方
GitHub Actionsでは以下のようにいつ実行するかを決めることができます。
on: schedule: - cron: '0 0 * * *' workflow_dispatch:
cronというパラメータで定期実行のタイミングを指定できます。これはcron式と呼ばれる表現方法なんですが、Cursorを使っていれば、対象の箇所を指定して 毎日朝4時に実行するように指定して とか指示すれば、よしなに書いてくれると思います。
また、workflow_dispatchという指定を書いておくと、手動で実行することもできます。
Actionsの手動実行
Acrtions > Update Tag(workflow名に依ります) > Run workflows > Run workflowをクリックすると、実行することができます。
実行が正常に完了するとPull requestsが作成されます。
作られたPull request
Files changedタブを開くと、実際にどのファイルがどの様に変更されようとしているかが見えるので、問題なさそうであれば、 Merge pull requestを押して変更を反映します。
注意点
まとめ
このGitHub Actionsを使うことで、Obsidianのタグ管理が自動化され、より効率的な知識管理が可能になります。
またGitHub Actionsのコードは公開しており、CONTRIBUTE大歓迎ですので、欲しい機能やバグがあればIssueやPRを上げていただければ幸いです。
Views: 2