chatgpt-web
chatgpt-web copied to clipboard
支持每个对话框设置不同角色
不知道大家有没有这个需求,能每个聊天框设置成一个角色,能方便管理已经打开的角色并快速切换。故把此自用的branch提交,供有需要的人使用。
使用场景
- 打开一个对话框,设置成词典角色,关闭附带上下文(词典不需要联想,减少开支),这个对话框就能一直保持词典角色,清空内容也不影响。
- 同时,可以再开一个对话框,设置成润色文章角色,同样可以不需要上下文,发一段改一段。
- 再打开一个对话框,不设置角色(使用设置里的全局默认),当平时的助手,不过需要开上下文功能。
- 配合对话本来的改名字功能,每个对话设置一个主题,一目了然。
改动:
- 每个chat的自定义system prompt保存在原来的SettingStore,和全局设置里的systemMessage兼容。当本chat没有自定义时使用全局设置,有自定义时使用自定义。
- 原来在调用前端api时获取全局systemMessage,现由于需要chat的uuid,改为在
src/views/chat/index.vue
里把当前的systemMessage加到options
中再调用api - 在聊天界面增加一个按钮设置当前聊天的角色。默认使用全局角色。
- 支持调用prompt store导入的prompts。
- 每个对话框使用单独的上下文开关。 ~~5. 增大系统设置里systemMessage的输入框的大小~~
~~### 未来改进~~ ~~* 还是希望能有基于每个对话的上下文开关以适应不同角色~~
示例
- GIF link
- 当前对话角色设置:
- 全局设置框改动:
你的角色库可以提供一下吗,谢谢!这个功能很好!
很好啊,这也是自用ChatGPT的场景,分角色协助,一个写shell脚本、一个翻译
你的角色库可以提供一下吗,谢谢!这个功能很好!
我还没有针对system message的prompt,还是基于之前user role的prompt改的。自己瞎写的我都放在我仓库里了🤣之后会根据GPT回复再微调一下
你好,麻烦问下提示词商店如何使用呢? 现在我的使用方式是打开提示词商店,点击编辑,把内容复制出来粘贴到对话框发送出去。 请问有什么便捷的方式吗? 非常感谢!
你好,麻烦问下提示词商店如何使用呢? 现在我的使用方式是打开提示词商店,点击编辑,把内容复制出来粘贴到对话框发送出去。 请问有什么便捷的方式吗? 非常感谢!
这个PR不是修改提示词商店的,而且也没有合并进主分支。这边的新功能是每个对话框能用提示词商店的提示词单独设置AI角色。
OK接下来回答你的问题,要用提示词商店,在聊天界面直接输入“/”就行了(不带引号)。比如提示词商店有一条叫“模拟Linux终端”,那你在聊天框输入“/”就能看到所有提示词弹出,继续输入“/模拟”就看到所有标题以“模拟”开头的提示词。
很棒的工作!但不能设置 API 的其余参数感觉还是难以达到想要的角色效果(比如想要稳定的结果但默认Temperature太高),而且自己写示例一个个调试也很麻烦。我觉得可以参考下官方的示例,场景丰富而且带有参数设置和示范。我想扒下来弄一个官方角色示例,但现在的工程是代码内固定 API 参数,不懂 JavaScript 实在是无从下手。
已用,很方便
很棒的工作!但不能设置 API 的其余参数感觉还是难以达到想要的角色效果(比如想要稳定的结果但默认Temperature太高),而且自己写示例一个个调试也很麻烦。我觉得可以参考下官方的示例,场景丰富而且带有参数设置和示范。我想扒下来弄一个官方角色示例,但现在的工程是代码内固定 API 参数,不懂 JavaScript 实在是无从下手。
❌~~上游的gpt包不支持启动后再调其他参数,目前只提供了改system message。除非后端重做,只留通过API使用的方法,自由度会更高一点。~~ ✅会做每个角色单独设置temperature
你好,这些角色能固定到左边list里边吗
你好,这些角色能固定到左边list里边吗
目前需要自己新建对话框手动设置角色
@simonwu53 你好,我合并了这个pr,好像有个问题,访问时系统打开的第一个对话框无法关闭上下文,点击会一直是开启状态,多次点击会有几率出现发送消息不会显示,但F12能看到回复的内容,不知道能否修复下,谢谢
@simonwu53 你好,我合并了这个pr,好像有个问题,访问时系统打开的第一个对话框无法关闭上下文,点击会一直是开启状态,多次点击会有几率出现发送消息不会显示,但F12能看到回复的内容,不知道能否修复下,谢谢
可能最近更新一下,同步最新版本。