2023年7月18日火曜日

ChatGPT Plugin : ベクトルデータベースに挑戦 その3

前回の続きです。

作成したAPIをChatGPT Pluginとして使ってみましょう。

プラグインデベロッパーアカウントでは、自分で作成したプラグインをインストール可能です。Plugin storeの画面から「Develop your own plugin」をクリックします。


今回のAPIはサーバーへデプロイはしておらず、ローカルPCで動作していますので「localhost:5003」と入力します。

マニフェストファイルとYamlファイルが正しく認識されるとPluginがインストール可能になります。



早速、使ってみましょう。


質問 : データベースを定義する方法を教えて下さい。GeneXus wikiで調べてください。

回答 : 以下に、GeneXusのデータベース定義に関連する情報を提供します。

1.Commit on Exit property : この記事では、GeneXusが各トランザクションと各手続きに対して提供するプロパティについて説明しています。これは、生成されたプログラムが自動的にCOMMITを実行するかどうかを定義するためのものです。

2.For in command : この記事では、配列やコレクションを走査するためのFor inコマンドについて説明しています。

3.Extended Table : この記事では、Extended Tableという概念について説明しています。Extended Tableは、特定のBase Tableに位置しているときに、複数のテーブルへのアクセスを簡素化するためのものです。

これらの記事は、データベースを定義する方法に関する一般的な情報を提供しますが、具体的な手順や例については、GeneXusのドキュメンテーションやチュートリアルを参照してください。


う~ん、ちょっとイマイチな回答ですね。いまいちというか、全然当たっていないですね。プラグインの挙動を確認してみます。プラグインが動作表示している右端をクリックして展開してみると、リクエストに対してレスポンスは返ってきています。
リクエストの内容もちゃんと英語に翻訳されています。
ただ、レスポンスであるベクトル検索の結果が
・Commit on Exit property
・For in command
・Extended Table
となっていて、ChatGPTの回答はAPIレスポンスをそのまま回答に使っている事が判ります。




他にもいくつか試してみした。





どれもイマイチですね。ベクトル検索の精度が悪くてChatGPTも取得した文章をそのまま表示しているだけですね。
素人がいきなり精度を出せるわけ無いか。。どうやったら精度が上げられるかちょっと考えてみます。
では。







2023年7月12日水曜日

ChatGPT Plugin : ベクトルデータベースに挑戦 その2

前回の続きです。

作成したベクトルデータベース(Cosmos DB)の中身はこんな感じです。


1レコードの内容がまるっとテキストデータでJSON形式で格納しています。「embedding」項目の値として小数値が配列となっています。これが文章をベクトル化した結果です。

では、このデータベースを使って検索するプログラムを作成します。

検索処理ですが、通常のRDBのようにDB側で検索するのでは無く、一旦DBからベクトル値を全レコード分抽出した配列と、質問文章をベクトル化したものを、比較=コサイン類似性(Cosine Similarity)計算します。


以下はデバッグで出力した計算結果の配列値です。データベースには70(文書)レコード登録してあるので計算結果も問合せ文章と70レコードを比較した70個の数値配列になります。
値の大きい方(1に近い方)がベクトルとして同じ方向(=文脈が近い)にあり、小さい方(-1に近い方)がベクトルとして逆方向(=文脈が遠い)にあります。
この計算結果を昇順にソートし、上位から必要なレコードを取得します。

以下、検索処理のPythonコードをChatGPTに解説して貰った内容です。

