CHATGPT便りの開発方針　仕事で使うREDMINEに関する考察(16)

https://qiita.com/EasyCording/items/6fe972110b39117b91ae

# 始めに
　CHATGPTを使うとIT関連の問題はほとんど解決するので、これからは手順をいちいちマニュアルを作る必要もなくなり、しいて言えばCHATGPTへのプロンプトの入れ方ぐらいをマニュアルにする程度に業務のあり方も変わってくると予想される。
　例えば、REDMINEにユーザー任意の機能を追加したいと思った場合にも、CHATGPTにプロンプトを入れて、出てきた回答をコピーペーストすれば完了という風に、機能追加方法のマニュアル内容も大きく変わるだろう。

# 検討内容
　現在、検討しているのは、CHATGPTを使って、チケットに記載された内容に対して、ほぼ３６０度
方向から攻めてくるユーザーのオンデマンド欲求にどう対処するのか？　と言う、利用者目線に立った時に、いかにユーザーがやりやすい方法があるのか？の机上検討である。

　いまはRedmine view customizerを使っているが、基本的にはチケットをもらって、まず担当者レベルでやりたいと思える想定ニーズを考えてはいるが、この自分でさえも「拡張しにくいなあ・・・」と思ったことは、３００％他人にはできないのである。普通のＩＴ企業なら、最初はやりにくくても、そのうち周りが助けてくれて、物事は進むだろうという楽観論が先行するが・・・自分の周りは、絶対に無理だと思わざるを得ない悲しい大手上場企業の知財部にいる。

# やってみたこと（ Todoリスト）
　TODOリストを返すAPI部分は、前回の投稿でも書いた。　https://qiita.com/EasyCording/items/6fe972110b39117b91ae
　しかしながら、回答結果をREDMINEに表示させる部分で、はたと手が止まってしまった。

　Redmine view customizer にはJAVASCRIPTを書ける箱があるが、難点としてはHTMLのソースを見て、DOM要素をいちいち見てIDを記載したり、chromeのデバッガーでいちいち動作検証をしないといけない点である。
　加えて言えば、今回はチケットからTODOリストを作ろうとしているが、実際のところはプロンプトでCHATGPTに指示して、出された提案を確認したうえで、最終処理は自分で実施するというのが落としどころになる（現時点ではあくまでＡＩの主体は人間にあると考える人が大半なので）。
　そうなってくると、入力と出力のインタフェイスがさらに重要度を増してくる。ある程度の定型業務がある人には、プロンプトを打ち込むのが面倒なので、ある程度の選択ＢＯＸのようなもので型を作ってあげる方が良い。
　もちろん指示を受け入れる側のCHATGPTは万能なので、あらゆるニーズにも対応できるスキルは備えている。せっかくのCHATGPTであるので、本来の自由度を殺してしまうのも、いささか疑問なのであるが・・・
>Redmine view customizerのJavaScriptボックスを使うことによる問題点について、そしてChatGPTとのインタラクションについて理解しました。以下に私の見解を述べさせていただきます。

* DOM要素の検証：DOM要素のIDを手動で確認して記述する作業は、エラーが発生しやすく、また時間もかかります。これは開発者が一般的に避けるべきであり、より効率的な方法を探すべきです。例えば、JavaScriptフレームワーク（React, Vue.jsなど）を使用すると、DOM操作を抽象化でき、直接IDを扱う必要が減ります。

* 人間主体のAI利用：現在のAI技術では、人々が主導的な役割を果たすことが大半です。AIはあくまでツールであり、最終的な決定を下すのは人間です。そのため、AIと人間のインタラクションをスムーズにするインターフェースの設計は非常に重要です。

* 入力・出力インタフェース：プロンプトを手動で入力するのは時間がかかります。選択ボックスのようなGUIを提供することで、ユーザー体験を向上させることができます。しかし、このアプローチはAIの柔軟性を制限する可能性があります。

* CHATGPTの自由度：CHATGPTは高度な自由度を持っていますが、それを制約するGUIを設計することは疑問です。一方で、特定のタスクに対する適切なガイダンスを提供することで、ユーザーはより効果的にAIを活用できるかもしれません。

