94291
公式LINEで質問したことをwebhookを介してchatGPTが回答してくれるチャットボットを作成しています。  
現状、メッセージを受信して自動返信することはできるのですが、受信したメッセージに対して全く見当違いな返信をします。下記のコードが受信したメッセージをchatGPTで処理し、LINEに送信するコードです。  
これは、モデルが"davinci"だからなのでしょうか、それともコードが悪いのでしょうか。ご教授お願いします。  
※情報不足なところがあればご指摘お願いします。

```

    #メッセージを受け取った後にどんな処理を行うかを記述
    @handler.add(MessageEvent, message=TextMessage)
    def handle_message(event):
        prompt =event.message.text
    
        response = openai.Completion.create(
            engine="davinci",
            prompt=prompt,
            max_tokens=256,
        )
        messages = response.choices[0].text.strip()
    
        print(messages)
    
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text=messages))
    
```
CC BY-SA 4.0
2023-03-23T13:29:05.520
94287
2023-06-18T07:17:31.347
2023-06-18T07:17:31.347
7347
57475
question
python line chatgpt
chatGPTのモデル"davinci"では正確に返答されないのでしょうか。
これだと **" 続けて相手が言いそうなこと"** もしくは **" その続きに書いてありそうなこと"** を生成するだけです。

チャットをさせたいなら、プロンプトとパラメータは公式exampleのチャットの例  
<https://platform.openai.com/examples/default-friend-chat>  
に倣って

```

    prompt = f'You: {event.message.text}\nFriend:'
    response = openai.Completion.create(
        model='davinci',
        prompt=prompt,
        stop='You: ',
        max_tokens=60,
        temperature=0.5,
        frequency_penalty=0.5,
    )
    
```

とか指定するといいでしょう。Davinciモデルでも十分と思います。

（ボットに組み込む前に短いコードでどんどん試した方がいいですよ。質問もしやすいですし）

* * *

できれば過去のやりとりも渡すのがいいと思います。次のチャレンジにはなるでしょうが。
CC BY-SA 4.0
2023-03-24T01:56:13.640
94291
2023-03-24T03:18:21.710
2023-03-24T03:18:21.710
12274
12274
94287
answer