Skip to content

kungsin/chatgpt-vercel

This branch is 130 commits behind ourongxing/chatgpt-vercel:main.

Folders and files

NameName
Last commit message
Last commit date
Mar 20, 2023
Apr 3, 2023
Apr 12, 2023
Apr 7, 2023
Mar 20, 2023
Apr 4, 2023
Mar 19, 2023
Mar 19, 2023
Mar 18, 2023
Mar 7, 2023
Apr 7, 2023
Apr 3, 2023
Mar 18, 2023
Mar 19, 2023
Mar 23, 2023
Apr 2, 2023
Mar 18, 2023
Mar 18, 2023
Mar 18, 2023

Repository files navigation

ChatGPT-Vercel

本项目基于 chatgpt-demo 开发。

在线预览:

  1. chatsverse.xyz,由 @Airyland 免费提供。(2023.03.31 被墙)
  2. aitoolgpt.com,由 @AUDI_GUZZ 免费提供。(2023.03.22 壮烈牺牲,提醒大家不要过度分享自己的站点出去,指不定 ChatGPT 说出什么违禁词出来)。
  3. vercel.app 被墙。

Warning

API Key 已经被封完了,请自行部署。现在 OpenAI 的 5$ 免费账号巨容易封,不建议再部署到 Vercel 或者其他平台上了,要部署请直接国外 VPS。切记一个 IP 一个 Key,不要搞轮询。18$ 或者绑卡账号目前还没有这些问题。

使用方法

  • 设置

    • 系统角色指令:会在每次提问时添加。主要用于对 ChatGPT 的语气,口头禅这些进行定制。

    • 思维发散程度:越高 ChatGPT 思维就越发散,开始乱答。根据不同的问题可以调节这个选项,创意性的就可以调高一点。

    • 开启连续对话:OpenAI 并没有提供 ChatGPT 那样的上下文功能,只能每次都把全部对话传过去,并且都要算 token,而且仍然有最大 4096 token 的限制。

    • OpenAI 模型:需要注意的是, 只有获得了 GPT4 API 内测资格的用户才可以使用您的 API KEY 调用 GPT4。不同的模型对应的 token 最大值不同,比如 gpt-3.5-turbo 的最大 token 为 4k(4096),gpt-4 的最大 token 为 8k(8192),gpt-4-32k 的最大 token 为 32k(32768)。不同模型的价格也不同,具体可以查看 OpenAI 价格

  • token 是怎么算的:OpenAI 有它自己的算法,大多数时候是一个单词 1 token,一个汉字 2 token。

  • Open AI Key 要怎么获得:注册 OpenAI 的帐号,然后 生成 Key 就行了。现在注册就送 5 美元,可以用一两个月。嫌注册麻烦,可以直接去买号,自行搜索。注意不要被骗,一般 5 元以下可以入手,看到有 120 美元的 key,这种属于是绑了虚拟信用卡,可以透支 120 美元,只能用一个月,而且容易封号。

  • 输入框右边的四个按钮:

    • 对话生成图片,电脑上是复制到剪贴板,手机上是直接下载。
    • 对话生成 Markdown,复制到剪贴板。
    • 清空对话。
  • 消息:

    • 点击每条消息前的头像可以锁定对话,清空对话时不会清除。
    • 对于提问,可以修改,重新回答,删除。修改是填入输入框。重新回答和删除会自动删除提问和回答。
    • 对于回答,可以复制,重新回答,删除。重新回答也会自动删除提问和回答。删除只会删除回答。
  • 输入框

    • Enter发送,Shift+Enter换行。
    • 空格 或者 / 搜索 Prompt 预设,现在只显示 20 个。所有 Prompt 可以查看 prompts.md
    • 将最近的一次提问填到输入框里。
  • 点击顶部标题滚动到顶部,点击输入框滚动到底部。

  • 发送 sk- 开头的 key,可以直接查询余额。可以换行查询多个。也可以发送 查询填写的 Key 的余额 来直接查询你填的 key 的余额,这个 Prompt 预设第一个就是,直接用。作为站长,你可以通过设置环境变量来定时查询所有内置 key 的余额,并发送到微信上。

  • url 里使用 url?q=你好啊 这种方式可以打开网页直接回答 你好啊,当作搜索引擎使用。

部署一个你自己的 ChatGPT 网站(免费)

Warning

现在 OpenAI 的 5$ 免费账号巨容易封,不建议再部署到 Vercel 或者其他平台上了,要部署请直接国外 VPS。切记一个 IP 一个 Key,不要搞轮询。18$ 或者绑卡账号目前还没有这些问题。

如果你只需要部署一个你自己用的网站,而不需要定制,那么你完全不需要在本地跑起来,你可以直接点击下面的按钮,然后按照提示操作,然后在 Vercel 中填入环境变量即可。vercel.app 域名已经被墙,但 vercel 本身没有被墙,所以你绑定自己的域名就可以了。如果广泛分享,域名有被墙的风险。