>このような観点から考えると、最適な解決策はおそらく、定型的なタスクにはGUIを提供しつつ、より複雑なニーズに対応するために自由なテキスト入力を可能にする、というバランスを取ることだと思われます。

# 対策
　最初はRedmine view customizerで全部やろうと思ったのであるが、上記のような自由度をredmine側に押し込んでしまうことも、ユーザー（ＩＴキーマン）を悩ませるだけなので、やはり専用のREDMINEオンデマンドサーバーのAPIエンドポイントを作った方が良いだろうという結論に達した。
　幸いのことであるが、Redmine view customizer にはHTMLソースを埋め込むことが出来る。これであれば、回答自体もバックエンド側でHTML生成すれば良いので、完全にサーバー側の拡張で何とかなる。この辺りは、今後の社内ＤＸ等でも課題になってくると思うが、要するにユーザー自身がAPIエンドポイントを自由に設計したいニーズが必ずやってくるのである。
　
## エンドポイントの工夫
　今のところはバックエンドのコードはVSCODEで編集して、CHATGPTプラグインなどを作って開発すれば良いだろう。今回のTODOリストであれば、function callingを使ってLIST（もしくはJSON化）で、HTMLへ埋め込んでRESPONSEを返す。この時に、二回目の処理としてはユーザーに対して「登録」ボタンを押させるような処理をさせて、REDMINEチケット系のエンドポイントで処理を行う。もちろんプロンプトを変えて、同じCHATGPTのAPIにPOSTしても良いが、そうなると無限にfuncion callingが膨らんでいくのが想像されるので現実的ではない。
　ひとまずメンテナンスを含めると、プロンプトエンジニアと、コントローラーのエンジニアは別と考えた方が良いので、CHATGPTプロンプト系処理と、REDMINEチケット系の処理は、別のエンドポイントとした方が良い。

## 開発方法
　個人的には、やる気のある人には、pythonを覚えてもらい、この辺りをゴニョゴニョしてもらうことを期待する。コードもプロンプトのひな形だけ作ってあげれば、CHATGPTが何とかしてくれるようにも思う。自分自身もそこはあやかりたいところ・・・
　次に一般人の場合は、コードさえ見たくない・・・と言うのが大半である。そうなると世の中の流れは、すべてCHATGPTに指示を出すだけで、エンドポイントが拡張されて、知らない間にCHATGPTから「追加機能が完了しました～」のような状態になっているのが、究極のＤＸじゃないのかと思ってしまう。
　少なくとも、現状ではテストコードを開発する専用のHTMLサーバー、できればノーコードでＧＵＩベースでゴニョゴニョみたいなのが落としどころにはなるだろう。

>あなたの考え方は、現代の開発パラダイムと一致しています。Pythonを覚えてもらうことで、より多くの人々が開発プロセスに参加できます。また、ノーコード/ローコードのアプローチは、プログラミング経験が少ない人々でも自分のアイデアを形にすることができます。

以下に、あなたの見解に基づいて提案された戦略を示します：

1. Pythonの学習
Pythonは覚えやすく、実用的な言語であり、初めてコーディングを学ぶ人々にとって理想的です。Pythonを使えば、開発者はCHATGPTの機能拡張を行うことができます。

2. CHATGPTの活用
CHATGPTを利用することで、ユーザーは自分の要求を伝えるだけで、必要な処理を行うことができます。これはDX（デジタルトランスフォーメーション）の究極の形態と言えるでしょう。

3. ノーコード/ローコードツールの使用
ノーコード/ローコードツールを使用することで、非技術者でも自分のアイデアを形にすることができます。これにより、テストコードを開発したり、HTMLサーバーを設定したりする際の障壁が低くなります。

以上のように、適切なツールと教育を提供することで、より多くの人々が開発プロセスに参加できます。

# まとめ

