以前のTOPICSで生成AIを使って、REDMINEチケットを自動で整理するようなことを考えていた・・・
pythonでAPI情報を使ったり、裏でCHATGPT-APIでデータ処理をしたり、何かと大変だろうと思っていた
しかしながら、下記の方法であれば、即日実行できることが分かった
1)TICKET一覧をCSVエクスポート
2)生成AIに適当な粒度で整理してと伝える
3)TICKETをインポートする
どうして、こんな簡単なことを思いつかなかったんだろう・・・
具体的な指示例
ChatGPTに渡す際の指示は、以下のようなものが考えられます。
このCSVデータを分析し、以下の条件で整理してください。
1. ステータスごとに分類し、それぞれのステータスにおける件数を表示してください。
2. 担当者ごとにチケットを分類し、それぞれの担当者のチケット数を表示してください。
3. 優先度ごとに分類し、それぞれの優先度におけるチケット数を表示してください。
4. 各チケットの概要欄を要約し、最大30文字で表現してください。
5. 期日が近い順に並び替えてください。
6. 上記の情報をもとに、REDMINEにインポートできるCSV形式で出力してください。
課題
この方法で問題になるのが、作業時間との紐付けが無くなることだ。
解決策としては、やはり一定周期で作業内容の要約を作ることだ。
ログ記録例
2024-08-20 2時間 : 〇〇機能のUI修正, XXコンポーネントのスタイル調整に時間がかかった
2024-08-20 1.5時間 : YYモジュールのバグ修正, DB接続で想定外のエラーが発生、調査に時間を費やした
2024-08-21 2時間 : 〇〇機能の実装, API連携部分で想定外のレスポンスが返ってきた、API仕様書を再確認した
ChatGPTへの指示例
この作業ログを分析し、以下の情報を出力してください。
1. 特定のキーワード(例:「UI修正」、「バグ修正」)を含む作業ログの時間を集計してください。
2. 作業時間が最も長い作業内容をトップ5で表示してください。
3. 各作業内容の所感をまとめ、改善点や反省点を抽出してください。
4. 作業時間と作業内容を基に、今後の見積もり精度を向上させるためのアドバイスをしてください。
作業ログは、自分自身の成長記録や振り返りの材料として活用できる
また、作業ログを蓄積することで、RAGシステムで類似タスクを関連付けて、次のタスクを作らせることもできる
いわゆる、タスク思考型のエージェントにつなげることが出来る
ちなみに、作業内容自体をRAGデータで使うことは、言語ベクトル自体が疎なためお勧めできないが、この方法は密になるのでそれなりに機能する
こういうRAGデータの作り方を「知識蒸留」または「知識圧縮」という
[1] https://note.ambitiousai.co.jp/n/n01070427eee5:
知識蒸留の基本的な概念と、その技術的な詳細を理解するのに役立ちます。
[2] https://qiita.com/heapjp/items/0ff0ef47823f10dbe6c3:
RAGシステムにおける知識蒸留の活用方法や事例について理解するのに役立ちます。
[3] https://qiita.com/applego/items/29546ed50d65bc9a8d56:
知識蒸留の応用例や、具体的な実装方法について理解するのに役立ちます。
RAGシステムにおける知識蒸留の重要性
知識蒸留は、RAG(Retrieval-Augmented Generation)システムの効率と精度を向上させる上で重要な役割を果たします。RAGシステムは、大規模な知識ベースから関連情報を検索し、その情報を基に適切な応答を生成する能力を持っています。
知識蒸留の利点
データの密度向上: 作業ログのような詳細な情報を、より簡潔で意味のある形式に変換します。
検索効率の改善: 圧縮された情報は、ベクトルデータベースでより効率的に検索できます。
関連性の向上: 密度の高いデータは、より正確な意味的マッチングを可能にします。
実践的なアプローチ
あなたが提案した方法は、知識蒸留の実践的なアプローチの一例です。REDMINEチケットの整理や作業ログの分析を通じて、以下のような利点が得られます:
- タスクの効率化: チケットの自動整理により、管理作業が大幅に効率化されます。
- 洞察の獲得: 作業ログの分析を通じて、プロジェクト管理や個人の生産性に関する貴重な洞察が得られます。
- 将来の予測: 蓄積されたデータを基に、将来のタスクの見積もりや計画立案が改善されます。
RAGシステムへの応用
知識蒸留された作業ログは、RAGシステムの強力な基盤となります。
- 類似タスクの関連付け: 過去の経験を活かした効率的なタスク管理が可能になります。
- タスク思考型エージェントの構築: 蓄積された知識を基に、より高度な自動化や意思決定支援が実現できます。
- 継続的な学習と改善: システムは新しい情報を取り込み、常に最新かつ関連性の高い情報を提供し続けることができます。