「BPStudy#194〜生成AIによる要件定義・システムの説明」に参加してきました
2023/10/31(火)に開催された「BPStudy#194〜生成AIによる要件定義・システムの説明」に参加してきたので、その内容と学んだことを共有します。
おことわり
この内容は非公式なものであり、自分なりに整理したものです
以下の内容には誤りが含まれる可能性があります
間違っている部分などがあれば、コメントお願いします
サマリ
RDRAモデルを可視化するツール(RdraGraph)に搭載しているLLM問い合わせ機能の紹介
実験段階ではあるものの、RDRAモデル自体の説明、重要なUC、影響範囲等を調べることができる
問い合わせの仕組みはRdraGraph以外にも活用できる
本イベントについて
RDRAモデル(※1)を可視化したツール(RdraGraph(※2))にあるLLM問い合わせ機能の紹介でした。
(※1)Relationship Driven Requirement Analysis(リレーションシップ駆動要件分析)
(※2)RDRA発案者の神崎さん自作のツールでRDRAの公式ページからダウンロードできます
connpass説明文
発表資料
背景
RDRAモデルを使うことで、システム全体像の可視化や各要素の整合性が取りやすくなった
理想としては、RDRAモデルを中心に要件定義等を進めたいが、RDRAを知らない場合、定義したモデルを読み取るのが難しいという課題があった
RdraGraphの問い合わせ機能
RDRAを知らない人やよりモデルを活用したい人向けに作られた機能です。
まだ実験的な段階ですが、3つの問い合わせ対応があります。
問い合わせ①:表示されているダイアグラムの説明
RDRAモデルを知らない人向けの機能
表示しているダイアグラムの内容をLLMに要約させる(200文字程度)
表示しているダイアグラムを文書化(プログラム)
文書化したものをLLMに要約させる
問い合わせ②:事前に全定義を文書化し問い合わせに応える
LangchainのEmbeddings機能を使って、問い合わせに応えるもの
処理手順
① 事前に全RDRAモデルを文書化して、LLMに読み込ませる
② 読み込ませた内容をもとに問い合わせに応える
問い合わせ内容と事前知識の相性によって、精度が変わってしまうのが難点
問い合わせ③:問い合わせ内容に応じて文書化し回答する
Open AIのFunction Callingを使って、問い合わせに応えるもの
処理手順
① 事前にいくつかのFunctionを用意する
② 問い合わせに応じて、適切なFunctionを選択する
③ 問い合わせ + 選択したFunctionをもとにLLMに問い合わせる
LangchainのEmbeddings機能より精度が高い
問い合わせ機能の活用方法
この問い合わせ機能の活用方法も紹介していただきました。
表示しているRDRAモデルを説明させる
重要なUCを確認する
影響範囲を確認する
まだ精度面が課題ですが、LLMを活用できれば、RDRAをより効率的に活かせることができるとのことでした。
また今回紹介した問い合わせの仕組みはRDRAモデル以外にも活用できるとのことです。
所感
今回の講演を聞いて、確かにRDRAを知らない人にどうやって説明しようか迷っていたのでとても便利な機能だなと思いました。
またLLMを活用することでもっと要件定義が容易にできるるんだなとも感じたので、徐々にLangchainとかも触ってみようかなとおもえる会でした。
補足
RdraGraphの注意事項
LLM問い合わせ機能を使うには、OpenAI APIが必要
Local Storageを使った機能のため、適宜クリアした方が良い
RdraGraphの問い合わせ機能を試してみた
RdraGraphでAPIキーを登録後、問い合わせを試してみましたが、エラーになってしまいました。。
登録の仕方が悪いかもしれませんね。。
{
"error": {
"message": "You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.","type": "invalid_request_error",
"param": null,
"code": null
}
}