* CHATGPTのRESPONSEはHTMLに返して、そのまま　Redmine view customizer　にHTML要素を生成する
* BACKEND開発用に、VSCODE以外のノーコードツールが使えないかを検討する
　# 参考
- Redmineに関連する記事
1. [仕事で使うREMINEに関する考察（１９）](https://qiita.com/EasyCording/items/6ca2cb52a654df882598) 
2. [WIKI一発記入　仕事で使うREDMINEに関する考察(18)](https://qiita.com/EasyCording/items/a7d6adc1ab5b1d41a95f) 
3. [CHATGPTにてRedmine view customizerのHTML要素を生成する(4)](https://qiita.com/EasyCording/items/e04b73d185bb406cdf7a) 
4. [チケット運用の盲点　仕事で使うREDMINEに関する考察(17)](https://qiita.com/EasyCording/items/f1a802a1b8c334c34828) 
5. [CHATGPTにてRedmine view customizerのHTML要素を生成する(3)](https://qiita.com/EasyCording/items/752332e2883ce666460c) 
6. [CHATGPTにてRedmine view customizerのHTML要素を生成する(2)](https://qiita.com/EasyCording/items/90e2708aadcd3c1ae917) 
7. [CHATGPTにてRedmine view customizerのHTML要素を生成する(1)](https://qiita.com/EasyCording/items/6740c3ba7117ee18c2a9) 
8. [CHATGPT便りの開発方針　仕事で使うREDMINEに関する考察(16)](https://qiita.com/EasyCording/items/cab4dbb6c36820727f69) 
9. [チケットからTODO作業へ落とし込み　仕事で使うREDMINEに関する考察(15)](https://qiita.com/EasyCording/items/6fe972110b39117b91ae) 
10. [仕事で使うREDMINEに関する考察(14)](https://qiita.com/EasyCording/items/a76b7fe02f8d5ecefe5e) 
11. [CHATGPT利活用　仕事で使うREDMINEに関する考察(12)](https://qiita.com/EasyCording/items/857b7cf12b7dd091ff82) 
12. [やりたいことを少しずつ　仕事で使うREDMINEに関する考察(11)](https://qiita.com/EasyCording/items/b9d939a861c06bb57f18) 
13. [組織を巻き込むプレゼン資料　仕事で使うREDMINEに関する考察(10)](https://qiita.com/EasyCording/items/605a860e5a4d66011747) 
14. [OfficeのフローにREDMINEをねじ込む　仕事で使うREDMINEに関する考察(9)](https://qiita.com/EasyCording/items/e63cbe486b08f99e1702) 
15. [RedmineチケットにCHATGPTを実装（超簡単）](https://qiita.com/EasyCording/items/20439251ad82d492d654) 
16. [RedmineのチケットにCHATGPTを実装（２）](https://qiita.com/EasyCording/items/3df63dcbb7e1f9f2d14e) 
17. [Office365からRedmineへのメール送信してチケット登録](https://qiita.com/EasyCording/items/3176b4020954e2eddbb6) 
18. [Redmineプラグイン開発](https://qiita.com/EasyCording/items/5e837a3425d3df8bfb0c) 
19. [RedmineをTODOリストに使う　仕事で使うREDMINEに関する考察(8)](https://qiita.com/EasyCording/items/bbf470b09a08d06b87f3) 
20. [仕事で使うREDMINEに関する考察(7)](https://qiita.com/EasyCording/items/3260595d70a86c21308e) 
21. [仕事で使うREDMINEに関する考察(6)](https://qiita.com/EasyCording/items/c2c3a5850941f45d1317) 
22. [仕事で使うREDMINEに関する考察(5)](https://qiita.com/EasyCording/items/f46ce0718f005f8b4d96) 
23. [仕事で使うREDMINEに関する考察(4)](https://qiita.com/EasyCording/items/e2f6fffde3d8e0a0012b) 
24. [仕事で使うREDMINEに関する考察(3)](https://qiita.com/EasyCording/items/44dd27c6b897b0d7d82b) 
25. [仕事で使うREDMINEに関する考察(2)](https://qiita.com/EasyCording/items/7f8fbba0553635a7421d) 
26. [仕事で使うREDMINEに関する考察](https://qiita.com/EasyCording/items/c3b62c9e5ca3f0cc379f)