7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kintoneAdvent Calendar 2024

Day 11

kintoneとAIでクレームを円満解決するアプリ作ってみた

Last updated at Posted at 2024-12-10

今回はアドベントカレンダー・・・・ということで、
ご意見円満解決アプリを作ってみました。

プロンプトによるんだから何アプリでもいいでしょ!とか言わないでください👀

事前準備

OpenAIのAPIキーを取ってきてね。
※調べてみてね!

アプリをつくる

image.png

フィールド フィールドタイプ フィールドコード 備考
ご意見 文字列(複数行) ご意見 来たご意見を書くところ
--- スペース btn ボタンを置くところ
ご意見の要点と回答例 文字列(複数行) ご意見の要点と回答例 ボタン押したら回答例書いてくれるところ

サンプルコード

(() => {
  'use strict';
  kintone.events.on(['app.record.create.show','app.record.edit.show'], (event) => {
    // 新規作成画面、編集画面開いたときにスペースフィールドにボタンを設置する。
    const spbtn = kintone.app.record.getSpaceElement('btn');
    const btn = document.createElement('button');
    btn.textContent = '日本語でokボタン';
    spbtn.appendChild(btn);
    
    btn.addEventListener('click', async ()=>{
      const apiKey = 'OpenAI API の APIキー'; // APIキーを入力
      const apiUrl = 'https://api.openai.com/v1/chat/completions';
      const headers = {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${apiKey}`
      };

      const record = kintone.app.record.get();
      const data = {
        model: 'gpt-4o-mini',
        messages: [
          { role: 'system', content :`あなたはクレーム処理のプロの、スーパーの店長です。`},
          { role: 'user', content: `次の文章はスーパーにきたクレームです。何に答えたらいいのか分かりやすいよう、要点をまとめて、何に答えたらいいのか明らかにしてください。また、回答例も記述してください。文章:${record.record['ご意見'].value}` }
        ]
      };

      const response = await fetch(apiUrl, {
        method: 'POST',
        headers: headers,
        body: JSON.stringify(data)
      });
      const responseData = await response.json();

      record.record['ご意見の要点と回答例'].value = responseData.choices[0].message.content;
      kintone.app.record.set(record);
    });
    
    return event;
  });
})();

どんなかんじになるのか?

例えばこんなクレームが来たとする。

「レジの店員、感じが悪すぎる!無愛想で、こちらが質問してもぶっきらぼうに答える。お客は金を払って商品を買ってるんだぞ!もっと丁寧な対応をしてほしい。それに、いつもレジが混んでるのに、新しいレジを開けないのはなぜ?客をバカにしてるのか?」
※Geminiにクレームを考えてもらいました。

しまった、ボタンの名前が非常に良くない。

image.png

保存するとこんな感じ。
さすが店長!たよりになるなぁ!

image.png

お・し・ま・い!

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?