본문

Tech
AI基盤のパーソナル知識サポーター:カスタマイズ型コード分析および文書管理

작성일 2024.08.29
AI基盤のパーソナル知識サポーター:カスタマイズ型コード分析および文書管理

概要

先回は、ChatGPTが知らないことをChatGPTに聞いてみる記事で、ChatGPTに非公開個人資料について質問する方法についてお話ししました。今回は、さらに改善された方法と活用についてご紹介したいと思います。

活用例

Notion文書の要約および検索

まず、Notionから希望するページを持ってくる必要があります。Notionの右の文のメニューをクリックしてエクスポートを選択します。つづいて、下層ページを含めるかを決定します。「下層ページを含む」を選択すると、当該ページとこれと連結された下層ページをすべてダウンロードできます。選択したらエクスポートボタンをクリックします。

thumb-7baa44f41b87389174872a396c398529_1724642739_9742_800x566.png

AI_01.png

 

ダウンロードリンクはメールに送信されます。リンクをクリックしてダウンロードして解凍し、作成されたフォルダを整理して集めておいてください。私は、下図のようにnotionというフォルダの下層に持ってくる資料を集めて整理しました。

Ai_02.png


インストール、設定などの過程は、最後にご説明します。


インストールと設定がすべて完了したと仮定して、使用結果から見てみたいと思います。下の画像は、質問に対する結果画面です。質問にあるlogsinkは、WhaTapの技術です。これに関する資料をダウンロードした文書ですべて検索、類似する内容が含まれたものをChatGPTが整理して回答した内容です。画面下には、参考にしたNotionの文書名が表示されます。

Ai_03.png

プロジェクトコード分析

他の開発者が実行したプロジェクトを参考にしたり受け継ぐ場合、詳細なガイド文書や説明があれば問題ありませんが、そうでない場合もあります。また、そのような文書があったとしても、現在のコードの状態と異なる場合も多いです。

 

下の画像は、プロジェクトコード全体を提供して質問した結果です。

Ai_04.png


プロジェクトに対するさまざまなダイアグラムと気になる部分のコード実行などに対する質問を通じて、プロジェクト全般に対する理解を深めることができます。

  • すべてのコードベースに対して質問可能
  • プロジェクトの構造、主な機能、使用された技術などについての詳細な説明を提供

ペアプログラミング

分析と同じように、実行中のプロジェクトコード全体を送って、その後実行について質問したり、追加開発を指示することができます。下の画像は、既存のコードへの機能追加をリクエストした結果です。内容が長いため、一部のみキャプチャしました。

Ai_05.png


ChatGPTが既存のプロジェクトのコードを分析してコードをリクエスト時に必要そうな情報を一言一句記入する作業が不要になりました。単純かつ抽象的に希望することをリクエストして、その後足りない点は少しずつ加えられるため、他の同僚開発者と一緒にペアプログラミングするように開発を進められます。

  • 既存のコードをもとに新規機能をさらにリクエスト
  • コードリファクタリングのリクエスト
  • バグ解決案の提示

インストール方法

  1. この保存場所をクローンまたはダウンロードします:
                   git clone https://github.com/your-repo/CodeSage.gitcd CodeSage
                   
  1. 必要なパッケージをインストールします:
                   pip install -r requirements.txt
                   
  1. OpenAI API キーを入力します:
    • SageSettings.json ファイルを開いて、"your_openai_api_key"の代わりにAPIキーを入力します:
                           {"openai_api_key": "your_openai_api_key","extensions": [".md", ".vue", ".js", ".json", ".css", ".html", ".py", ".java", ".ts", ".jsx", ".tsx", ".php", ".c", ".cpp", ".h", ".cs", ".swift", ".rb", ".go", ".kt", ".sql", ".hpp", ".m", ".mm"],"ignore_folders": ["SageLibs", "SageTemplate", "node_modules", "cypress", ".gradle", ".idea", "build", "test", "bin", "dist", ".vscode", ".git", ".github", ".expo"],"ignore_files": ["CodeSage.py", "SageSettings.json", "question_history.json", "embeddings.jsonl", "package-lock.json"],"essential_files": ["README.md", "package.json", "src/router/index.js"]}
                           
    • •プログラムを実行後は、設定ページでも作業を行えます。

使用方法

  1. アプリケーションを実行します:
                   python CodeSage-Multi.py
                   
  1. ウェブブラウザで http://localhost:8080 にアクセスして、画面右上のフォルダアイコンをクリックします。

Ai_07.png


  1. 参考資料を含むフォルダを追加して、質問に使用するフォルダはチェックボタンをクリックして選択します。選択を終了したら、Back to Homeボタンをクリックしてホームページに戻ります。

Ai_08.png


  1. "Refresh Embeddings"ボタンをクリックして、プロジェクトファイルのエンベディングファイルを作成します。
    • この過程を通じて、参照対象となるすべてのファイルを見つけてベクターに変換し、AIが理解できるよう準備を整えます。
    • 既に処理済みのファイルは、重複処理されません。ボタンを定期的に押して最新の状態を保ってください。
  1. 質問を入力して提出し、AIの回答を受け取ります

注意および参考事項

  • APIキーが漏洩しないよう注意してください。
  • 容量が大きすぎるファイルは、参照文書から除外されます。この点は、今後改善してから配布予定です。
  • テキストファイルのほか、pdf文書のみ対応しています。今後officeファイルなどを追加予定です。

おわりに

今回ご紹介したCodeSageは、単純なプログラムですが、開発者の日常の業務を大きく改善できるツールです。プロジェクト分析、コードレビュー、文書化などさまざまな作業にかかる時間を節約して、効率性向上にお役立てください。


CodeSageプロジェクトは、アップデートとフィードバックを継続して、さらに発展した機能をご提供してまいります。皆様のご意見をお待ちしております。

 

WhaTap Monitoringを体験してみましょう。
難しかったモニタリングと分析が容易に実現できます。