Closed KingJadeLight closed 1 year ago
有没有更多的信息?比如追问的是几条之前的消息?消息的平均字数是?
对了,如果你可以试试消息的引用功能,很适合特别长的聊天会话。
也遇到了,好像它不是很能联系上下文回答问题。 ... 略
然后就乱回答了
现在上下文的算法是:会话第一条消息(用于AI设定) + 最新的 1500 个字。你看下是不是因为这个原因?
现在上下文的算法是:会话第一条消息(用于AI设定) + 最新的 1500 个字。你看下是不是因为这个原因?
啊,这么解释就通了,记忆重置
你现在是一个技术文档的翻译专家,我会把一份 yml 给你,你负责把 yml 的内容翻译成中文,不要更改里面的 link ,明白了吗。
似乎只会复读了。
现在上下文的算法是:会话第一条消息(用于AI设定) + 最新的 1500 个字。你看下是不是因为这个原因?
会话第一条有特殊地位吗?不同于其他对话?如果是的话,可以提供一个选项,使得新对话不用任何或默认设定吗?我觉得目前的这个会对很多新用户产生困扰,尤其是从官网过来的。
在 Chatbox 可以设置 system 角色的消息,可以强化 GPT3.5 的 prompting 效果。很多有经验的用户都会在新会话的第一条消息就设置成 system 角色消息,让 GPT 在当前会话更好地进入角色。用人话说,在第一句就给 AI 进行 “系统人设的设定”。
这也是为什么 Chatbox 比 ChatGPT 在 prompting 上更自由的原因,对于开发者很适合用来作为 prompting 的调试和开发,对于普通用户很适合用作“人设”系统设定的管理
关于上面讨论的问题,我认为最可能的原因是历史消息太多了、GPT 没办法回答太早的问题。在现在的设计中,GPT 只会根据“第一条消息 + 最近 1800 字的问答文本” 作为上下文进行回答。其中 1800 字是考虑到了 GPT3.5 当前的 tokens 数量限制,目前 GPT 3.5 没办法处理超过大约 4000 tokens 以上的内容。
如果你在和 AI 长谈,希望它讨论很长内容之前的话题,你可以用 Chatbox 的“引用”功能,就像微信的引用一样,按钮就在消息右边的展开菜单里,可以用来唤起 AI 的回忆。这也是 Chatbox 的独特设计之一。
我没描述清楚。现在不是不记得之前,而是只记得之前的。比如我第一句话是“润色以下文字”。之后我再让他润色另一段文字,然后回答的还是第一段文字的结果。所以我才问在这个app里,第一句话是不是不同于其他,只用于系统人设?我一会儿做一个例子
即是系统人设,也是普通消息
也就是说,是不是我写的“润色以下文字:吧啦吧啦吧啦” 整段都被当成了人设?所以我后面让他润色其他文字的时候,还以为要润色最早的那段?
也就是说,是不是我写的“润色以下文字:吧啦吧啦吧啦” 整段都被当成了人设?所以我后面让他润色其他文字的时候,还以为要润色最早的那段?
额……在你这种情况确实会这样。一般 prompting 的时候第一句都是 “请帮我润色文案。我说一段,你润色一段” 类似这种
我看其他项目保留的是第1条系统消息和最近的10次对话(20条消息),可以加个按钮,由用户决定是否开启消息裁剪。
我看其他项目保留的是第1条系统消息和最近的10次对话(20条消息),可以加个按钮,由用户决定是否开启消息裁剪。
我计划中 Chatbox 可以看到一条消息所有参与上下文的内容、可以根据多种策略修改当前会话的 prompt 规则。因为 Chatbox 太早期了(才开发两周),所以我还没来得及开发,感兴趣可以一起搞搞
的确还是有问题。比如我一开始问的是一个问题,来回问答几次。然后有来回问答几次另一个问题,然后突然某次它回答的是上一条问题的答案。
@Bin-Huang 这个App很有意思,我想请假下,这样把会话的上下文带上去,会不会造成不必要的成本,因为输入token也是要收费的。
const messages: ChatCompletionRequestMessage[] = prompts.map(msg => ({ role: msg.role, content: msg.content }))
const response = await fetch(`${host}/v1/chat/completions`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
messages,
model: modelName,
max_tokens: maxTokensNumber,
stream: true
})
});
@bravekingzhang 最新版本可以设置最多 token 限制
在 Chatbox 可以设置 system 角色的消息,可以强化 GPT3.5 的 prompting 效果。很多有经验的用户都会在新会话的第一条消息就设置成 system 角色消息,让 GPT 在当前会话更好地进入角色。用人话说,在第一句就给 AI 进行 “系统人设的设定”。
请问这个怎么设置
新版本可以设置最多 token 限制
@Bin-Huang 我们好像说的不是一个事,我的本意是指把这些历史的 QA,都带上去请求接口会消耗 输入token,整体而言还是消耗token数量,这里的限制token数量,确实可以避免越带越多,至少有一个上限,但是总归越到后面越会大的消耗
我一直不明白,OpenAI为什么不给予 contextId,或者 说 chatId的方式,避免请求时把一堆的历史包袱都给带上,而是server端从contextId中去取会话的历史消息。
比如我追问的时候,它就回答出不相关的问题。官网没有这个问题。
确实存在这个 Bug,我已经修复了。应该今晚会发布新的修复版本
存在一个bug可能会导致答非所问,现在已经修复了。
更新下载: https://github.com/Bin-Huang/chatbox/releases/tag/Chatbox-v0.2.1
比如我追问的时候,它就回答出不相关的问题。官网没有这个问题。