Skip to content

wwdmy123/DDG-Chat

 
 

Repository files navigation

DDG-Chat

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

支持 Vercel, Cloudflare Workers, Docker, Render 等

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

所有模型均由 DuckDuckGo 匿名提供

一键部署

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

  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
    

Docker

方法一:命令行构建

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 服务使用的端口
PORT = 8787
# API 调用的前缀地址
API_PREFIX = '/'
# 作为调用 API 验证的 API Key
API_KEY = 'dummy_key'
# 向 DDG 发送请求失败的重试次数
MAX_RETRY_COUNT = 3
# 向 DDG 发送请求失败的重试延迟,单位 ms
RETRY_DELAY = 5000

常见问题

  1. Vercel 部署有何限制?
    • 免费版单次 API 请求时长为 60s
    • 免费版每月 API 调用次数为 100,000 次
    • 官方文档 - Vercel 函数限制
  2. 是否计划增加前端应用?
    • 不考虑,请使用其他的优秀项目,例如:ChatNextWeb
  3. 为什么报错 429 ERR_SERVICE_UNAVAILABLE,如何解决?
    • 非 Vercel 容易出现此问题,由于 DDG API 限制单 IP 并发,建议减少并发量,同时使用代理池进行请求。

交流群组

Telegram

Contributors

LICENSE

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.5%
  • Dockerfile 1.5%