生成AIを用いて生成したFAQをFAQライブラリへ移行する方法をご案内します。
目次
完成イメージ
例えば、「FAQに追加してクローズ」というアクションを実行すると、生成AIを用いて生成したFAQがFAQライブラリへ移行します。
アクション実行をトリガーにFAQライブラリへ連携できるように、このアクション「FAQに追加してクローズ」に、以下の手順でJavaScriptを適用していきます。
事前準備
APIトークンの発行
SmartStage APIを呼び出すには、認証用のAPIトークンの発行が必要です。
APIトークンの発行については、以下の記事を参照してください。
画面項目の追加
生成AIが作成した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のエンドポイントの設定
サンプルスクリプトの定数API_ENDPOINTの値に、ご利用中のAIのエンドポイントを設定してください。
※クレオ提供の生成AIをご利用中のお客様は、お問い合わせください。
ワークスペースIDの設定
サンプルスクリプトの定数SS_WORKSPACE_IDの値に、こちらで取得したIDを設定してください。
データストアIDの設定
サンプルスクリプトの定数SS_DATASTORE_ID_CHATGPT_PおよびSS_DATASTORE_FAQ_LIBRARY_DATASTORE_IDの値に、こちらで取得したIDを設定してください。
アクションIDの設定
サンプルスクリプトの定数SS_DATASTORE_FAQ_LIBRARY_CREATE_ACTION_IDの値に、こちらで取得したIDを設定してください。
画面項目IDの設定
サンプルスクリプトの各SS_FIELD_ID_XXXXXXおよび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 {string} workspaceId ワークスペース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件のコメント
サインインしてコメントを残してください。