AI个人学习
和实操指南

DDG-Chat:一键部署Chat2API后端,DuckDuckGo转API

综合介绍

DDG-Chat 是一个开源项目,旨在提供一个可以一键部署到多种平台的 ChatGPT API 后端。该项目支持多种模型,包括 GPT-4o mini、Claude 3 Haiku、Llama 3.1 70B 和 Mixtral 8x7B,所有模型均由 DuckDuckGo 匿名提供。用户可以通过 Vercel、Cloudflare Workers、Docker 等平台轻松部署和使用该 API 后端。

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


 

功能列表

  • 支持多种 ChatGPT 模型
  • 一键部署到 Vercel、Cloudflare Workers、Docker 等平台
  • 提供 API 接口,方便第三方应用调用
  • 支持多种部署方式,包括云端和本地部署
  • 提供详细的部署和使用文档

 

使用帮助

安装与部署

Vercel 部署

  1. 云端 Fork 仓库部署:(Vercel一键部署
    • Fork 这个仓库到你的 GitHub 账户。
    • 进入 Vercel 新建项目页面,导入你刚才 Fork 的仓库。
    • 点击 Deploy 即可完成部署。
  2. 本地 Clone 仓库部署:
    • 确保你有 Node.js 环境。
    • 执行以下命令:
      npm i -g vercel
      vercel login
      git clone https://github.com/leafmoes/DDG-Chat.git ddg-chat
      cd ddg-chat
      npm run publish
      

Cloudflare Workers 部署

  1. 进入 Cloudflare Workers 和 Pages 控制台,创建一个 Workers。
  2. 在 Workers 设置中,将运行时设置为 nodejs_compat。
  3. 粘贴仓库中的代码到你的 Workers,然后点击部署。

Docker 部署

  1. 命令行构建:
    docker run -it -d --name ddg-chat -p 8787:8787 ghcr.io/leafmoes/ddg-chat:latest
    
  2. 使用 docker-compose.yml 文件构建:
    • 下载并保存 docker-compose.yml 文件。
    • 在该文件所在目录运行以下命令启动服务:
      docker-compose up -d
      

环境变量

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

使用 API

调用接口

使用第三方 ChatGPT 应用来调用接口,例如 ChatNextWeb。以下是一个对话请求示例:

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

模型查询

访问 https://你的域名/v1/models 可查看当前支持的模型。

常见问题

  • Vercel 部署限制:免费版单次 API 请求时长为 60 秒,每月 API 调用次数为 100,000 次。
  • 报错 429 ERR_SERVICE_UNAVAILABLE:非 Vercel 容易出现此问题,由于 DDG API 限制单 IP 并发,建议减少并发量,同时使用代理池进行请求。

 

备选go版本部署:免费服务器serv00部署常驻服务

项目来源

  1. 进入serv00面板 点击 DNS zones 点击 Add new zone 添加自己的自定义域名
  2. 到cf添加A记录解析
  3. 点击Additional services 点击Run your own applications 选择 Enabled
  4. 开放一个端口 我开放的是5005
  5. 点击 WWW Websites 点击 Add website Domain填自己的域名

ChatGPT转API,利用serv00部署常驻服务。-1

  1. 点击下载文件 赋予文件可执行权限
    chmod +x ddgchatgo-freebsd-amd64
    
  2. public_html下创建启动脚本start_ddgchatgo.sh
    #!/bin/bash
    # 定义进程名称和启动命令
    PROCESS_NAME="ddgchatgo"
    START_COMMAND="PORT=5005 /home/你的Serv00用户名/domains/example.com/public_html/ddgchatgo-freebsd-amd64 > /home/你的Serv00用户/domains/example.com/public_html/ddgchatgo.log 2>&1 &"
    # 检查进程是否在运行
    if ! pgrep -f "$PROCESS_NAME" > /dev/null
    then
    echo "进程 $PROCESS_NAME 未运行,正在启动..."
    # 启动进程
    eval "$START_COMMAND"
    if [ $? -eq 0 ]; then
    echo "进程 $PROCESS_NAME 启动成功。"
    else
    echo "进程 $PROCESS_NAME 启动失败。"
    fi
    else
    echo "进程 $PROCESS_NAME 已经在运行。"
    fi
    
  3. 赋予脚本执行权限
    chmod +x start_api.sh
    
  4. cron保活 首次运行执行下面的命令即可
    nohup /home/你的Serv00用户名/domains/example.com/public_html/start_ddgchatgo.sh > /home/你的Serv00用户名/domains/example.com/public_html/start_ddgchatgo.log 2>&1 &
    

    你的Serv00用户名 换成自己的
    example.com 换成自己的域名
    PORT 如果开放的端口不是5005 可自行修改

 

一键安装脚本

#!/bin/bash
# Step 1: 进入工作目录
cd ~/domains/example.com/public_html/
# Step 2: 下载可执行程序
wget https://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.2/ddgchatgo-freebsd-amd64
# Step 3: 赋予解压后freechatgpt文件可执行权限
chmod +x ddgchatgo-freebsd-amd64
# Step 4: 创建start_ddgchatgo.sh脚本
cat <<EOL > start_ddgchatgo.sh
#!/bin/bash
# 定义进程名称和启动命令
PROCESS_NAME="ddgchatgo"
START_COMMAND="PORT=5005 /home/你的Serv00用户名/domains/example.com/public_html/ddgchatgo-freebsd-amd64 > /home/你的Serv00用户名/domains/example.com/public_html/ddgchatgo.log 2>&1 &"
# 检查进程是否在运行
if ! pgrep -f "$PROCESS_NAME" > /dev/null
then
echo "进程 $PROCESS_NAME 未运行,正在启动..."
# 启动进程
eval "$START_COMMAND"
if [ $? -eq 0 ]; then
echo "进程 $PROCESS_NAME 启动成功。"
else
echo "进程 $PROCESS_NAME 启动失败。"
fi
else
echo "进程 $PROCESS_NAME 已经在运行。"
fi
EOL
# Step 5: 赋予start_ddgchatgo.sh可执行权限
chmod +x start_ddgchatgo.sh
# Step 6: 运行start_ddgchatgo.sh脚本并将日志输出到start_ddgchatgo.log
nohup /home/你的Serv00用户名/domains/example.com/public_html/start_ddgchatgo.sh > /home/你的Serv00用户名/domains/example.com/public_html/start_ddgchatgo.log 2>&1 &

一键脚本中https://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.2/ddgchatgo-freebsd-amd64替换为https://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.4/ddgchatgo-freebsd-amd64可设置API KEY。

你的Serv00用户名 换成自己的
example.com 换成自己的域名
PORT 如果开放的端口不是5005 可自行修改

 

部署完成后,访问域名返回以下内容表示成功:

{
"message": "Welcome to the API"
}

 

搭建完接入newapi

new api/one api选择自定义渠道
http://chat.xxl.serv00.net/v1/chat/completions

AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » DDG-Chat:一键部署Chat2API后端,DuckDuckGo转API

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们