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

内置用户头像+昵称修改

Open shuncon opened this issue 1 year ago • 6 comments

image 请问一下 什么时候支持docker-conpose修改这里,由于对公司人员使用,不可让很多非技术同事类知道

shuncon avatar Mar 20 '23 07:03 shuncon

+1

jamebal avatar Mar 20 '23 07:03 jamebal

image 请问一下 什么时候支持docker-conpose修改这里,由于对公司人员使用,不可让很多非技术同事类知道

或者隐藏掉

shuncon avatar Mar 20 '23 07:03 shuncon

环境变量应该针对系统参数设置,而非UI展示,建议自行fork修改

zhuxindong avatar Mar 20 '23 08:03 zhuxindong

改前端源码就好了,指路src/store/modules/user/helper.ts

stakeswky avatar Mar 20 '23 08:03 stakeswky

可以尝试使用下我这个源码编译一键部署的脚本:ChatGPT-WEB_build

脚本执行过程中可以交互实现替换头像、描述这些原来的信息为你自己的;脚本中实现了自动检测node环境安装、nginx安装

dqzboy avatar Mar 20 '23 15:03 dqzboy

read -p "Enter Docker container name (default: chatgpt-web): " DOCKER_CONTAINER_NAME
DOCKER_CONTAINER_NAME=${DOCKER_CONTAINER_NAME:-"chatgpt-web"}

read -p "Enter new index.htm title (default: ChatGPT Web): " NEW_HTML_TITLE
NEW_HTML_TITLE=${NEW_HTML_TITLE:-"ChatGPT Web"}

read -p "Enter new avatar URL (default: https://api.multiavatar.com/xxx.svg): " NEW_AVATAR_URL
NEW_AVATAR_URL=${NEW_AVATAR_URL:-"https://api.multiavatar.com/$(shuf -i 1000000000-9999999999 -n 1).svg"}

read -p "Enter new name (default: Cp0204): " NEW_NAME
NEW_NAME=${NEW_NAME:-"Cp0204"}

read -p "Enter new description (default: ): " NEW_DESCRIPTION
NEW_DESCRIPTION=${NEW_DESCRIPTION:-""}

docker exec ${DOCKER_CONTAINER_NAME} sh -c "find /app/public/ -name 'index.html' -type f -exec sed -i \"s|<title>.*</title>|<title>${NEW_HTML_TITLE}</title>|g\" {} +"

docker exec ${DOCKER_CONTAINER_NAME} sh -c "find /app/public/ -name 'index*.js' -type f -exec sed -i \"s|{userInfo:{avatar:\s*\\\"[^\\\"]*\\\",name:\s*\\\"[^\\\"]*\\\",description:\s*'[^']*'}}|{userInfo:{avatar:\\\"${NEW_AVATAR_URL}\\\",name:\\\"${NEW_NAME}\\\",description:'${NEW_DESCRIPTION}'}}|g\" {} +"

用 docker 的话,保存到宿主机 changeinfo.sh,执行它。

本脚本在 ChatGPT 下协助完成,但是正则匹配中涉及有单双引号多层转移,调了很久,眼瞎了。 T T

Cp0204 avatar Mar 21 '23 03:03 Cp0204

其实可以本地修改再本地 docker build 呀,不要搞那么复杂。

Chanzhaoyu avatar Mar 22 '23 14:03 Chanzhaoyu

其实可以本地修改再本地 docker build 呀,不要搞那么复杂。

是可以。 主要是宿主机没有 npm 环境,比如轻量 nas,很多时候是希望一条 docker run 跑起来就用。 这种情景下更新,频繁 git pull、本地修改、本地 docker build 会更麻烦。

类似的 Docker 应用 配置自定义一般有两种方式:

  1. 用环境变量载入(当前)
  2. 设定一个配置文件,挂载它。

有没有可能把前端默认参数放到一个 config.json,这样就可以在 docker 中单独挂载,例如:

{
    "user_avatar_url": "xxx.jpg",
    "user_name": "Chanzhaoyu",
    "user_description": "xxx",
    "theme": "light",
    "language": "zh_CN",
    "prompts_lists": [
        {
            "key": "chatgpt-prompt-collection",
            "desc": "Nothing1024收集整理的prompts",
            "downloadUrl": "https://raw.githubusercontent.com/Nothing1024/chatgpt-prompt-collection/main/awesome-chatgpt-prompts-zh.json",
            "url": "https://github.com/Nothing1024/chatgpt-prompt-collection"
        },
        {
            "key": "awesome-chatgpt-prompts-zh",
            "desc": "ChatGPT 中文调教指南",
            "downloadUrl": "https://raw.githubusercontent.com/PlexPt/awesome-chatgpt-prompts-zh/main/prompts-zh.json",
            "url": "https://github.com/PlexPt/awesome-chatgpt-prompts-zh"
        },
        {
            "key": "awesome-chatgpt-prompts-zh-TW",
            "desc": "ChatGPT 中文調教指南 (透過 OpenAI / OpenCC 協助,從簡體中文轉換為繁體中文的版本)",
            "downloadUrl": "https://raw.githubusercontent.com/PlexPt/awesome-chatgpt-prompts-zh/main/prompts-zh-TW.json",
            "url": "https://github.com/PlexPt/awesome-chatgpt-prompts-zh"
        }
    ]
}

