Introdução geral
O DDG-Chat é um projeto de código aberto que tem como objetivo fornecer uma implantação com um clique em várias plataformas do ChatGPT API backend. O projeto oferece suporte a vários modelos, incluindo GPT-4o mini, Claude 3 Haiku, Llama 3.1 70B e Mixtral 8x7B, todos fornecidos anonimamente pela DuckDuckGo. Todos os modelos são fornecidos anonimamente pela DuckDuckGo. Os usuários podem facilmente implantar e usar o backend da API por meio do Vercel, Cloudflare Workers, Docker e outras plataformas.
Como a API do DDG limita o número de simultaneidade a um único IP, é recomendável usar o Vercel para a implantação ou, se você usar uma implantação local como o Docker, certifique-se de que o projeto esteja sendo executado em um pool de proxy.
Lista de funções
- Suporta vários modelos de ChatGPT
- Implementação com um clique no Vercel, Cloudflare Workers, Docker e muito mais!
- Fornecer interface de API para aplicativos de terceiros
- Oferece suporte a vários métodos de implantação, incluindo implantação na nuvem e local
- Fornecer documentação detalhada de implantação e uso
Usando a Ajuda
Instalação e implementação
Implantação da Vercel
- Implementação do repositório Cloud Fork: (Implantação do Vercel One Click)
- Faça o fork desse repositório em sua conta do GitHub.
- Vá para a página New Project do Vercel e importe o repositório que você acabou de bifurcar.
- Clique em Deploy para concluir a implementação.
- Implementação de repositório clone local:
- Certifique-se de que você tenha um ambiente Node.js.
- Execute o seguinte comando:
npm i -g vercel vercel login git clone https://github.com/leafmoes/DDG-Chat.git ddg-chat cd ddg-chat npm run publish
Implantação de trabalhadores da Cloudflare
- Acesse o console do Cloudflare Workers and Pages e crie um worker.
- Nas configurações do Workers, defina o tempo de execução como nodejs_compat.
- Cole o código do repositórioVá para seus trabalhadores e clique em Deploy.
Implementação do Docker
- Construção de linha de comando:
docker run -it -d --name ddg-chat -p 8787:8787 ghcr.io/leafmoes/ddg-chat:latest
- Crie usando o arquivo docker-compose.yml:
- Faça o download e salve o arquivo docker-compose.yml.
- Inicie o serviço executando o seguinte comando no diretório em que o arquivo está localizado:
docker-compose up -d
variável de ambiente
# API 调用的前缀地址 API_PREFIX = '/' # 作为调用 API 验证的 API Key API_KEY = 'dummy_key' # 向 DDG 发送请求失败的重试次数 MAX_RETRY_COUNT = 3 # 向 DDG 发送请求失败的重试延迟,单位 ms RETRY_DELAY = 5000
Usando a API
interface de chamada
Use um aplicativo ChatGPT de terceiros para invocar a interface, como o ChatNextWeb. A seguir, um exemplo de solicitação de diálogo:
curl --request POST 'https://你的域名/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"messages": [
{
"role": "user",
"content": "你好!"
}
],
"model": "gpt-4o-mini",
"stream": true
}'
Consulta de modelo
entrevistas https://你的域名/v1/models
Permite que você visualize os modelos suportados atualmente.
problemas comuns
- Limitações da implantação do VercelA versão gratuita leva 60 segundos para uma única solicitação de API e 100.000 chamadas de API por mês.
- Erro 429 ERR_SERVICE_UNAVAILABLESe a API do DDG limitar a simultaneidade de um único IP, é recomendável reduzir a simultaneidade e também usar um pool de proxy para solicitações.
Implantação alternativa da versão go: serviço gratuito de servidor serv00 implantação de serviço residente
- Vá para o painel serv00, clique em zonas DNS e clique em Add new zone (Adicionar nova zona) para adicionar seu próprio nome de domínio personalizado.
- Vá para cf para adicionar a análise de registro A
- Clique em Additional services (Serviços adicionais) e clique em Run your own applications (Executar seus próprios aplicativos).
Enabled
- Abra uma porta, estou abrindo a 5005.
- Clique em WWW Websites Clique em Add website Domain para preencher seu próprio nome de domínio.
- Clique para fazer o download do arquivo Concessão de permissões executáveis a arquivos
chmod +x ddgchatgo-freebsd-amd64
- existir
public_html
Crie um script de inicialização emstart_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
- Concessão de privilégios de execução de scripts
chmod +x start_api.sh
- Na primeira vez que você executar o cron, basta executar o seguinte comando
nohup /home/你的Serv00用户名/domains/example.com/public_html/start_ddgchatgo.sh > /home/你的Serv00用户名/domains/example.com/public_html/start_ddgchatgo.log 2>&1 &
Altere o nome de usuário do Serv00 para o seu próprio.
example.com para seu próprio nome de domínio
PORT Se a porta aberta não for 5005, você poderá alterá-la.
Scripts de instalação com um clique
#!/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 &
Em scripts de um cliquehttps://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.2/ddgchatgo-freebsd-amd64
Substituir porhttps://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.4/ddgchatgo-freebsd-amd64
A API KEY pode ser definida.
Altere o nome de usuário do Serv00 para o seu próprio.
example.com para seu próprio nome de domínio
PORT Se a porta aberta não for 5005, você poderá alterá-la.
Após a conclusão da implantação, o acesso ao domínio retorna o seguinte para indicar o sucesso:
{ "message": "Welcome to the API" }
Acesso ao newapi após a criação
nova api/uma api selecione canais personalizados
http://chat.xxl.serv00.net/v1/chat/completions