Deploy with Vercel

不过上面这种方式不容易更新,最好还是先 fork 本仓库,然后在 Vercel 中导入你自己的仓库,之后要更新就在 Github 里点击 Sync fork 就可以同步更新了。

如果你需要部署给更多人用,需要修改一些代码,那么你可能需要将上面创建的你自己的仓库 git clone 到本地。改完了 git commit & push 即可重新部署,vscode 上点几下就可以了。也可以用 vercel 的 cli,vercel deploy --prod

如果你需要在本地开发和调试,有点麻烦:

  1. 升级到 node18,要用到原生的 fetchreadableStream
  2. API 被墙了,自己想办法开代理,不然要报错。可以设置 OpenAI 的代理 API,也可以直接 vercel deploy 部署到 vercel 开发环境上调试。
  3. pnpm i 安装依赖。
  4. pnpm dev 启动项目。

更多部署方案

目前本项目除 Vercel 以外还支持

直接导入即可,但是不建议使用除 Vercel 以外的部署方案。 除了比较慢以外,更重要的是只有 Vercel 支持设置 Edge Function 服务器的地区,其他平台会自动使用距离最近的服务器,有可能是 OpenAI 不支持的地区,从而导致封号。

环境变量

环境变量 说明 默认值
OPENAI_API_KEY OpenAI API Key,可以填写多个,用 | 或者 换行 隔开,随机调用。最好是多填几个,API 有并发上的限制。如果用户不填自己的 key,那么就会使用你的 key。
TIMEOUT OpenAI API 超时。单位为毫秒,Vercel Edge Function 最大超时为 30000。 30000
DEFAULT_MESSAGE 默认提示信息 - xx xx
DEFAULT_SETTING 默认设置 {
"continuousDialogue": true,
"archiveSession": false,
"openaiAPIKey": "",
"openaiAPITemperature": 60,
"password": "",
"systemRule": "",
"model": "gpt-3.5-turbo"
}
RESET_CONTINUOUS_DIALOGUE_OPTION 刷新时重置 开启连续对话 选项,在分享给很多人用的时候可以有效避免大量消耗。 false
OPENAI_API_BASE_URL 本地开发时可以填写 OpenAI 的代理服务器,但是 Vercel 不需要。 api.openai.com
PASSWORD 网站密码
MAX_INPUT_TOKENS 输入的 token 最大值,如果开启 连续对话,将计算之前的所有对话内容。OpenAI 限制 token 最大值为 4096,但这是输入和输出之和,所以可以将这个值设置为 3072, 留 1024 作为输出。如果不想被滥用,可以将这个值设置的再小一点。 {
"gpt-3.5-turbo": 3072,
"gpt-4": 6144,
"gpt-4-32k": 24576
}
SENDKEY 使用 Server 酱 推送帐号余额以及可用状态到微信,如果需要自行获取。推送时间为早上 8 点和晚上 8 点,在 vercel.json 文件中修改。如果 key 太多,超过 20 个,有可能失败。
SENDCHANNEL Server 酱 的推送通道,默认微信服务号。 9

有两种设置方式

  1. .env.example 文件修改为 .env,在 .env 中设置。
  2. Vercel 中设置 Environment Variables。尽量使用这种方式,比较方便。会在下次部署时生效。

默认设置

记得删除注释,或者直接复制上面表格里的。

{
  "continuousDialogue": true, // 开启连续对话,每次都需要将上下文传给 API,比较费钱,而且同样有 4096 token 的限制
  "archiveSession": false, // 记录对话内容,刷新后不会清空对话
  "openaiAPIKey": "", // 默认填写的 key,不需要填写,否则其他人看得到。
  "password": "", // 默认填写的密码,不需要填写,否则其他人看得到。
  "openaiAPITemperature": 60, // 0-100 越高 ChatGPT 思维就越发散,开始乱答
  "systemRule": "", // 系统角色指令,会在每次提问时添加。主要用于对 ChatGPT 的语气,口头禅这些进行定制。
  "model": "gpt-3.5-turbo"
}

提交你的 Prompts

  1. Fork 本项目。
  2. 修改 prompts.md
  3. Pull Request 即可。

如果你不懂这个操作,也可以直接在 Issues 提交你的 Prompts。目前大部分 Prompts 来自于 awesome-chatgpt-prompts-zh,当然,这个仓库大多数也是翻译的 awesome-chatgpt-prompts,一并感谢。

要求

  • 把需要输入的内容放在最后,可以提示 ChatGPT 开始输入了,比如 “我的第一句话是:”。
  • 尽可能去优化已有的 Prompts,而不是重复添加。
  • 添加到结尾,我会定期整理。

赞赏

如果本项目对你有所帮助,可以给小猫买点零食,但不接受任何付费功能请求。

License

MIT

About

Elegant and Powerfull. Powered by OpenAI and Vercel.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.0%
  • Other 1.0%