RedMicaのチケット起票をAIと連携して行うPythonプログラム
第25回redmine.tokyo勉強会
2023年 11月 4日

大和田 裕

POfficeO

Copyright© 2023 POfficeO, All rights reserved.

自己紹介
名前： 大和田 裕
本名： 山嶋 裕
仕事： • 長年（1979～2021）ソフトウェアの設計・開発・運用・保守、プロジェクト管理を行っていました。
屋号: POfficeO• 現在は、フリーランスのIT屋 URL: https://pofficeo.com
ITアドバイザー/ソフトウェア開発－定量的プロジェクトマネジメント－プロジェクト見える化－ソフトウェアソリューション
1979-1982 日本タイムシェア株式会社 （現：TIS）
1982-1999 日本IBM株式会社 大和研究所
1999-2002 日本チボリシステムズ株式会社 (現：日本IBM)
Tivoli Systems inc. Asia-Pacific (現：IBM Corp.)
2002-2011 アットネットホーム株式会社 （現：JCOM）
2011-2013 独立行政法人 情報処理推進機構 (IPA) 非常勤研究員
2012-2016 一般社団法人 実践的プロジェクトマネージメント推進協会
株式会社オリジネィション R&Dセンター
2016-2021 株式会社オープンストリーム
POfficeO

Copyright© 2023 POfficeO, All rights reserved.

1

Redmineとのかかわり• そもそもは、IPAの定量的プロジェクト管理ツール【EPM-X】• その後は、製品版の【EPM-Base】• redmine.tokyoの立上げからのスタッフ• redmineエバンジェリストの会
その他：IPAの連携委員もやってました

POfficeO

Copyright© 2023 POfficeO, All rights reserved.

2

履歴 作成の動機⚫ RedmineとChatGPTの連携ってどうなんだろう？
→ ChatGPTにRedmineチケットを作成させ、起票する

 Trial Version⚫ OpenAI API
 Version.0⚫ Selenium + ChatGPT on Google Chrome Version.1⚫ Python-Redmine + Selenium + ChatGPT on GoogleChrome⚫ redmine.tokyo勉強会にてLTとデモ (2023/6/3)
 Version.2⚫ Python-Redmine + Miibo⚫ REDMINE JAPAN vol.3にてセッションとデモ (2023/7/7)
POfficeO

Copyright© 2023 POfficeO, All rights reserved.

3

Version.2の概要
 機能⚫ AI(Miibo)を使ったチケット作成支援• 要約or補完された題名・説明• チケット優先度の設定• スキルセットを考慮した担当者のアサイン⚫ AIを使った類似チケットの検索⚫ RedMica新規チケットの起票
おまけ：RedMicaの既存チケット情報をMiiboナレッジデータストアに格納する為のCSVファイルを生成（別プログラム）

 環境⚫ OS: Windows 11⚫ RedMica 1.2 (Stand Alone)⚫ Miiboホビープラン (API, ナレッジデータストア)⚫ 言語： Python 3.11•

Flet, requests, Python-Redmine⚫ IDE: PyCharm Community Edition
POfficeO

Copyright© 2023 POfficeO, All rights reserved.

4

概要図
Miibo
GPT-3.5 turbo
データストアMiibo
ナレッジデータストア

チケット情報登録

・プロンプト
・状況情報
・修正情報
・問合せ
・回答

Miibo API

連携
プログラム

スキルセット登録

スキルセットREST API

・状況入力
・修正入力
・問合せ

・プロジェクトメンバー
・新規チケット登録
・作成チケット番号

Redmine DB

RedMica
POfficeO

Copyright© 2023 POfficeO, All rights reserved.

5

スキルセット登録例
山嶋裕

プロジェクトマネージャー。客先との調整が上手い。

山田二郎 プロジェクトマネージャー。チームをまとめることが上手い。
田中実

開発者。入社２０年目のベテラン技術者。技術レベルが高く、設計から運用までこなせる。

佐藤清

サーバーエンジニア。入社５年目の技術者。

高橋洋

サーバーエンジニア。入社１０年の中堅技術者。サーバーの構成・設定が得意。

山田りん

開発者。入社５年目の技術者。バグの発見・解析が得意。

鈴木茂

開発者。入社１０年目の中堅技術者だが、技術レベルはまだ低く得手不得手が多い。自分が興味を持っている技術以外は不得手。

佐藤和子 入社1年目の新人。技術はこれからだが、チームの秘書的な役をしている。

POfficeO

Copyright© 2023 POfficeO, All rights reserved.

6プロンプト
以下の形式で答えてください。
-プロジェクト:-トラッカー:
-題名:
-説明:
-担当者:
-優先度:
-予定工数:-開始日:-期日:
予定工数は正の正数で、単位は時間です。
予定工数と開始日と期日は、答えがなければ"なし"としてください。
開始日、期日はyyyy/mm/ddの形式です。
担当者は、情報中で担当者と考えられる名前かIDがあれば担当者として使いますが、無い場合は、プロジェクト・メンバーの中から一人を、ナレッジデータストアの情報をもとにあなたが決定します。
担当者は、姓名だけを答えます。一人に決められない場合は、"なし"と答えます。
既に回答した内容と重複していても、もう一度新規に作成します。
POfficeO

Copyright© 2023 POfficeO, All rights reserved.

7

プログラム構成
プロジェクトRAIConstants.py

定数定義

RedmicaAI.py

メイン・クラス、プログラム＆画面制御

RAIConfig.py

設定ファイル読込、実行環境の設定

AIOperate.py

AI(Miibo)操作クラス

RedmicaOperate.py

RedMica操作クラス

config.ini

実行環境設定ファイル

Init_AI.template

AI(Miibo)に設定する項目テンプレート・ファイル

slack_map.csv

SlackIDとRedmicaIDとのマッピング・ファイル

クラス図

POfficeO

Copyright© 2023 POfficeO, All rights reserved.

8

感想 プロンプトエンジニアリングの重要性⚫

期待する形式・文言での応答を引き出すプロンプトの作成。

 効果⚫
⚫
⚫

与える情報が少なくとも、ある程度補完された答えが得られる。
使えば使う程、より精度の高い答えになる、とは思う。
既存チケット情報が集る程、補完された答えになる、とは思う。

 セキュリティ⚫
⚫

API経由なので、公開ChatGPTの学習には使われないはず。
既存チケット情報やスキルセットは、ナレッジデータストアを使っているので、他からは見えないはず。

 次ステップの候補⚫

POfficeO

チケットの更新支援、チケット進捗の自動化、Slackやメールとの自動連携、プロジェクト計画作成支援、
Google Bard（Vertex API or PaLM API）....。
Copyright© 2023 POfficeO, All rights reserved.

9

ご清聴ありがとうございました

POfficeO

Copyright© 2023 POfficeO, All rights reserved.