DDG-Chat(逆向 ChatGPT API)

前言

新手贴,第一次来 Linuxdo,不知道发些什么,就发个前段时间写的 DDG-Chat 吧。

正文

DDG-Chat

一键免费部署到各种平台你的 ChatGPT API 后端

支持 Vercel, Cloudflare Workers, Docker, Render 等

支持 GPT4o mini, Claude 3 Haiku, Llama 3.1 70B, Mixtral 8x7B 模型

所有模型均由 DuckDuckGo 匿名提供

项目地址:

作者:如果你能用到,希望可以点个 Star ,就是对我最大的支持

一键部署

Deploy on Vercel

手动部署

Vercel / Cloudflare Workers / Docker / Render / Hugging Face / More Serverless

演示API

请勿滥用

建议使用方式

使用第三方 ChatGPT 应用来调用接口,例如:

调用接口

对话请求

示例(其中 chatcfapi.r12.top 请替换为你自己部署后的域名):

curl --request POST 'https://chatcfapi.r12.top/v1/chat/completions' \
  --header 'Content-Type: application/json' \
  --data '{
    "messages": [
      {
        "role": "user",
        "content": "你好!"
      }
    ],
    "model": "gpt-4o-mini",
    "stream": true
  }'

模型查询

示例(其中 chatcfapi.r12.top 请替换为你自己部署后的域名):

访问 http://chatcfapi.r12.top/v1/models 可查看当前支持的模型

支持的模型

该模型名称同步使用 DDG 网页抓包所得 (未知模型均会被重定向到 gpt-4o-mini 模型)

  • gpt-4o-mini
  • claude-3-haiku
  • llama-3.1-70b
  • mixtral-8x7b

手动部署

由于 DDG API 限制单 IP 并发数,推荐使用 Vercel 进行部署,如果使用 Docker 之类的本地部署,请确保项目运行在代理池中。

Vercel

方法一:云端 Fork 仓库部署

  1. fork 这个仓库到你的 Github
  2. 进入 Vercel New Project 网页,Import 你刚才 fork 的仓库
  3. 点击 Deploy 即可

方法二:本地 Clone 仓库部署

  1. 首先确保你有 Nodejs 环境
  2. 执行下面命令:
npm i -g vercel
vercel login
git clone https://github.com/leafmoes/DDG-Chat.git ddg-chat
cd ddg-chat
npm run publish

方法三:一键部署

Deploy on Vercel

Render

  1. fork 这个仓库到你的 Github
  2. 点击下面按钮到 Render 官网,Import 你刚才 fork 的仓库,然后按正常部署流程走

Deploy on Render

Cloudflare Workers

方法一:

  1. 进入 Cloudflare Workers 和 Pages 控制台,创建一个 Workers
  2. 进入 Workers 设置,在 运行时 设置 兼容性标志nodejs_compat
  3. 粘贴 此文件 内部代码到你的 Workers,然后点击部署

方法二:

  1. 首先确保你有 Nodejs 环境
  2. 首先执行下面命令:
npm i -g wrangler
wrangler login
git clone https://github.com/leafmoes/DDG-Chat.git ddg-chat
cd ddg-chat
npm install
  1. 打开文件 /api/index.js ,取消最后一行的注释,然后执行 npm run publish:cf

Hugging Face

Docker

作者:优化啦,不是 1G 了,现在只有 52M

方法一:命令行构建

docker run -it -d --name ddg-chat -p 8787:8787 leafmoes/ddg-chat:latest

方法二:使用 docker-compose.yml 文件构建

下载保存 docker-compose.yml 文件,然后在该文件所在目录运行 docker-compose up -d 来启动服务。

Docker 相关命令

docker logs -f ddg-chat # 查看服务实时日志
docker restart ddg-chat # 重启服务
docker stop ddg-chat # 停止服务

环境变量

# API 调用的前缀地址
API_PREFIX = '/'
# 作为调用 API 验证的 API Key
API_KEY = 'dummy_key'
# 向 DDG 发送请求失败的重试次数
MAX_RETRY_COUNT = 3
# 向 DDG 发送请求失败的重试延迟,单位 ms
RETRY_DELAY = 5000

免责声明

项目仅供参考学习,如有侵权,请联系删除。

闲言碎语

这个项目是前段时间发到 Github 的,我看有坛友 @cself 好像还写了个 Golang 的版本发到了这里,不过我当时也是因为 Golang 的 Duck2api 在 Vercel 跑不起来( Vercel 对 Golang 流的支持似乎不是很好),才使用 Js 重新写了一遍项目,让他能支持更多的 Serverless 平台。

我在 Golang 版本那个帖子上看到有坛友 @mikeee 在这里 吐槽 我镜像大,能有 1G ,这个确实,那个 Docker 连我自己都没测试过,本人还是一个新手,没怎么用过 Docker 打包,发布。我默认发到 GitHub Container Registry 这个平台的,他貌似不展示 Docker 的大小,也一直没有用户跟我反映过这个镜像太大了,导致这个明显有着很大缺陷的镜像在项目发布三周以来一直存在。目前已经经过优化了,使用 node:lts-alpine 为底包进行打包,现在大概是 52 MB左右的大小,并且发布到 Docker Hub

451 个赞

感谢佬友分享!

30 个赞

等大佬来个抱抱脸部署教程 :tieba_087:

28 个赞

不是有 cf worker 部署吗 ,这个多香啊 :tieba_087:

30 个赞

只爱抱抱脸 :tieba_087:

26 个赞

楼主有 镜像,from 一下就好了啊 :tieba_087:

19 个赞

可以cf worker?这下不得不启动了:yum:

19 个赞

感谢作者分享

6 个赞

感谢佬分享,牛:cow:

34 个赞

我稍微看了一下抱抱脸,我也没用过这个平台,参考了一下坛友 @linshiyouxiang 的这个教程 使用抱抱脸部署你的个人网站引导页 - 资源荟萃 - LINUX DO
部署方式大概是:

  1. 创建一个新空间:Create a new Space

    Space name:ddg-chat
    License: MIT
    Select the Space SDK: docker (Blank)
    Space hardware: free
    
  2. 设置环境变量
    转到 Settings → Variables and secrets → Variables 配置环境变量
    貌似必须设置 API_PREFIX,由于抱抱脸的限制?
    环境变量在帖子里面

  3. 编辑 README.md 文件
    在 metadata 添加 app_port: 8787 这个 8787 取决于你 docker 镜像的端口

  4. 添加 Dockerfile 文件:

    FROM docker.io/leafmoes/ddg-chat:latest
    

希望这个流程能帮到你,让你以后遇到类似的项目也可以自己来进行部署

39 个赞

哪里的10,不会把我老底掀了吧

16 个赞

感谢佬分享!

8 个赞

已删,这帖没权限,怕挨骂

11 个赞

感谢佬分享! :drooling_face: :drooling_face: :drooling_face:

5 个赞

感谢分享 :tieba_013:

5 个赞

感谢分享,又多一个可用的了

8 个赞

感谢佬分享 :bili_110:

12 个赞

#人工智能添加

太强了!大佬!

18 个赞

我错过了什么 :tieba_087:

6 个赞