memochou1993 / gpt-ai-assistant

OpenAI + LINE + Vercel = GPT AI Assistant
https://memochou1993.github.io/gpt-ai-assistant-docs/
MIT License
7.41k stars 9.54k forks source link

更新 4.4.1 後 LINE 機器人回復 400 錯誤 #218

Closed jimmy8399 closed 1 year ago

jimmy8399 commented 1 year ago

今天更新玩4.4.1後跟機器人聊天回答400錯誤 image 換一支openai的API KEY也是一樣 但我的openai方案還有餘額

kindomLee commented 1 year ago

這個指的是你上下文整體發送過去的量超過了限制,而不是你方案的餘額問題喔.

token 的相關限制可以看這邊:https://platform.openai.com/docs/guides/chat/managing-tokens

as total tokens must be below the model’s maximum limit (4096 tokens for gpt-3.5-turbo-0301)

可以參考 token 算法:https://platform.openai.com/tokenizer

jimmy8399 commented 1 year ago

所以我變數的上下文參數要降低嗎? 我現在是設定官方白皮書說的最大值4096

kindomLee commented 1 year ago

你可以嘗試縮短你發送的內文,或調整這三個參數

名稱 預設值 說明
APP_MAX_PROMPT_MESSAGES 12 上下文語句的數量上限。
APP_MAX_PROMPT_TOKENS 1024 上下文單詞的數量上限。
OPENAI_COMPLETION_MAX_TOKENS 160 詳見 max_tokensopen in new window 參數說明。
jimmy8399 commented 1 year ago

這三項我刪掉後就回復正常了 , 但如果我希望她回復的內容可以長一點,要如何設定這三項才有辦法優化? OPENAI_COMPLETION_MAX_TOKENS 剛才是單純這項改成4096 那另外兩項要如何修改才能跟得上呢... 有試過三個都改成4096 但一樣會400錯誤

kindomLee commented 1 year ago

這三項主要是影響你提供給 AI 的一些資訊的多寡,主要能夠使得 AI 更了解前情提要,而讓 AI 能更好的回答問題.

如果你只是希望 AI 回覆的內容可以更長,可以試試看在 AI 回覆完之後,你給出 繼續 讓他繼續回覆產生下文

jimmy8399 commented 1 year ago

那如果我想讓機器人可以一次回覆完而不用一直下繼續指令給他呢? 可以如何調參數

kindomLee commented 1 year ago

如果這邊的環境變數的 max_token 跟 openai 的 max_token 是同一個的話,可以嘗試調大這個值.

不過,這個設定是調整最大可回覆長度,如果 AI 判斷不需要長回覆則這個設定就沒有效果了.

你可以試試看在提問時指明你需要的回覆長度,或許會有幫助

memochou1993 commented 1 year ago

感謝 @kindomLee 參與討論。

@jimmy8399

嗨。

如果你希望機器人回覆你很長的訊息的話,可以把 OPENAI_COMPLETION_MAX_TOKENS 設置成 4096

至於 APP_MAX_PROMPT_TOKENS 指的是,傳送給 OpenAI 的提示詞的最大 tokens 數,這代表 AI 能夠更理解你的上下文脈絡,與回應無關。不要設太接近 4096 很容易爆。