# Deepseek_API **Repository Path**: SuperWindcloud/deepseek_-api ## Basic Information - **Project Name**: Deepseek_API - **Description**: 部署 Deepseek 逆向网页端API服务 到vercel - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-24 - **Last Updated**: 2025-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeepSeek V3 Free 服务 ## 接入准备 请确保您在中国境内或者拥有中国境内的个人计算设备,否则部署后可能因无法访问DeepSeek而无法使用。 从 [DeepSeek](https://chat.deepseek.com/) 获取userToken value 进入DeepSeek随便发起一个对话,然后F12打开开发者工具,从Application > LocalStorage中找到`userToken`中的value值,这将作为Authorization的Bearer Token值:`Authorization: Bearer TOKEN` ![获取userToken](./doc/example-0.png) ### 多账号接入 目前同个账号同时只能有*一路*输出,你可以通过提供多个账号的userToken value并使用`,`拼接提供: `Authorization: Bearer TOKEN1,TOKEN2,TOKEN3` 每次请求服务会从中挑选一个。 ### 环境变量(可选) | 环境变量 | 是否必填 | 说明 | |------|------|----------------------------------| | DEEP_SEEK_CHAT_AUTHORIZATION | 否 | 当配置了token 则使用token,未配置则需要在请求头中传递Authorization | ## Docker部署 拉取镜像并启动服务。 ```shell docker run -it -d --init --name deepseek-free-api -p 8000:8000 -e TZ=Asia/Shanghai vinlic/deepseek-free-api:latest # 或将token配置在环境变量 docker run -it -d --init --name deepseek-free-api -p 8000:8000 -e TZ=Asia/Shanghai -e DEEP_SEEK_CHAT_AUTHORIZATION=xxx vinlic/deepseek-free-api:latest ``` 查看服务实时日志 ```shell docker logs -f deepseek-free-api ``` 重启服务 ```shell docker restart deepseek-free-api ``` 停止服务 ```shell docker stop deepseek-free-api ``` ### Docker-compose部署 ```yaml version: '3' services: deepseek-free-api: container_name: deepseek-free-api image: vinlic/deepseek-free-api:latest restart: always ports: - "8000:8000" environment: - TZ=Asia/Shanghai ``` ### Vercel部署 **注意:Vercel免费账户的请求响应超时时间为10秒,但接口响应通常较久,可能会遇到Vercel返回的504超时错误!** 请先确保安装了Node.js环境。 ```shell npm i -g vercel or pnpm add -g vercel vercel login pnpm install && pnpm build && vercel --prod ``` ## 原生部署 请先安装好Node.js环境并且配置好环境变量,确认node命令可用。 安装依赖 ```shell npm i ``` 安装PM2进行进程守护 ```shell npm i -g pm2 ``` 编译构建,看到dist目录就是构建完成 ```shell npm run build ``` 启动服务 ```shell pm2 start dist/index.js --name "deepseek-free-api" ``` 查看服务实时日志 ```shell pm2 logs deepseek-free-api ``` 重启服务 ```shell pm2 reload deepseek-free-api ``` 停止服务 ```shell pm2 stop deepseek-free-api ``` ## 接口列表 目前支持与openai兼容的 `/v1/chat/completions` 接口,可自行使用与openai或其他兼容的客户端接入接口,或者使用 [dify](https://dify.ai/) 等线上服务接入使用。 ### 对话补全 对话补全接口,与openai的 [chat-completions-api](https://platform.openai.com/docs/guides/text-generation/chat-completions-api) 兼容。 **POST /v1/chat/completions** header 需要设置 Authorization 头部: ``` Authorization: Bearer [userToken value] ``` 请求数据: ```json { // model名称 // 默认:deepseek // 深度思考:deepseek-think 或 deepseek-r1 // 联网搜索:deepseek-search // 深度思考+联网搜索:deepseek-r1-search 或 deepseek-think-search // 静默模式(不输出思考过程或联网搜索结果):deepseek-think-silent 或 deepseek-r1-silent 或 deepseek-search-silent // 深度思考但思考过程使用
可折叠标签包裹(需要页面支持显示):deepseek-think-fold 或 deepseek-r1-fold "model": "deepseek", // 默认多轮对话基于消息合并实现,某些场景可能导致能力下降且受单轮最大token数限制 // 如果您想获得原生的多轮对话体验,可以传入上一轮消息获得的id,来接续上下文 // "conversation_id": "50207e56-747e-4800-9068-c6fd618374ee@2", "messages": [ { "role": "user", "content": "你是谁?" } ], // 如果使用流式响应请设置为true,默认false "stream": false } ``` 响应数据: ```json { "id": "50207e56-747e-4800-9068-c6fd618374ee@2", "model": "deepseek", "object": "chat.completion", "choices": [ { "index": 0, "message": { "role": "assistant", "content": " 我是DeepSeek Chat,一个由深度求索公司开发的智能助手,旨在通过自然语言处理和机器学习技术来提供信息查询、对话交流和解答问题等服务。" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 1, "completion_tokens": 1, "total_tokens": 2 }, "created": 1715061432 } ``` ### userToken存活检测 检测userToken是否存活,如果存活live为true,否则为false,请不要频繁调用(小于10分分钟) **POST /token/check** 请求数据: ```json { "token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9..." } ``` 响应数据: ```json { "live": true } ``` ## 注意事项 ### Nginx反代优化 如果您正在使用Nginx反向代理deepseek-free-api,请添加以下配置项优化流的输出效果,优化体验感。 ```nginx # 关闭代理缓冲。当设置为off时,Nginx会立即将客户端请求发送到后端服务器,并立即将从后端服务器接收到的响应发送回客户端。 proxy_buffering off; # 启用分块传输编码。分块传输编码允许服务器为动态生成的内容分块发送数据,而不需要预先知道内容的大小。 chunked_transfer_encoding on; # 开启TCP_NOPUSH,这告诉Nginx在数据包发送到客户端之前,尽可能地发送数据。这通常在sendfile使用时配合使用,可以提高网络效率。 tcp_nopush on; # 开启TCP_NODELAY,这告诉Nginx不延迟发送数据,立即发送小数据包。在某些情况下,这可以减少网络的延迟。 tcp_nodelay on; # 设置保持连接的超时时间,这里设置为120秒。如果在这段时间内,客户端和服务器之间没有进一步的通信,连接将被关闭。 keepalive_timeout 120; ``` ### Token统计 由于推理侧不在deepseek-free-api,因此token不可统计,将以固定数字返回。