生成AIを用いて生成したFAQをFAQライブラリへ移行する方法をご案内します。
目次
完成イメージ
例えば、「FAQに追加してクローズ」というアクションを実行すると、生成AIを用いて生成したFAQがFAQライブラリへ移行します。
アクション実行をトリガーにFAQライブラリへ連携できるように、このアクション「FAQに追加してクローズ」に、以下の手順でJavaScriptを適用していきます。
事前準備
APIトークンの発行
SmartStage APIを呼び出すには、認証用のAPIトークンの発行が必要です。
APIトークンの発行については、以下の記事を参照してください。
画面項目の追加
生成AIが作成したFAQをFAQデータベースに連携できるようにするため、以下の画面項目を追加します。
※画面項目名は運用に合わせて変更可能です。
FAQデータベースに、FAQを管理するための画面項目を追加します。
設定箇所:
SmartStageの管理者ページであることを確認し、「プロセス設定」>対象プロセス>「項目設定」>「項目リスト(+ボタン)」の順にクリックしてください。
項目名に画面項目の名称、項目の型に適切な画面項目型を設定し、「保存」をクリックしてください。
上記にならい、以下の項目を追加してください。
- 「問い合わせID」(テキスト型)
- 「タイトル」(テキスト型)
- 「質問」(複数行テキスト型)
- 「回答」(複数行テキスト型)
- 「補足情報」(複数行テキスト型)
ワークスペースIDの取得
サンプルスクリプトのワークスペースIDをお客様自身の値に置き換えるため、SmartStageの管理メニューからIDを取得します。
確認箇所:
- SmartStageの管理者ページであることを確認します。
- 右上にある歯車アイコン > ワークスペース設定の順にクリックします。
ここで確認できるワークスペースIDがお客様のワークスペースIDです。
データストアIDの取得
サンプルスクリプトのデータストアIDをお客様自身の値に置き換えるため、SmartStageの管理メニューからIDを取得します。
確認箇所:
SmartStageの管理者ページであることを確認し、「プロセス設定」>対象プロセス>「基本設定」の順にクリックしてください。
ここで確認できるデータストアIDがお客様のデータストアIDです。
アクションIDの取得
サンプルスクリプトのアクションIDをお客様自身の値に置き換えるため、SmartStageの管理メニューからIDを取得します。
確認箇所:
SmartStageの管理者ページであることを確認し、「プロセス設定」>対象プロセス>「データ操作設定」の順にクリックしてください。
ここで確認できる「内容を更新する」のアクションIDがお客様のアクションIDです。
画面項目IDの取得
サンプルスクリプトの登録対象画面項目IDをお客様自身の値に置き換えるため、SmartStageの管理メニューからIDを取得します。
確認箇所:
SmartStageの管理者ページであることを確認し、「プロセス設定」>対象プロセス>「項目設定」>「項目リスト」の対象画面項目名の順にクリックしてください。
ここで確認できる項目IDが登録対象画面項目IDです。
上記にならい、以下の各データストアから各項目を同様に確認してください。
生成AIを適用するプロセス
- 「FAQタイトル」
- 「FAQ質問」
- 「FAQ回答」
- 「FAQ補足情報」
FAQデータベース
- 「タイトル」
- 「質問」
- 「回答」
- 「補足情報」
サンプルスクリプトの修正と配置
サンプルスクリプトの修正
サンプルスクリプトを、お好みのテキストエディタ(例:VSCode)にペーストしてください。
生成AIのエンドポイントの設定
サンプルスクリプトの「生成AIのエンドポイント」をお客様のものに更新します。
サンプルスクリプトの定数API_ENDPOINT
の値に、ご利用中のAIのエンドポイントを設定してください。
※クレオ提供の生成AIをご利用中のお客様は、お問い合わせください。
※<>
は不要です。
ワークスペースIDの設定
サンプルスクリプトの「ワークスペースID」をお客様のものに更新します。
サンプルスクリプトの定数SS_WORKSPACE_ID
の値に、こちらで取得したIDを設定してください。
※<>
は不要です。
データストアIDの設定
サンプルスクリプトの「データストアID」をお客様のものに更新します。
サンプルスクリプトの定数SS_DATASTORE_ID_CHATGPT_P
の値に、こちらで取得したIDを設定してください。
サンプルスクリプトの定数SS_DATASTORE_FAQ_LIBRARY_DATASTORE_ID
の値に、こちらで取得したIDを設定してください。
※<>
は不要です。
アクションIDの設定
サンプルスクリプトの「アクションID」をお客様のものに更新します。
サンプルスクリプトの定数SS_DATASTORE_FAQ_LIBRARY_CREATE_ACTION_ID
の値に、こちらで取得したIDを設定してください。
※<>
は不要です。
画面項目IDの設定
サンプルスクリプトの「画面項目ID」をお客様のものに更新します。
サンプルスクリプトの定数SS_FIELD_ID_XXXXXX
の値に、こちらで取得したIDを設定してください。
サンプルスクリプトの定数SS_FAQ_LIBRARY_F_ID_XXXXXX
の値に、こちらで取得したIDを設定してください。
※<>
は不要です。
動作確認
サンプルスクリプトの配置
アクションスクリプト設定から「FAQに追加してクローズ」を選択し、ポストスクリプトに修正したサンプルスクリプトを配置します。
テスト実行
サンプルスクリプトを配置したら、「テスト実行」をクリックしてください。設定したポストスクリプトのJavaScriptが実行されます。
注意事項
- アクションスクリプトの実行によりFAQが生成されることを確認しやすくするため、事前にテストデータとなるタイムラインにデータを蓄積しておくことを推奨します。
- テストデータ(テスト実行するタスク)は、「アクション実行時に渡されるデータ」に表示されているタスクが対象となります。
サンプルスクリプト
生成AIによって作成したFAQをFAQデータベースに登録するサンプルスクリプトです。
/** * パラメータを設定 */ const SS_API_EXTERNAL_END_POINT = "https://api.smart-stage.io"; // SmartStage外部公開APIベースURL const SS_API_INTERNAL_END_POINT = "https://app.smart-stage.io/apicore/v1"; // SmartStage内部APIベースURL // 「外部連携設定」「共通定数」に「SS_API_TOKEN」という名前でAPIトークンを登録してください // SmartStageの変数 // FAQ生成元の変数 const SS_WORKSPACE_ID = "<ワークスペースID>"; //お客様のワークスペースID const SS_DATASTORE_ID_CHATGPT_P = "<データストアID>"; //生成AIを利用するデータストアのデータストアID const SS_FIELD_ID_CHATGPT_TITLE = "<画面項目ID>"; //ChatGPT 生成結果「タイトル」 const SS_FIELD_ID_CHATGPT_QUESTION = "<画面項目ID>"; //ChatGPT 生成結果「質問」 const SS_FIELD_ID_CHATGPT_ANSWER = "<画面項目ID>"; //ChatGPT 生成結果「回答」 const SS_FIELD_ID_CHATGPT_EXPLANATION = "<画面項目ID>"; //ChatGPT 生成結果「補足情報」 //FAQライブラリ項目 const SS_DATASTORE_FAQ_LIBRARY_DATASTORE_ID = "<データストアID>"; // FAQのデータストアID const SS_DATASTORE_FAQ_LIBRARY_CREATE_ACTION_ID = "<アクションID>"; // FAQの新規作成のアクションID const SS_FAQ_LIBRARY_F_ID_REQUEST_ID = "<画面項目ID>"; //「問い合わせID」 const SS_FAQ_LIBRARY_F_ID_TITLE = "<画面項目ID>"; //「タイトル」 const SS_FAQ_LIBRARY_F_ID_QUESTION = "<画面項目ID>"; //「質問」 const SS_FAQ_LIBRARY_F_ID_ANSWER = "<画面項目ID>"; //「回答」 const SS_FAQ_LIBRARY_F_ID_EXPLANATION = "<画面項目ID>"; //「補足情報」 //リクエストに必要な情報を設定 const options = { headers: { Authorization: 'Bearer {SS_API_TOKEN}', 'Content-Type': 'application/json', }, }; /** * SmartStageのAPIを実行しアイテムを取得する * @param {string} itemId アイテムID * @param {string} datastoreId データストアID * @returns {object} アイテム情報 */ const getFields = async (itemId, datastoreId) => { const resItem = await axios(`${SS_API_EXTERNAL_END_POINT}/items/${itemId}?datastoreid=${datastoreId}`, options) .catch( (e) => { logger.error(`アイテム取得に失敗しました。 エラー情報: ${JSON.stringify(e)}`); return; } ); return resItem.data.fields; }; /** *FAQにレコードを新規追加する * @param {object} fields フィールド情報 * @returns {string} アイテムID */ const createFaqTicket = async (workspaceId, newData) => { logger.info("in--------------------------------------------"); logger.log(newData); //newJsonData = JSON.parse(newData); newJsonData = newData; logger.log("newData:" + newData); const payload = { fields: { [SS_FAQ_LIBRARY_F_ID_TITLE]: newJsonData["FAQタイトル"], [SS_FAQ_LIBRARY_F_ID_QUESTION]: newJsonData["FAQ質問"], [SS_FAQ_LIBRARY_F_ID_ANSWER]: newJsonData["FAQ回答"], [SS_FAQ_LIBRARY_F_ID_EXPLANATION]: newJsonData["FAQ補足情報"], [SS_FAQ_LIBRARY_F_ID_REQUEST_ID]: newJsonData["request_id"], }, link: { datastoreId: SS_DATASTORE_ID_CHATGPT_P, itemId: item.itemId }, workspaceId: workspaceId, }; logger.log(payload); const resCreate = await axios({ method: 'post', url: `${SS_API_EXTERNAL_END_POINT}/datastores/${SS_DATASTORE_FAQ_LIBRARY_DATASTORE_ID}/actions/${SS_DATASTORE_FAQ_LIBRARY_CREATE_ACTION_ID}/create?name=false`, data: payload, ...options, }).catch((e) => { logger.error(`更新が失敗しました。 エラー情報: ${JSON.stringify(e)}`); throw false; }); } /** * メイン処理 */ const main = async () => { //このプロセスの項目データを取得する const processFields = await getFields(item.itemId, SS_DATASTORE_ID_CHATGPT_P); logger.log(processFields); const resultCreateFaqTicket = await createFaqTicket(SS_WORKSPACE_ID, processFields); }; main();
何かお困りのことはございますか?まずはヘルプセンターを検索してみましょう!
その他ご不明な点があれば、サポートチームにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。