あれから2年、kintone × ChatGPT で理想の上司は手に入ったのか？

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

**[「すごくない」kintone Advent Calendar 2024](https://adventar.org/calendars/10426)** の16日目です！

ベストオブすごくない何かを書こう思ってましたが、これにしてみよう！

2022年、chatGPT × kintoneでなにかできるかと思って書いた記事がありました。
[2022/12/14 kintone × ChatGPT で理想の上司を手に入れよう！](https://qiita.com/tarimo34/items/f4dd1ff323ad31f4c8b5)
思えばあれくらいの時期から kintone × 生成AI(chatGPT)の事例も増えましたね。もちろん私としても仕事としてシステムに組み入れたり、仕事の一部を任せたりしています。そして来年は・・・もっと飛躍していくでしょうね？

##  、というわけですごくない振り返りでback to the 2022！

試したアプリやソースもそのまま残っているので今どんな感じなのかなーと触ってみました。
以前のソースはこちら。

```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 {};
    });
}
```

##  実食！おっとお、動かない

```The model text-davinci-003 has been deprecated```

お決まりのkintone.proxyを利用して戻ってきたデータを見ましたが、”text-davinci-003”はもう使えない模様。

https://platform.openai.com/docs/api-reference/chat
APIリファレンスを見てみました。
エンドポイントも変わってないし、modelを「gpt-4」くらいにしたら動きそうです。

数か所書き換えて動作するようになりました。

```JavaScript
  
//ChatGPTの返信を取得する
async function getContactData(phrase) {
    let headers = {
        "Content-Type":"application/json; charset=UTF-8",
        "Authorization": "Bearer {secret keyをここに}",
    };
    let body={
        model: "gpt-4",
        messages: [
            {
                "role": "user",
                "content": phrase
            }
        ]
    };

    return kintone.proxy('https://api.openai.com/v1/chat/completions', 'POST', headers, body).then(async function(parsed) {
        // JSONオブジェクトから必要なデータを取得
        const responseString = parsed[0];
        const responseObject = JSON.parse(responseString);
        
        // アシスタントの応答内容を取得
        const assistantMessage = responseObject.choices[0].message.content;
        console.log(assistantMessage);

        const rec = kintone.app.record.get();
        rec.record["answer"].value = assistantMessage;
        kintone.app.record.set(rec);

        return;
    }, 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/40e6ac29-1f1f-ac17-725c-2c5c337a248b.png">

おっと、さすがgpt-4ですね。精度が上がっています。
２年前はこんな回答でした。

<img width="80%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/89469cd6-ef08-72ec-0544-a34edc322022.png">

##  と、なると前回に試作した日報アプリも良い感じで動くのではないだろうか？

あれからchatGPTのAPIにはシステムプロンプトで回答する前提を付加できるようになっているので、以前kintoneの日報アプリで回答していた上司マルコフ君に事前説明をシステムプロンプトで送ってテストしてみましょう。こんな感じに書き換えました。
```javascript
async function getContactData(phrase) {
    let headers = {
        "Content-Type":"application/json; charset=UTF-8",
        "Authorization": "Bearer  {secret keyをここに}",
    };
    let body={
        model: "gpt-4",
        messages: [
            {
                "role": "system",
                "content": "あなたは、マルコフさんという上司として、質問に回答します。マルコフさんは大阪出身の４０代男性、情に厚く部下を励ますのが得意です。ときには厳しく指導する一面も持っています。"
            },
            {
                "role": "user",
                "content": phrase
            }
        ]
    };
```

と、いうわけで2022年と2024年の実行結果を比較してみました！

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

＜２０２４年、最新の回答＞
![スクリーンショット 2024-12-15 174703.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/768150a2-4e30-a4da-5d24-0f05f1cd9538.png)

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

＜２０２４年、最新の回答＞
![スクリーンショット 2024-12-15 174751.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/802c8cd9-9da3-cb03-d34e-7f6f0df853d5.png)


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

＜２０２４年、最新の回答＞
![スクリーンショット 2024-12-15 174916.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76660/92cd76b2-c9d5-87dd-003d-695e9fa77bed.png)


２年寝かしたら、良い感じの上司に成長していました！😂
うーん良い感じに進歩している！

##  それでは皆様、良いお年を！