chatgpt-web-dev / chatgpt-web

A third-party ChatGPT Web UI page built with Express and Vue3, through the official OpenAI completion API. / 用 Express 和 Vue3 搭建的第三方 ChatGPT 前端页面, 基于 OpenAI 官方 completion API.
https://chatgpt-web.dev
MIT License
1.61k stars 441 forks source link

feat: set user deafult model & set chat model by per chat room #402

Closed BobDu closed 8 months ago

BobDu commented 8 months ago

之前修改chat model 时会修改用户级别的模型配置。影响该用户的所有 chat room 修改为针对单个 chat room 调整 所使用的 model

同时 新增 用户默认模型选择 当用户新增会话时 使用用户设置的默认值

image
vercel[bot] commented 8 months ago

Someone is attempting to deploy a commit to a Personal Account owned by @Kerwin1202 on Vercel.

@Kerwin1202 first needs to authorize it.

Kerwin1202 commented 8 months ago

目前 单个 room 里 我觉得还行呀,至少切换方便,否则每次修改默认的都得打开设置去修改,而现在只要新加对话,本次用的是啥,下次新对话(或未产生聊天的对话)也用的是啥

你这样感觉要多一次设置是不是不方便,而且还得刷新页面才会变?(没合并测试)

BobDu commented 8 months ago

而现在只要新加对话,本次用的是啥,下次新对话(或未产生聊天的对话)也用的是啥

目前的逻辑是。只要切换了一次模型。那不管是新对话 (或未产生聊天的对话) 还是已经有产生聊天的对话。使用的模型就都变了。这个有确认了代码也实际运行了测试。

async function chatReplyProcess(options: RequestOptions) {
  const model = options.user.config.chatModel
...
    const api = await initApi(key, model, maxContextCount)

我个人理解至少已经产生了聊天的对话。它所使用的模型。不应该被在其他对话页面能改变才比较合适。

你这样感觉要多一次设置是不是不方便,

从方便的角度来看确实是稍微增加了一些操作路径。但是这样子用户对当前的操作产生的结果是更明确的。一定程度上是降低了使用时候的理解成本。 我司内部部署了该服务后也确实有一些内部反馈对这个操作上的困惑。我个人感觉这个权衡还是值得的。

而且还得刷新页面才会变?

这个是不需要用户手动去刷新页面的。只要更新了默认对话模型配置之后。再新开的会话直接就会生效。

Kerwin1202 commented 8 months ago

看了下原来代码,你是对的,写了个bug,之前只看了页面上的选项,页面上的逻辑是 选择模型 只影响 新的聊天 或 未聊天的聊天室,但是页面变了,后端 不认页面修改 还是读取的全局

那么是否直接可以更新 当前聊天室 同时更新 全局呢,这样就省得 还到设置里去操作了, 我看 gpt 官网就是修改会影响下一次的对话。。

你这个设置也可以保留,同时支持全局 你觉得呢,只是探讨

目前这个就是会影响全局的,单独设置里也有

image
BobDu commented 8 months ago

那么是否直接可以更新 当前聊天室 同时更新 全局呢,这样就省得 还到设置里去操作了, 我看 gpt 官网就是修改会影响下一次的对话。。

已按照建议进行修改。辛苦重新 review @Kerwin1202