这样扩展性会好很多,还解决这种个人癖好问题。甚至后端参数也用这种方式,修改了配置重启容器就行了。

Cp0204 avatar Mar 23 '23 01:03 Cp0204

你这有点离谱,这种页面的东西就不应该配置在参数了,否则,像页面的颜色,图标大小,宽高,是不是都应该可配置化?

离谱这个词有些言重,也不要过度解读。我上面 json 写的都是可配置项,跟你举例的DOM参数是两码事。

前端剥出来再以 json 载入是考虑过可行性的,也是许多著名项目通行做法,例如 aria2 以 .conf 文件配置再 jsonrpc/ws 给前端,ariang 多语言以 langs/xxx.txt 载入,等。

Cp0204 avatar Mar 23 '23 03:03 Cp0204

确实,但如果考虑都从配置中加载的话,会麻烦很多

zhuxindong avatar Mar 23 '23 04:03 zhuxindong

其实可以本地修改再本地 docker build 呀,不要搞那么复杂。

1h1g的服务器直接就build不了 哭死

doveppp avatar Mar 31 '23 13:03 doveppp

因为我使用的群晖的NAS 不想重新部署线上环境想直接在docker中解决

我刚才使用脚本一直不好使,然后我发现可以从docker中把线上前端项目复制出来然后更改其中的参数再把这个文件挂载到docker上就可以了,具体路径在 /app/public 把/app/public下载到本地 /app/public/assets 中有几个index-XXXXX.js 文件 每个里面都搜索 {userInfo:{avatar: 直到找到存在的文件 后面的name 对应的就是名称 avatar:头像 description:描述

更改完成之后把文件夹挂载到docker中就可以了

baldLi avatar Apr 01 '23 10:04 baldLi

read -p "Enter Docker container name (default: chatgpt-web): " DOCKER_CONTAINER_NAME
DOCKER_CONTAINER_NAME=${DOCKER_CONTAINER_NAME:-"chatgpt-web"}

read -p "Enter new avatar URL (default: https://api.multiavatar.com/xxx.svg): " NEW_AVATAR_URL
NEW_AVATAR_URL=${NEW_AVATAR_URL:-"https://api.multiavatar.com/$(shuf -i 1000000000-9999999999 -n 1).svg"}

read -p "Enter new name (default: ChatGPT): " NEW_NAME
NEW_NAME=${NEW_NAME:-"ChatGPT"}

read -p "Enter new description (default: ): " NEW_DESCRIPTION
NEW_DESCRIPTION=${NEW_DESCRIPTION:-""}

docker exec ${DOCKER_CONTAINER_NAME} sh -c "find /app/ -name 'index*.js' -type f -exec sed -i \"s|{userInfo:{avatar:\s*\\\"[^\\\"]*\\\",name:\s*\\\"[^\\\"]*\\\",description:\s*'[^']*'}}|{userInfo:{avatar:\\\"${NEW_AVATAR_URL}\\\",name:\\\"${NEW_NAME}\\\",description:'${NEW_DESCRIPTION}'}}|g\" {} +"

用 docker 的话,保存到宿主机 changeinfo.sh,执行它。

本脚本在 ChatGPT 下协助完成,但是正则匹配中涉及有单双引号多层转移,调了很久,眼瞎了。 T T

哥们,方便让他弄一个修改标题的代码吗?我看主页自诉文件只有改index.js里面的title,但是我不懂docker没找到docker里面这个文件在哪。。也不知道怎么和gpt表达我这个意思 你那边能历史对话再问问让他加一下吗?感谢

superen7527 avatar Apr 03 '23 13:04 superen7527

哥们,方便让他弄一个修改标题的代码吗?我看主页自诉文件只有改index.js里面的title,但是我不懂docker没找到docker里面这个文件在哪。。也不知道怎么和gpt表达我这个意思 你那边能历史对话再问问让他加一下吗?感谢

脚本已更新,含主页标题的修改 https://github.com/Chanzhaoyu/chatgpt-web/issues/720#issuecomment-1477235049

Cp0204 avatar Apr 04 '23 04:04 Cp0204

哥们,方便让他弄一个修改标题的代码吗?我看主页自诉文件只有改index.js里面的title,但是我不懂docker没找到docker里面这个文件在哪。。也不知道怎么和gpt表达我这个意思 你那边能历史对话再问问让他加一下吗?感谢

脚本已更新,含主页标题的修改 #720 (comment)

谢谢 十分感谢

superen7527 avatar Apr 04 '23 12:04 superen7527