kintone × ChatGPT で理想の上司を手に入れよう！

# 今年は何を書くんだいっ？！

**[kintone Advent Calendar 2022](https://qiita.com/advent-calendar/2022/kintone)** の13日目です！

何を書こうかと迷いに迷っておりましたが、この頃使ってみて面白かったモノ＋kintoneでお届けしようかと！
今年を振り返るとAI躍進の年ではなかったでしょうか。
夏頃のお絵かきAIの劇的進化からから数ヶ月、瞬く間に技術革新が進んだ感がありますね！！

私が今年のAI関連で使ってみて「へぇ！」と思ったサービスは 今年2022年11月にリリースされた **[ChatGPT](https://openai.com/blog/chatgpt/)** です。

# ChatGPTとは
>英語から翻訳-ChatGPT は、対話に特化した OpenAI によって開発された人工知能チャットボットのプロトタイプです。チャットボットは、教師あり学習と強化学習の両方の手法で微調整された大規模な言語モデルです。これは、GPT-3 の改良版である OpenAI の GPT-3.5 モデルに基づいています。 
ウィキペディア（英語)

つまりは人と会話するようにスムーズに応対できる、言語系のAIの事です。（ざっくりですいやせん）
・・・というわけで、ChatGPTとkintoneを連携して何か面白そうなものができるか試してみようと思います！

## 早速ChatGPTを利用する準備
事前準備
OpenAIの公式ページからアカウント発行とAPI KEYを発行します。

アカウント発行
https://chat.openai.com/auth/login

API KEYの取得
下記ページ内の「Create new secret key」ボタンを押してKEYを発行します。

## 軽く実装してみました
kintone.proxyを利用して戻ってきたデータを何かに使えないものかとトライしてみます。
modelは「text-davinci-003」を選びました。
なんでも、これまでのモデルよりも高品質で長い文章を作成することができるとのこと。

```JavaScript
//ChatGPTの返信を取得する
async function getReponseData(phrase) {
    let headers = {
        "Content-Type":"application/json; charset=UTF-8",
        "Authorization": "Bearer {secret keyをここに}",
    };
    let body={
        "model": "text-davinci-003",
        "prompt":  phrase,
        "max_tokens": 4000,
        "temperature": 0      
    };

    return kintone.proxy('https://api.openai.com/v1/completions', 'POST', headers, body).then(function(json) {
        let obj =JSON.parse(json[0]);
        const rec = kintone.app.record.get();
        rec.record.answer.value =obj.choices[0].text;
        kintone.app.record.set(rec);
    }, function(error) {
        //error
        console.log(error);  //proxy APIのレスポンスボディ(文字列)を表示
        return {};
    });
}
```

早く試したいので雑めなソースで失礼します！
それでは実食！
<img width="80%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/89469cd6-ef08-72ec-0544-a34edc322022.png">

うん？？何か自然な感じで嘘をつきましたね（笑
もひとつ試してみましょう
<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/6b94600e-9578-8af7-09d6-306f24c40346.png">

なるほど、会話程度なら自然なやり取りですね！

## 何をやりましょうかね？
正しい情報を引っ張ってこれるという確約はなく、文章を自然な感じにまとめたりするのがそもそものChatGPT（元はGPT-3）の特性のようです。
そりゃ大規模自然言語処理モデルという位置付け上、そんな感じですよねぇ。

## kintoneと組み合わせて役に立つの？
kintoneでの操作をなにかの形でサポートできるといい、かな？
散々悩んだあげく、無理くり感半端ないですがこんな感じでお役立ちいただきました。

**題して・・・「秒速コメント上司マルコフさん」**
 - kintoneの日報アプリに当日の所感を書くと秒でChatGPT（マルコフ連鎖だからマルコフさんと命名😅）が返信してくれる。
 - ある程度倫理的な相談にも乗ってくれる（はず）

## それではアプリに組み込んでみよう！
kintoneアプリストアから「日報」で検索して良さげな日報アプリを持ってきます！

<img width="80%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/937660fe-afd1-4bc5-cd15-b1d955af873a.png">

ルートセールス営業日報！
こちらに先程の「秒速コメント上司マルコフさん」を追加してみましょう！
「本日の所感」に担当者の方が入力すると、秒でマルコフさんが返信するような枠を作りました。

<img width="80%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/8509bcca-dfff-ff5a-9ba4-8371ec6f81cd.png">

本日の所感をいくつか打ち替えてみました！
結果はいかに！？！？！一部珍回答も含まれますがお楽しみ下さい😅

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/51e1c39a-94d2-bb58-94cf-a6a332387cdc.png">

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/73198734-e85c-ac1f-e06a-6c5ce972bb82.png">

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/85e40be6-d235-f7f3-8cf4-bbca77a1a0e8.png">

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/64e25a82-5f57-3342-4b7e-a1c160d6bb7c.png">

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/3cd4162a-9ff4-5a1c-3946-5a6db4e2a6c2.png">

いかがでしたでしょうか？
直接役に立たないまでも、kitoneを入力するちょっとしたモチベーションに繋がるかも知れませんね！？
１社に１人、「秒速コメント上司マルコフさん」！笑

そしてもう少しマジメに考えてみると、報告書や議事録をいい感じにまとめてもらうなどできそうな予感がしております😅（何気に今後マジメに取り組もうとはしています、たぶん）

## あ、そういえば
もともと連携の方法（ソースコード）についてChatGPTに聞けばよかったのでは？！
ではやってみましょう！

<img width="90%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/14b6c470-8dde-30f6-9ed5-cc7117a50e16.png">

あーああ・・・。
・・・ありがとうございました😅