chatgpt-web icon indicating copy to clipboard operation
chatgpt-web copied to clipboard

支持每个对话框设置不同角色

Open simonwu53 opened this issue 1 year ago • 10 comments

不知道大家有没有这个需求,能每个聊天框设置成一个角色,能方便管理已经打开的角色并快速切换。故把此自用的branch提交,供有需要的人使用。

使用场景

  1. 打开一个对话框,设置成词典角色,关闭附带上下文(词典不需要联想,减少开支),这个对话框就能一直保持词典角色,清空内容也不影响。
  2. 同时,可以再开一个对话框,设置成润色文章角色,同样可以不需要上下文,发一段改一段。
  3. 再打开一个对话框,不设置角色(使用设置里的全局默认),当平时的助手,不过需要开上下文功能。
  4. 配合对话本来的改名字功能,每个对话设置一个主题,一目了然。

改动:

  1. 每个chat的自定义system prompt保存在原来的SettingStore,和全局设置里的systemMessage兼容。当本chat没有自定义时使用全局设置,有自定义时使用自定义。
  2. 原来在调用前端api时获取全局systemMessage,现由于需要chat的uuid,改为在src/views/chat/index.vue里把当前的systemMessage加到options中再调用api
  3. 在聊天界面增加一个按钮设置当前聊天的角色。默认使用全局角色。
  4. 支持调用prompt store导入的prompts。
  5. 每个对话框使用单独的上下文开关。 ~~5. 增大系统设置里systemMessage的输入框的大小~~

~~### 未来改进~~ ~~* 还是希望能有基于每个对话的上下文开关以适应不同角色~~

示例

  • GIF link
  • 当前对话角色设置: custom
  • 全局设置框改动: settings

simonwu53 avatar Mar 22 '23 16:03 simonwu53

你的角色库可以提供一下吗,谢谢!这个功能很好!

cy-i avatar Mar 23 '23 02:03 cy-i

很好啊,这也是自用ChatGPT的场景,分角色协助,一个写shell脚本、一个翻译

Cp0204 avatar Mar 23 '23 02:03 Cp0204

你的角色库可以提供一下吗,谢谢!这个功能很好!

我还没有针对system message的prompt,还是基于之前user role的prompt改的。自己瞎写的我都放在我仓库里了🤣之后会根据GPT回复再微调一下

simonwu53 avatar Mar 23 '23 08:03 simonwu53

你好,麻烦问下提示词商店如何使用呢? 现在我的使用方式是打开提示词商店,点击编辑,把内容复制出来粘贴到对话框发送出去。 请问有什么便捷的方式吗? 非常感谢!

CY-Christin avatar Mar 30 '23 16:03 CY-Christin

你好,麻烦问下提示词商店如何使用呢? 现在我的使用方式是打开提示词商店,点击编辑,把内容复制出来粘贴到对话框发送出去。 请问有什么便捷的方式吗? 非常感谢!

这个PR不是修改提示词商店的,而且也没有合并进主分支。这边的新功能是每个对话框能用提示词商店的提示词单独设置AI角色。

OK接下来回答你的问题,要用提示词商店,在聊天界面直接输入“/”就行了(不带引号)。比如提示词商店有一条叫“模拟Linux终端”,那你在聊天框输入“/”就能看到所有提示词弹出,继续输入“/模拟”就看到所有标题以“模拟”开头的提示词。

simonwu53 avatar Mar 30 '23 16:03 simonwu53

很棒的工作!但不能设置 API 的其余参数感觉还是难以达到想要的角色效果(比如想要稳定的结果但默认Temperature太高),而且自己写示例一个个调试也很麻烦。我觉得可以参考下官方的示例,场景丰富而且带有参数设置和示范。我想扒下来弄一个官方角色示例,但现在的工程是代码内固定 API 参数,不懂 JavaScript 实在是无从下手。

Lamply avatar Mar 31 '23 07:03 Lamply

已用,很方便

sampr373 avatar Mar 31 '23 08:03 sampr373

很棒的工作!但不能设置 API 的其余参数感觉还是难以达到想要的角色效果(比如想要稳定的结果但默认Temperature太高),而且自己写示例一个个调试也很麻烦。我觉得可以参考下官方的示例,场景丰富而且带有参数设置和示范。我想扒下来弄一个官方角色示例,但现在的工程是代码内固定 API 参数,不懂 JavaScript 实在是无从下手。

❌~~上游的gpt包不支持启动后再调其他参数,目前只提供了改system message。除非后端重做,只留通过API使用的方法,自由度会更高一点。~~ ✅会做每个角色单独设置temperature

simonwu53 avatar Mar 31 '23 15:03 simonwu53

你好,这些角色能固定到左边list里边吗

nsl2014fm avatar Apr 03 '23 07:04 nsl2014fm

你好,这些角色能固定到左边list里边吗

目前需要自己新建对话框手动设置角色

simonwu53 avatar Apr 08 '23 14:04 simonwu53

@simonwu53 你好,我合并了这个pr,好像有个问题,访问时系统打开的第一个对话框无法关闭上下文,点击会一直是开启状态,多次点击会有几率出现发送消息不会显示,但F12能看到回复的内容,不知道能否修复下,谢谢

gougui avatar Sep 29 '23 09:09 gougui

@simonwu53 你好,我合并了这个pr,好像有个问题,访问时系统打开的第一个对话框无法关闭上下文,点击会一直是开启状态,多次点击会有几率出现发送消息不会显示,但F12能看到回复的内容,不知道能否修复下,谢谢

可能最近更新一下,同步最新版本。

simonwu53 avatar Oct 11 '23 08:10 simonwu53