AI アシスタントは、LLM を活用したチャットボットであり、仮想アセットを作成できます。AI アシスタントへのアクセス方法の詳細については、「AI アシスタント」を参照してください。LLM は不正確な情報を提供する可能性があり、この機能に影響を及ぼす可能性があります。デューデリジェンスを行うことを推奨します。
AI アシスタントを使ってデータソースを作成する
AI アシスタントを使用して、Virtualize で仮想アセットを作成することができます。利用可能な方法は 2 つあります。OpenAI/Swagger サービス定義を使用する方法と、使用しない方法です。
サービス定義を使用する場合
仮想アセットを作成したい OpenAI/Swagger サービス定義がある場合は、AI アシスタントに仮想アセットの作成を依頼し、サービス定義の URL または絶対ファイルパスを指定します。AI アシスタントはサービス定義を分析し、提案を行います。提案された内容を選択するか、作成する仮想アセットについての説明を入力します。例えば、AI アシスタントに次のように尋ねることができます。
Create a virtual asset from definition:
https://petstore.swagger.io/v2/swagger.json
Include operations for adding, updating, and retrieving pet information.
AI アシスタントは、リクエストに基づいて提案する仮想アセット (該当する場合は関連操作のペイロードデータが入力されたレスポンダースイートを含む) を表示し、保存するかどうかを確認します。提案された仮想アセットを受け入れるか、変更を依頼するかを選択できます。例えば、ペット情報を削除する操作を追加したいとします。続行するかどうかの確認があった際に次のように回答できます。続行するかどうかを尋ねられたら:
Add an operation to delete pet information.
AI アシスタントは、新しい操作を含む仮想アセットを再作成します。このようにして、目的の形になるまで仮想アセットを修正できます。
仮想アセットレスポンダーは、適用可能な場合に、受信リクエストに基づいてパラメータライズされます。パラメータライズされていない値には、AI によって生成された値が設定されます。
サービス定義を使用しない場合
使用する OpenAI/Swagger サービス定義がない場合でも、AI アシスタントを利用して仮想アセットを作成できます。エンドポイントやペイロードなど、サービスの仕組みを説明するだけで、AI アシスタントがその説明を分析し、最も適切と思われる仮想アセットを提案します。必要な内容の複雑さや説明の完全性によっては、この方法では仮想アセットにギャップが生じ、それを埋める必要がある場合もありますが、プロセスをスムーズに進めるには良い方法です。
説明の詳細に応じて、AI アシスタントは次のような提案をすることがあります。
- エンドポイント
- レスポンダー応答条件
- レスポンス ペイロード
- ステータス コード
- パラメータライゼーション
AI アシスタントは、仮想アセットを提案し、作成前に変更点を尋ねます。AI アシスタントとの会話を続け、満足のいく状態になるまで仮想アセットを改善できます。リクエストの内容を AI アシスタントが理解できない場合は、例を挙げてみてください。
例えば、AI アシスタントに次のように尋ねることができます。
Create a virtual service based on the following description: a system to manage hotel room bookings with endpoints /bookings, /rooms, and /guests.
AI アシスタントは、この比較的シンプルなプロンプトを使用して仮想アセットを作成できますが、必ずしもユーザーが望む通りの結果が得られない可能性があります。より詳細なプロンプト、例えば以下の例のようなものを使用すると、ユーザーが望むものに近い結果を得られる可能性が高まります。
Create a virtual service to manage hotel room bookings based on the following description: Basepath: /hotel/api/v1 Endpoints: /bookings /bookings/{id} /rooms /rooms?guestName={name}&date={date} /rooms/{id} /rooms/{id}/availability /rooms/{id}/hold /guests /guests/{id} Details: 200 for success, 404 for not found, and 409 for conflicts (for example, double booking). Error responses for all endpoints should include a clear error message. Example request for POST - /bookings: { "roomId": 201, "roomNumber": "101A", "roomType": "Deluxe", "guestId": 301, "guestName": "John Doe", "checkIn": "2024-07-01", "checkOut": "2024-07-05", "price": 520, "specialRequests": "Late check-in" } Response returns "id" field and the same as request payload.