Serviço API turbo GPT-3.5 gratuito e ilimitado.
Sobre o autor »
Recursos · Exemplos · Referência · Licença
mkdir freegpt35 && cd freegpt35
curl -O https://raw.githubusercontent.com/hominsu/freegpt35/main/deploy/docker-compose.yml
Em seguida, adicione o ambiente se precisar, para mais detalhes verifique a seguinte parte Personalizar .
docker compose up -d
Depois de implantado, use o seguinte comando para confirmar se tudo está funcionando bem.
curl -X POST " http://localhost:3000/v1/chat/completions "
-H " Authorization: Bearer anything_or_your_key "
-H " Content-Type: application/json "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello"}],
} '
{ "id" : " chatcmpl-********* " , "created" : 9999999999 , "model" : " gpt-3.5-turbo " , "object" : " chat.completion " , "choices" :[{ "finish_reason" : " stop " , "index" : 0 , "message" :{ "content" : " Hi there! How can I assist you today? " , "role" : " assistant " }}], "usage" :{ "prompt_tokens" : 1 , "completion_tokens" : 10 , "total_tokens" : 11 }}
Aqui está um modelo conf do Nginx que você pode consultar. Para obter mais informações sobre a configuração do NGINX Docker, você pode verificar esta postagem: 优雅地在 Docker 中使用 NGINX
upstream freegpt35 {
server 127.0.0.1:3000
}
server {
listen 80 ;
listen [::]:80;
server_name your.domain.name;
return 301 https:// $server_name$request_uri ;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name your.domain.name;
ssl_certificate /etc/nginx/ssl/your.domain.name/full.pem;
ssl_certificate_key /etc/nginx/ssl/your.domain.name/key.pem;
ssl_session_timeout 5m ;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS13_AES_128_GCM_SHA256:TLS13_AES_256_GCM_SHA384:TLS13_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers on ;
location /v1/chat/completions {
proxy_set_header Host $host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header X-Forwarded-Proto "https" ;
proxy_pass http://freegpt35;
proxy_buffering off ;
proxy_cache off ;
send_timeout 600 ;
proxy_connect_timeout 600 ;
proxy_send_timeout 600 ;
proxy_read_timeout 600 ;
chunked_transfer_encoding on ;
}
error_page 500 502 503 504 /50x.html;
}
Se você assina Vercel, você pode tentar este método de implantação, caso contrário não perca tempo, pois com o plano Hobby
suas rotas de API sem servidor só podem ser processadas por 5 segundos, e a rota responde com um erro FUNCTION_INVOCATION_TIMEOUT
.
Depois de implantado, você pode testar com curl novamente
curl -X POST " https://freegpt35.vercel.app/v1/chat/completions "
-H " Authorization: Bearer anything_or_your_key "
-H " Content-Type: application/json "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello"}]
} '
{ "id" : " chatcmpl-********** " , "created" : 9999999999 , "model" : " gpt-3.5-turbo " , "object" : " chat.completion " , "choices" :[{ "finish_reason" : " stop " , "index" : 0 , "message" :{ "content" : " Hey there! How's it going? " , "role" : " assistant " }}], "usage" :{ "prompt_tokens" : 1 , "completion_tokens" : 8 , "total_tokens" : 9 }}
Você também pode definir suas variáveis de ambiente para alguns casos específicos.
Variável de ambiente | Descrição |
---|---|
NEXT_BASE_URL | URL base para o ChatGPT, modificado se você estiver usando um site espelho |
NEXT_API_URL | NÃO MODIFIQUE , a menos que você realmente saiba o que está fazendo |
NEXT_API_KEY | Chave de API usada para autenticação para acessar a API. |
NEXT_MAX_RETRIES | Número máximo de novas tentativas para solicitações de API em caso de falha. |
NEXT_USER_AGENT | String do agente do usuário usada nos cabeçalhos das solicitações enviadas do servidor. |
NEXT_PROXY | Habilite o proxy http(s), por exemplo, http://127.0.0.1:7890 . Se vários proxies forem necessários, separe cada proxy com , por exemplo https://user:password@proxy-1:10000,https://user:password@proxy-2:10001 |
Distribuído sob a licença AGPL 3.0. Consulte LICENSE
para obter mais informações.