Newer
Older
TelosDB / journals / 20260219-0002-gemini-rag移植.md

20260219-0002-gemini-rag移植

作業実施の理由

ユーザー所有の外部ユーティリティ gemini-rag.js を本プロジェクト内で利用可能にするため。ただし、製品本体には含めず、個人用ワークスペースとして管理する。

指示(背景、観点、意図)

  • 製品コードや依存関係 (package.json) を汚さないこと。
  • private フォルダを作成し、Git管理外 (.gitignore) とすること。
  • ツール独自の依存関係は private 配下で完結させること。
  • ESM (.mjs) 形式への変換を行うこと。

指示事項とその対応

  • 隔離戦略: ルートに private フォルダを作成し、.gitignore で除外。
  • 階層の簡略化: ユーザーの指摘により、private/tools/gemini-rag/ ではなく private/tools/ 直下にファイルを配置。
  • 依存関係の分離: private/tools/package.json を作成。
  • ESM化: 移植元の CommonJS (require) を ESM (import) に書き換え。

作業詳細

  1. AIエージェントは .gitignoreprivate/ を追加。
  2. AIエージェントは private/tools ディレクトリを整理し、main.mjs, package.json, utils/ を直下に配置。
  3. AIエージェントは ツール専用の dependencies を private/tools/node_modules にインストール。
  4. AIエージェントは main.mjs のパス仕様を調整。
    • .env はスクリプトと同じディレクトリ (private/tools/) から読み込み。
    • 出力先 (references/) はプロジェクトルートを基準に設定。
  5. AIエージェントは ルートの package.json から不要な依存関係を削除。

検証結果

AIエージェントは実際に複数のテストクエリを実行し、以下の正常動作を確認した。

  • private/tools/.env の設定を利用した RAG プロセスの完遂。
  • プロジェクトルートの references/ フォルダへのレポート生成。
  • 調査結果を体系的にまとめた資料 references/20260219-05-文書ベクトル化手法の調査まとめ.md の作成(ナレッジ蓄積)。

Mermaidによる工程図

graph TD
    Start["開始: gemini-rag.js 移植"] --> Strategy["隔離戦略の決定 (privateフォルダ)"]
    Strategy --> GitIgnore["'.gitignore' に 'private/' 追加"]
    GitIgnore --> CreateDir["'private/tools' 整理 (階層簡略化)"]
    CreateDir --> ToolDeps["ツール専用 package.json & .env 配置"]
    ToolDeps --> PortCode["コード移植 (ESM化 & パス調整)"]
    PortCode --> Verify["動作検証 (RAG検索テスト)"]
    Verify --> Record["結果の記録 (referencesへのサマリー保存)"]
    Record --> End["完了"]

AI視点での結果

製品本体のクリーンさを保ちつつ、ユーザーの利便性を高める移植が完了した。private フォルダは完全に隔離されており、今後他のツールを追加する際も同様のパターンで安全に拡張可能である。