生成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 // 「外部連携設定」「共通定数」に「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_ID = "<画面項目ID>"; //生成AIを利用するデータストア「ID」 const SS_FIELD_ID_CHATGPT_TITLE = "<画面項目ID>"; //生成AIを利用するデータストア「タイトル」 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', }, }; /** *FAQにレコードを新規追加する * @param {object} fields フィールド情報 * @returns {string} アイテムID */ const createFaqTicket = async (workspaceId) => { const payload = { fields: { [SS_FAQ_LIBRARY_F_ID_TITLE]: item.fields[SS_FIELD_ID_CHATGPT_TITLE], [SS_FAQ_LIBRARY_F_ID_QUESTION]: item.fields[SS_FIELD_ID_CHATGPT_QUESTION], [SS_FAQ_LIBRARY_F_ID_ANSWER]: item.fields[SS_FIELD_ID_CHATGPT_ANSWER], [SS_FAQ_LIBRARY_F_ID_EXPLANATION]: item.fields[SS_FIELD_ID_CHATGPT_EXPLANATION], [SS_FAQ_LIBRARY_F_ID_REQUEST_ID]: item.fields[SS_FIELD_ID_CHATGPT_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 () => { await createFaqTicket(SS_WORKSPACE_ID); }; main();
何かお困りのことはございますか?まずはヘルプセンターを検索してみましょう!
その他ご不明な点があれば、サポートチームにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。