ChatGPT APIで社内FAQボットを作る最短ルート
概要
社内の問い合わせ対応に毎日30分以上費やしていた担当者の負担を軽減するため、ChatGPT APIを使ったFAQボットをSlack上に構築しました。
構成
- 入力: Slackのメンション
- 処理: GAS → ChatGPT API
- 参照データ: kintoneのFAQアプリ
- 出力: Slackへの返信
実装手順
1. kintoneからFAQデータを取得
function fetchFAQs() {
const url = `https://${KINTONE_DOMAIN}/k/v1/records.json?app=${APP_ID}`;
const response = UrlFetchApp.fetch(url, {
headers: { 'X-Cybozu-API-Token': KINTONE_TOKEN }
});
return JSON.parse(response.getContentText()).records;
}
2. ChatGPT APIへ投げる
FAQリストをシステムプロンプトに組み込み、ユーザーの質問に対して回答させます。
function askGPT(question, faqs) {
const systemPrompt = `以下のFAQを参考に質問に回答してください。\n\n${
faqs.map(f => `Q: ${f.question.value}\nA: ${f.answer.value}`).join('\n')
}`;
const payload = {
model: 'gpt-4o-mini',
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: question }
]
};
const res = UrlFetchApp.fetch('https://api.openai.com/v1/chat/completions', {
method: 'post',
contentType: 'application/json',
headers: { Authorization: `Bearer ${OPENAI_KEY}` },
payload: JSON.stringify(payload)
});
return JSON.parse(res.getContentText()).choices[0].message.content;
}
3. Slackへ返信
Slack Event APIでメンションを受け取り、GASのWebhookへ転送。GASがChatGPTに問い合わせて返信します。
効果
問い合わせ対応時間を 約80%削減。担当者が本来の業務に集中できるようになりました。構築にかかった時間はわずか3時間です。