/FreeGPT35-Vercel

Utilize the unlimited free ChatGPT3.5-Turbo API service provided by the login-free ChatGPT Web. Supporting Vercel Deployments.

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

简体中文 / English

我Vercel又复活啦!!!!!! 已支持流式响应!!!!!!

并发这次也确实提高了, 之前确实测得不准,这次真够用了

ChatGPT Next Web 测试:

在线体验: https://chat.iqaq.me/

当然这么长的回复10s肯定发不完 Stream

依然存在的问题

  • 超过10s之后会断流。(因为Vercel免费版持续时间最大值10秒,因此使用沉浸式翻译记得降低最大文本长度到600左右,并发30)。
  • 向OpenAI请求的token的刷新依靠的是定时任务,免费用户一天只给用一次...

解决办法:

Vercel Pro 计划 超时上限为300s,并且自带cron计划任务跳转Pro部署介绍 否则定时任务可通过cron-jobUptime Kuma等定期(每2-4分钟)调用https://你的域名/api/cron


Vercel部署按钮

不推荐,无法同步更新, 并且新版需要数据库了,点了也还需要配置数据库步骤 该按钮目前已经包含了Vercel KV数据库,免费计划仅需配一下cron-job,看下面部署 方式一: 第八条

Deploy with Vercel


部署项目

以下均建议绑定自定义域名解决Vercel域名被阻断问题

方式一: 结合 VercelKV数据库部署 (kv数据库每天只有3k次、每月30k次访问,仅够个人低频率使用)

  1. fork 本仓库,fork时,取消勾选 Copy the main branch only

  2. 进入Vercel,导入您fork的仓库

  3. 点击Deploy,等待部署完成

  4. 进入Storage选项卡,创建一个KV数据库,Database Name随便起,Primary Region区域推荐选San Francisco,点击Create

  5. 务必确认kv数据库的Projects选项卡连接了你的项目

  6. (可选) 在SettingsDomains下绑定你自己的域名。

  7. 转到顶部Deployments选项卡,Redeploy重新部署你的项目

  8. (免费计划用户)到cron-job创建一个定时访问刷新token的任务,填上https://你的域名/api/cron,选个每两分钟,Create就好了,有其他类似Uptime Kuma也一样。 Cron

  9. 完成! 鼓掌,第一次部署完建议手动访问一下https://你的域名/api/cron刷新token


方式二: 结合 UpstashRedis数据库部署 (每天10k次访问) 推荐!

官方文档

  1. 跳转到Upstash创建并登录您的账户,创建一个Redis数据库
  2. Region 推荐选 California, USAEviction勾选,然后创建 Create Database
  3. 注意UPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKEN,等下要复制这两对数据名和数据的值,这两对数据等下要在VercelEnvironment Variables里填入 Upstash API
  4. fork 本仓库,fork时,取消勾选 Copy the main branch only
  5. 在vercel中导入您fork的仓库
  6. Environment Variables 输入框中填入 第3步 的两对数据 Environment Variables
  7. 点击Deploy
  8. (可选) 在SettingsDomains下绑定你自己的域名。
  9. 转到顶部Deployments选项卡,Redeploy重新部署你的项目
  10. (同上 8. 免费计划用户需要设置cron-job.org定时任务)
  11. 完成! 鼓掌,第一次部署完建议手动访问一下https://你的域名/api/cron刷新token

方式三: Vercel Pro 计划的尊贵用户,移除请求最大持续时间10s上限,自带cron定时任务

  1. 前几步部署和上述两种计划相同,按需选择,并且不需要设置cron计划任务了
  2. 只需在最后Redeploy重新部署前,到Settings下的Git页面,在Production Branch填入vercel-pro点击Save guide
  3. 然后转到顶部Deployments选项卡,注意不要在下面已经部署的记录里选!!!,点击如图右上角的三个点 Create Deployment选择vercel-pro然后Create Deployment deploy
  4. 完成! 鼓掌,第一次部署完建议手动访问一下https://你的域名/api/cron刷新token

请求示例

如果你没有设置AUTH_TOKEN,你可以不传递Authorization,也可以随意传递任何字符串。

curl https://[Your Vercel Domain]/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer any_string_you_like" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "user",
        "content": "Hello!"
      }
    ],
    "stream": true
    }'

高级设置

环境变量 (如果你不知道是干嘛的,请不要随意设置)

Key Value 解释 要求
AUTH_TOKEN You_set_the_apikey_yourself. 你为自己接口设置的apikey。 可选
UPSTASH_REDIS_REST_URL Your_Upstash_URL 你的Upstash Redis数据库的URL 可选
UPSTASH_REDIS_REST_TOKEN Your_Upstash_Token 你的Upstash Redis数据库的Token 可选

并发调整

默认定时4分钟更新16个token,token决定并发,一般绝对够用了,如需上调要考虑能在10s请求时间上限内刷新完token (Pro用户可自行规划)

兼容性

您可以在任何客户端中使用它,如 OpenCatNext-ChatLobe-ChatBob 等。在API Key中随意填写任何字符串或者你设置了AUTH_TOKEN,就填写它。

Bob

Bob

Credits

Similar Project

  • aurora: Golang development, support for multiple deployment methods

License

AGPL 3.0 License