このPythonコードは、Azure Cosmos DBに保存された文書データを検索するWeb APIを提供します。具体的には、OpenAIのEmbedding APIを使用してクエリと文書のベクトル化を行い、それらのコサイン類似度を計算して最も類似度が高い文書を返す機能を持っています。以下に、コードの主要な部分を段階的に解説します。

  1. 環境変数の設定: .env ファイルから環境変数を読み込み、OpenAI APIキーとAzure Cosmos DBのURLとキーを設定します。
  2. WikiDocumentクラス: このクラスには、テキストを指定したトークン数に分割するsplit_textメソッドと、指定したクエリに最も類似した文書を検索するsearch_documentメソッドが含まれています。
  3. Web APIの定義: Quartとquart_corsを使用してWeb APIを定義します。/gxwiki/search/<string:query>エンドポイントは、指定したクエリに最も類似した文書を検索し、その結果をJSON形式で返します。また、/.well-known/ai-plugin.jsonと/openapi.yamlエンドポイントは、それぞれAIプラグインのマニフェストとOpenAPI仕様を返します。
  4. main関数: この関数では、Azure Cosmos DBから全ての文書を読み込み、それらのベクトルを_docs_vectorsリストに保存します。その後、Webアプリケーションを起動します。
  5. エントリーポイント: ファイルが直接実行された場合、main関数が呼び出されます。


検索処理はChatGPT Pluginsとして呼び出されますので、Webサービスとして動作するように実装しています。PythonのWebフレームワークであるQuartを使用しています。
プログラムを実行するとプロセスとしてリクエストを待機します。


APIが出来上がったら、後は前回と同様にChatGPT Pluginとして使用するのに必要なマニフェストファイルとYamlファイルを準備します。

・ap-plugin.json

・openai.yaml
 英語の文章を元にベクトル化をしていますので、日本語の質問文章ではマッチしません。検索用API側で日本語→英語翻訳をしてもいいのですが、せっかくChatGPT Pluginとして動かすので、ChatGPT側で翻訳を行ってもらうようにdescription項目に「Query string must be English. Could you translate it before search」と入れました。

これでPluginの完成です。

次回は実際に使ってみましょう。
では。

2023年7月5日水曜日

ChatGPT Plugin : ベクトルデータベースに挑戦 その1

 ChatGPTを使う上でモデルが学習していない情報(特に最新情報[2021年9月以降])や特定分野の情報)をどうインプットさせるか? は当初の課題でした。それが(有償ユーザーに限りますが) WebブラウジングやPlugin機能が解放されることでピンポイントで情報を取得する事ができ、ChatGPT上で出来る事が飛躍的に増えました。

私の立場としてはGeneXusの技術情報に関する問合せ(セルフトレーニング)やコーディングなどをChatGPTで実現する事ができるか? というのが直近の目標だったりするのですが、JavaScriptやPythonといった十分にモデルが学習済みの技術であればそれも容易なのですが、いかんせんGeneXusというマイナー技術では、なかなか思う様な結果を得ることが出来ないのが現実です。

という事で、次に考えたのは、GeneXus技術情報に特化したプラグインで、問合せの内容を元に文脈的に近い情報をwikiページから取得しモデルに返すことで、より精度の高い回答をChatGPTが出来ないか? というものでした。

問合せの内容から独自のデータを利用してモデルに検討させるのは、最近ではAzure OpenAI サービスにてAdd your dataという機能があります。まだプレビュー版でありますが、これを使うと例えば自社のドキュメントをインプットしておく事で、とり業務に特化した質問に対する回答を得られることができるというものです。

今後も次々にこういった機能やサービスがリリースされてくるでしょうから、自前で作る事にあまり意味はないのかもしれませんが、エンジニアとしては早期に取り組むという事と、実際の技術的なポイントを押さえておきたくてトライしてみました。

