|
## DDG-Chat:一键部署你的 ChatGPT API 后端
**项目地址:** [DDG-Chat](https://github.com/leafmoes/DDG-Chat)
**简介:**
一键免费部署你的 ChatGPT API 后端到各种平台,包括 Vercel, Cloudflare Workers, Docker, Render 等。支持 GPT4o mini, Claude 3 Haiku, Llama 3.1 70B, Mixtral 8x7B 模型。所有模型均由 DuckDuckGo 匿名提供。
**一键部署:**
* [Vercel](https://vercel.com/new/clone?repository-url=https://github.com/leafmoes/ddg-chat&project-name=ddg-chat&repository-name=ddg-chat)
* [手动部署](https://github.com/leafmoes/DDG-Chat#%E6%89%8B%E5%8A%A8%E9%83%A8%E7%BD%B2)
**演示 API:** (请勿滥用)
* [https://chatcfapi.r12.top](https://chatcfapi.r12.top)
**建议使用方式:**
使用第三方 ChatGPT 应用来调用接口,例如:
* [ChatNextWeb](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web)
* [沉浸式翻译](https://immersivetranslate.com)
**调用接口:**
* **对话请求:**
```bash
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
}'
```
* **模型查询:**
访问 `http://chatcfapi.r12.top/v1/models` 可查看当前支持的模型。
**支持的模型:**
* gpt-4o-mini
* claude-3-haiku
* llama-3.1-70b
* mixtral-8x7b
**手动部署:**
由于 DDG API 限制单 IP 并发数,推荐使用 Vercel 进行部署。
* **Vercel:**
* [Fork](https://github.com/leafmoes/ddg-chat/fork) 仓库到你的 Github。
* 进入 [Vercel New Project](https://vercel.com/new/) 网页,`Import` 你刚才 fork 的仓库。
* 点击 `Deploy` 即可。
* **Render:**
* [Fork](https://github.com/leafmoes/ddg-chat/fork) 仓库到你的 Github。
* 点击 [Render](https://render.com/deploy) 按钮,`Import` 你刚才 fork 的仓库,然后按正常部署流程走。
* **Cloudflare Workers:**
* 进入 Cloudflare Workers 和 Pages 控制台,创建一个 Workers。
* 进入 Workers 设置,在 `运行时` 设置 `兼容性标志` 为 `nodejs_compat`。
* 粘贴 [此文件](https://github.com/leafmoes/DDG-Chat/blob/master/dist/index.js) 内部代码到你的 Workers,然后点击部署。
* **Docker:**
* 命令行构建:
```bash
docker run -it -d --name ddg-chat -p 8787:8787 leafmoes/ddg-chat:latest
```
* 使用 `docker-compose.yml` 文件构建:
下载保存 [docker-compose.yml](https://github.com/leafmoes/DDG-Chat/blob/master/docker-compose.yml) 文件,然后在该文件所在目录运行 `docker-compose up -d` 来启动服务。
**环境变量:**
* `API_PREFIX`: API 调用的前缀地址 (默认: `/`)
* `API_KEY`: 作为调用 API 验证的 API Key (默认: `dummy_key`)
* `MAX_RETRY_COUNT`: 向 DDG 发送请求失败的重试次数 (默认: 3)
* `RETRY_DELAY`: 向 DDG 发送请求失败的重试延迟,单位 ms (默认: 5000)
**免责声明:**
项目仅供参考学习,如有侵权,请联系删除。
**闲言碎语:**
这个项目是之前发到 Github 的,我看到有坛友 [@cself](/u/cself) 好像还写了个 [Golang 的版本](https://linux.do/t/topic/235325/6) 发到了这里。不过我当时也是因为 Golang 的 [Duck2api](https://github.com/aurora-develop/Duck2api/) 在 Vercel 跑不起来,才使用 Js 重新写了一遍项目,让他能支持更多的 Serverless 平台。
我看到有坛友 [@mikeee](/u/mikeee) 在这里 [吐槽](https://linux.do/t/topic/235325/10) 我镜像大,能有 1G。这个确实,那个 Docker 连我自己都没测试过,本人还是一个新手,没怎么用过 Docker 打包,发布。我默认发到 GitHub Container Registry 这个平台的,他貌似不展示 Docker 的大小,也一直没有用户跟我反映过这个镜像太大了,导致这个明显有着很大缺陷的镜像在项目发布三周以来一直存在。目前已经经过优化了,使用 node:lts-alpine 为底包进行打包,现在大概是 52 MB左右的大小,并且发布到 [Docker Hub](https://hub.docker.com/r/leafmoes/ddg-chat)。 |
|