概要
OpsRampのインシデントチケットの対話ボックスに入力した内容をOpenAI Assistants APIに送信し、OpenAI Assistants APIが返答した内容をインシデントチケットの対話に表示する。
使用するOpsRampの機能
- サービスデスク - インシデント: 問い合わせ内容および返答内容を表示
- カスタムインテグレーション (Outbound API): Assistants APIに問い合わせ、および返答を取得、返答をインシデントへ更新
- Process Automation: カスタムインテグレーションの実行、およびインシデントのアップデート
設定
カスタムインテグレーション
以下の5つの Outbound API イベントを作成します。
- Assistants API の Thread および Run を作成
{
"assistant_id": "<assistant_id>",
"thread": {
"messages": [
{"role": "user", "content": "$conversation"}
]
}
}
content に、質問内容が入るようにします。
レスポンスの run_id および thread_id を格納するように設定します。
- Assistants API の Run のステータスを取得
thread_id および run_id を用いて Run のステータスを取得します。
Run の実行が完了したかを確認するために、レスポンスの status を格納するように設定します。
- Assistants API の返答を取得
thread_id を用いて返答を取得します。
レスポンスの data を格納するように設定します。
- Assistants API の Thread を削除
thread_id を用いて作成した Thread を削除します。
- インシデントに返答を更新
OpsRamp API を用いて、インシデントに返答を書き込みます。description を指定することで、返答を書き込むことができます。
{
"description": "$value"
}
Process Automation
一連のカスタムインテグレーションを実行するようにワークフローを設定します。
Service Task の REST Web Service を使用して、作成したカスタムインテグレーションをつなげていきます。
Run の実行が完了したかを判別するために、取得した Run の status を Gateway で判別します。
status が completed であれば、次のタスクに移行し、それ以外であれば Timer Task で数秒遅延させ、再度 Run の status を取得します。
最後に取得した返答をインシデントに書き込みます。