その中で情報収集・検討・トライ&エラーした結果として要約したポイントです。

  • 検索対象となる文書のデータベース化
    • GeneXusの技術情報をデータベース化するので、英語版wikiを対象に考えます。
    • データベースはRDBではなく、以下の理由でベクトルデータベースを使用したいのですが、私もビギナーなのでまずはNoSQLであるAzure Cosmos DBを使用し、ベクトル化は自前で行う事にします。(このあたり、正式なベクトルデータベースではベクトル化機能自体備わっているのか?といった事もよくわかっていません(笑)
    • GeneXusもバージョン18U3からCosmos DBをサポートしてきていますので、今後の技術取得の意味も含めて選択しました。
  • 質問の文脈に沿った検索方法
    • 一般的なデータベース(RDB)ではキーワードを元にした部分一致検索などがありますが、ユーザーがどんな質問をするかわらかないChatGPT上では、文脈的に一致するか? という観点での検索が必要になります。
    • この検索を実現するのがベクトルデータベースです。ベクトルデータベースとは、対象となる文章を元にベクトル計算を行い数値化し、データベースに保存しておきます。
    • 一方、問合せ時の質問文もベクトル計算を行い数値化し、ベクトルデータベースに格納されているベクトル値と比較する事で、文脈的に近しい文書を見つける。というものです。
    • 今回はベクトル値同士をコサイン類似性(Cosine Similarity)計算をしてレーティング値を出し、そのレーティング値の高い値を文脈の近い文章として捉えます。
    • コサイン類似性では値が-1~1の間で表され、
      • 1は同じベクトル(0度)で完全に似ている
      • 0は直交(90度)で似ている・似ていないのどちらも無関係
      • -1は逆向き(180度)で似ていない
    • と判断します。
  • ChatGPTに返すデータの量
    • モデルに精度高く考えさせるには多くのデータを渡す方が良いですが、現在はトークン数に限りがあり、より多くのトークンが利用出来るモデルはその分コストも高くなっています。
    • 長い文章の場合は、モデルに要約させる事も可能ですが、技術的な情報では予約によって切り捨てられてしまうと不都合になる情報もあります。
    • この様にどの程度の量の情報を渡せばコストや制限に引っかからず、且つ、精度が高い処理を行って貰うことが出来るのか? は今すぐ答えが出てくる問題ではありません。
では、実装です。今回はかなりトライ&エラーが必要だと思っていたので、GeneXusではなくPythonを使って開発しました。私自身PythonはChatGPTを使うようになってから勉強し始めた言語です。文法やライブラリの調査、使い方のレクチャー、実行時エラーの原因解析と対処などなど、ChatGPTのお陰で短期で作る事が出来るようになりました。が、まだまだマスタしたというレベルではありません。超ビギナーですが、新しい言語に触れるのは幾つになっても楽しいです。(笑)

まずはデータベースの準備です。AzureでCosmos DBアカウントを作成し、データベース→コンテナと順番に作成します。


次にPythonプログラムです。最初はベクトルデータベースを構築する処理です。wikiサイトからhtmlを取得し、テキストを抜き出し、文章を元にベクトル計算をし、Cosmos DBに保存します。インプットとしてはURLを記載したjsonファイルを用意しました。

Pythonのソースコードを書きますが、超ビギナーのコーディングなので掲載はやめておきます(一部だけ掲載)。代わりにソースコードをChatGTP経由で解説してもらった内容を掲載します。

このPythonコードは、ウェブ上のドキュメントを取得し、それらをAzure Cosmos DBに保存するものです。具体的には、Wikipediaの記事を取得し、それらの記事をOpenAIのAPIを使用してベクトル化し、その結果をAzure Cosmos DBに保存します。以下に、コードの主要な部分を段階的に解説します。
  1. 環境変数の設定: このコードは、.envファイルから環境変数を読み込みます。これにはOpenAIのAPIキーとAzure Cosmos DBのURLとキーが含まれます
  2. WikiDocumentsクラスの定義: このクラスは、Wikipediaのドキュメントを取得し、それらをベクトル化し、結果をJSONファイルに保存するためのメソッドを提供します。
    • split_textメソッド: このメソッドは、テキストを単語に分割し、それらを指定された最大トークン数を超えないようにチャンクに分割します。
    • getWikiDocumentsメソッド: このメソッドは、指定されたURLからWikipediaのドキュメントを取得し、それらのドキュメントをOpenAIのAPIを使用してベクトル化します。結果はJSONファイルに保存されます。
    • compute_hashメソッド: このメソッドは、指定されたURLからハッシュ値を計算します。これは、Cosmos DBに保存する際のパーティションキーとして使用されます。
    • saveCosmosDBメソッド: このメソッドは、JSONファイルからドキュメントを読み込み、それらをAzure Cosmos DBに保存します。
  3. Mainクラスの定義: このクラスは、WikiDocumentsクラスのインスタンスを使用して、ドキュメントの取得と保存のプロセスを制御します。
  4. メインの実行部分: ここでは、WikiDocumentsクラスとMainクラスのインスタンスを作成し、ドキュメントの取得と保存のプロセスを開始します。

これでベクトルデータベース(もどき)の完成です。

続きは次の記事で。では。




2023年6月30日金曜日

ChatGPT PluginをGeneXusで作ってみた。その2

 先日作成したChatGPT Pluginをあれこれ使ってみて気が付いた事を書きます。

TodoプラグインのTodo取得APIはユーザー名のフィルタリングだけで、他には特に機能的なものは実装していません。シンプルなリストデータを返すAPIです。

しかし、ChatGPT自体がデータ処理が可能なので、要求(プロンプト)に応じてAPIの機能に無い処理をしてくれます。

・Todoの期限ごとにカウント表示


・完了済みのTodoは除外して表示


・直近の期限のTodoを表示


・期限でソートして表示


・表形式で出力




こうなってくると、プラグイン側で実装する機能範囲と、ChatGPT側で処理をしてくれる範囲の境界線をどう考えたら良いのか? ある程度経験値が溜まらないとパッと判断するのは難しいですね。

もしくは、そんなに難しく考えない方がよいのでしょうか? 最初はゆるい感じでプラグインを作っておき、テストしながらChatGPT側で難しそうor重そうな場合はプラグイン側に寄せる。といったチューニング的な感じで進めるのが良いのでしょうかね。

では。

2023年6月27日火曜日

ChatGPT PluginをGeneXusで作ってみた。

 ずいぶん前に申請していたChatGPTのPlugin developerがようやく招待されたので試してみました。


まずはPlugin Quick Startとして公開されているサンプルを使って実装しました。ソースは以下のGithubになります。(実装および動作確認はここでは省略します)

https://github.com/openai/plugins-quickstart

サンプルがうまく動作したら、同じものをGeneXusを使って実装してみました。サンプルでは登録したTodoデータはメモリ上にしか保持しない仕様になっていますので、サービスを再起動するとデータは失われてしまいます。GeneXusで同じ機能を実装するのであれば、Todoデータはデータベースに登録しておきたいですよね。

という事で、ナレッジを新規作成したらまずはTodoトランザクションを定義します。


  • 主キーはユーザー名+TodoNoの複合キー
  • Todo(Description)以外に完了予定日(DueDate)、完了フラグ(IsDone)、完了日(DoneDate)を追加

続いてAPIオブジェクトを作成し、I/Fを定義します。


サンプルでは、Todo一覧取得、Todo登録、Todo削除だけでしたが、DB化するのでTodo更新機能も追加し、Todo内容の変更や完了登録が出来るようにします。

あとは、それぞれのAPIに対応するプロシージャオブジェクトとパラメータであるSDTを作成します。このあたりは通常のGeneXus開発と変わりませんので、内容の紹介は割愛しますが、サンプルと比較して違う点だけ書き留めておきます。

  • サンプルでは機能ごとにHTTP Methondを指定していました。例えば、Todo削除はDELETEなど。GeneXusのAPIオブジェクトでもRestMethodのアノテーション記述が出来るのですが、DELETE指定の場合、ChatGPTとの連携がうまく出来ませんでした。従って、上記のAPIオブジェクト定義では登録・更新・削除は全てPOSTにしています。
  • サンプルのTodo登録機能では、ユーザー名はHTTPパラメータ、TodoはPost valueと使い分けているのですが(HTTPパラメータはURLRewriteでパス(=ユーザー名)にマッピングさせるため)、GeneXusのプロシージャオブジェクトは、パラメータは全てPost valueになるのと、ユーザー名はプリミティブ変数、その他Todo項目はSDTという複数パラメータがうまく認識されなかったので、送信データは全て一つのSDTに纏めています。



基本的には以上でプラグイン機能の出来上がりです。ビルドしてPostMan等のRestテストツールで動作確認をします。


次にChatGPT Pluginとして登録するのに必要なファイルの定義です。

  • マニフェストファイル(ai-plugin.json)
    • ChatGPTがPluginをインストールした時に読み込むファイルで、Pluginの基本的な説明と、APIの定義情報が書いてあるyamlファイルの場所、ロゴ画像ファイルの場所が記述してあります。こちらはほぼサンプルと同じ内容で場所の指定のみPluginを配置するサーバーの内容に変更しました。
  • yamlファイル(openapi.yaml)
    • APIのインターフェース定義がされているyamlファイル(Open API Documentフォーマット)です。
    • 今回、一番ハマったのはこのファイルでした。yamlファイルはGeneXusでもAPIを作成するとビルド時に自動生成してくれますが、フォーマットは同じでも記述内容が微妙にChatGPTが要求するものと違っており、トライ&エラーで動作するようになりました。以下、ポイントです。
      • operationId GeneXusが生成する内容は「APIオブジェクト名.API名_メソッド」という書式ですが、ChatGPTでは「.」ドットは受け付けておらず、アンダースコアに変更する必要がありました。
      • schema  パラメータをSDTとして定義する場合、GeneXusはyamlの定義をAPI定義→(参照)→パラメータ定義→(参照)→SDT定義(JSONオブジェクト)という風に三段階の参照($ref)で定義します。これがChatGPTでは認められず、二段階(一つの参照のみ)に変更する必要がありました。且つ、type:objectが不足していましたので、こちらも手動で追加しました。
      • description ChatGPTがどうPluginを使うか? はdescriptionの書き方に依存します。特にパラメータとなる各項目の説明は単に名称だけだとこちらの想定通りの挙動にならず(もちろん、名前から推測はしてくれますが)、特に更新や削除をする時に主キー項目は、「データ取得時の主キー項目を使い回すように」といった念押しのような説明の記載をしないと、ChatGPTが適当な値を主キーとして設定するため、更新が空振りしてしまう事態となりました。
  • アイコンファイル
    • Pluginリストや選択時のPluginを識別するためのアイコン画像です。今回は、サンプルにあったTodoアイコンの背景画像をGeneXusっぽく赤色に変更したものを使ってみました。

Pluginに必要なファイルが出来たらデプロイしたアプリの然るべき場所に配置します。

いよいよ、ChatGPTにPluginをインストールします。Plugin developerとして認証されると、Plugin storeにオプションが増え、未認証のPluginや自分で開発したPluginを自由にインストール・使用する事ができるようになります。Pluginをデプロイしたurlを指定します。(Pluginの呼び出しはブラウザ上で行われているようで、localhostも指定出来ます)




では、使ってみましょう。


この様に、TODOリストの一覧表し、登録、更新、削除が会話ベースで行えます。さらに、今回のPluginはユーザー名を主キーとしてテーブルを作成してあるので、ユーザーを切り替えて使う事も出来ます。(認証の仕組みは作っていないので、自動的な設定は出来ていませんが)



色々と試してみて判ったのは、ChatGPT自体が代名詞や文脈を理解するので、Todo情報を正確に記載しなくても「期限は来週月曜日」とか「完了日は昨日」といった指示する側が日常会話レベルの内容でも正しく動作してくれるのがAIらしい使い方だと思いました。


テキストベースではありますが、自然言語でPluginアプリが操作できるという事は、例えばスマホの音声入力を使えば、いちいちキーボーとから打ち込まなくても話し言葉でアプリが操作できますし、その応用編としてはAmazon AlexaやGoogle Echoといったスマートスピーカーに組み込む事が出来るようになれば「何を言っているのか判りません」といったつれない返事によるイライラから解消されるかもしれません。ChatGPT Pluginが飛躍的に活用されるのはこんなユースケースな気がしました。


何かアイディアが思いついたら新しいPluginを作ってみたいと思います。

では。



2023年6月5日月曜日

ミーガン(M3GAN)は電気羊の夢を見るか

 今回の記事は映画ネタです。ネタバレが無いように書いたつもりですが、感想を書く時点でネタバレしてる可能性大なので、これから見ようと思っている人は見た後に読んでください。(笑)


ウルグアイまでの長いフライトの中で見た映画「ミーガン(M3GAN)」がとても面白かった。日本でももうすぐ公開かな。M3GANとはModel 3 Generative Android の略。学習型のaiを搭載したアンドロイドが巻き起こすサイコスリラーもの。この時期に上映とはタイミングが良すぎる。

エンジニア目線で見ると色々とツッコミたくなる部分があるけれど、それはさておき、ミーガンが主人公の女の子と接しながら学習し、守りたい(母性というのか?)感情や独占したい感情が芽生えてきて、少しづつ行動がやばくなっていくのが見ててゾクゾクした。

思考は感情なのか?思考するAIは感情を持っていると言えるのか?

一方で、心に傷を負った少女がミーガンと接することで癒やされてきたのも束の間、今度はミーガン依存症になってしまうあたりは、今どきのスマホ依存症を見れば十分あり得る副作用だし、幼少期からケアをアンドロイド任せにしていると、リアルな友達より自分を喜ばせてくれるアンドロイドを選んでしまう可能性(危険性)を気づかせてくれた。

まあ、エンジニアがよかれと思って技術を駆使するとろくでもない事が起きるのは今も昔も変わらない話か。

人類を攻撃するAIと言うとターミネーターのように世界を滅ぼすような大きなスケールがありがちだけど、人を補助するアンドロイド/aiが生活の中で反乱を起こす方がより身近で怖かった。

普通に考えたらロボット三原則とかOSに規制を入れるだろう?と思ってしまうが、自己学習が規制を乗り越えてしまう可能性もあるのか?アプリがOSすら書き換えてしまうのか?(それがシンギュラリティか?) 興味は尽きない。

あと、ミーガンのキモカワイイダンスとか走り方とか、アンドロイドの動きはCGと思いがちな所を女の子が演じているとは、映画の内容の逆をいく制作方法でニヤリとさせられる。

感想がつきないのでこのあたりで。

最後にすみません、今回はこのタイトルをネタにしたくて記事を書きました。

では。

2023年6月1日木曜日

システム開発とジェネレーティブAI: 生産性向上への新たな可能性

 【導入】

システム開発は巨大なプロジェクトであり、効率化と成果物の品質向上が求められます。最近、ジェネレーティブAIの登場により、コーディングや他のプロセスにおいて新たなアシスタント機能が生まれました。本記事では、システム開発におけるジェネレーティブAIの活用方法と、その効果について段階的に解説します。

【ステップ1: システム開発のプロセスとジェネレーティブAIの関係】 システム開発のプロセスを要件定義、設計、コーディング、テストの工程に分け、それぞれにおいてジェネレーティブAIの活用方法を検討します。要件定義においては、自動生成されたテストケースや要件ドキュメントの作成が可能です。設計では、AIによるデザインの自動生成や最適化が可能です。コーディング工程では、AIを用いたコード生成やテンプレートの活用が効果的です。テストにおいては、AIによるバグの自動検出やテストスクリプトの生成が効率化に寄与します。

【ステップ2: コミュニケーションの改善】 システム開発では、プロジェクトメンバー間の円滑なコミュニケーションが不可欠です。ここでは、ジェネレーティブAIが優れた道具として活用されます。例えば、自動要約機能を持つAIチャットボットを導入することで、プロジェクトの議事録やミーティングの要点を効率的にまとめることができます。さらに、質問応答システムを活用することで、プロジェクトメンバーが容易に情報を共有し、迅速な意思決定が可能となります。また、リアルタイムなコラボレーションをサポートする共同編集ツールやプロジェクトダッシュボードも利用することで、プロジェクトメンバー間のコミュニケーションとタスク管理を一元化し、効率化を図ることができます。

【ステップ3: プロセスの効率化と標準化】 各工程におけるプロセスの効率化と標準化も重要な要素です。ジェネレーティブAIを活用することで、コーディングの自動化や品質向上を実現できます。AIによるコード生成やテンプレートの利用、バグの自動検出などが効果的です。また、プロジェクト管理ツールにおいても、AIを活用することで自動化とアシスト機能を実現できます。以下は、AIを活用したプロジェクト管理ツールの具体的な機能です。

  1. タスク管理の自動化: AIがプロジェクトメンバーのタスクを自動的に割り当てたり、進捗状況を追跡したりすることができます。AIは優先順位やリソースの可用性などを考慮し、タスクの最適なスケジューリングを行います。

  2. リソース管理のサポート: AIはプロジェクトに必要なリソース(人員、予算、設備など)の管理をサポートします。AIはリソースの予測や最適化を行い、プロジェクト全体のリソースのバランスや適切な割り当てを助けます。

  3. リスク管理の予測と対策: AIはプロジェクトのデータや過去の経験を分析し、リスクを予測します。また、リスクに対する適切な対策や予防策を提案することもできます。これにより、プロジェクトのリスク管理を強化し、問題の早期解決やコスト削減に寄与します。

  4. コラボレーションとコミュニケーションの支援: AIを活用した共同編集ツールやコミュニケーションプラットフォームは、プロジェクトメンバー間のリアルタイムなコラボレーションを支援します。AIは共同編集の衝突を検出し解決するだけでなく、自動的にタスクの関係者への通知や進捗の共有などを行います。

  5. プロジェクトの進捗と予測の可視化: AIはプロジェクトの進捗状況や予測を視覚的に表示するダッシュボードを提供します。これにより、プロジェクトマネージャーや関係者はリアルタイムでプロジェクトの状況を把握し、必要な対策や判断を行うことができます。

【まとめ】 システム開発におけるジェネレーティブAIの活用は、生産性向上や品質向上に大きな可能性をもたらします。コーディングや他のプロセスの効率化だけでなく、コミュニケーションの改善やプロセスの標準化も重要です。AIの活用により、素晴らしい成果物を生み出すシステム開発プロジェクトにおいて、ジェネレーティブAIは強力なパートナーとなるでしょう。

【ブログ記事の締めの文章】 システム開発におけるジェネレーティブAIの進化は、プロジェクトの生産性と品質を向上させるための新たな可能性を開拓しました。コーディングの効率化、コミュニケーションの改善、プロセスの標準化、そしてプロジェクト管理ツールの自動化とアシスト機能は、システム開発プロジェクトにおいて大きな価値をもたらします。ジェネレーティブAIと協力しながら、より効率的で革新的なシステム開発を実現しましょう。

以上のように、システム開発とジェネレーティブAIの関係について具体的なステップやプロジェクト管理ツールの機能を交えながら解説し、最後にブログ記事の締めの文章を追加しました。これにより、読者がシステム開発におけるジェネレーティブAIのポテンシャルと可能性を理解し、将来のプロジェクトに活かすことができるでしょう。


ここ何回かのブログ記事ではウェブサイトの内容をチャットGPTに要約してもらうというものでしたが、今回はブログ記事そのものをチャットGPTに考えてもらいました。

以下がそのプロンプトになりますが、今回は今までのように一発で記事は書けていません。ちなみにモデルはGPT3.5です。










人からの要求というものは曖昧なもので「ブログ記事を書いてください」という単純なゴールだとチャットGPTでも記事を書くことができません。そのゴールに対してどんどん情報を追加してあげる、パラメータを追加してあげることによりGPTが曖昧なゴールをより正確なゴールとして認識することができ、そしてアウトプットを出力することができる。という流れです。いわゆるゴールシークと呼ばれる手法です。私はシュンスケさんからだいぶ勉強させて貰っています。

どうしたらChatGPTを使いこなせるか? そしてどんな事に適用出来るのか? もう少しトライを続けていこうと思っています。
では。