diff --git a/README.md b/README.md index 099a041..4b973c9 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ ZhipuAI (智谱清言) 接口转API [glm-free-api](https://github.com/LLM-Red-Te * [多账号接入](#多账号接入) * [Docker部署](#Docker部署) * [Docker-compose部署](#Docker-compose部署) +* [Vercel部署](#Vercel部署) * [原生部署](#原生部署) * [接口列表](#接口列表) * [对话补全](#对话补全) @@ -143,6 +144,14 @@ services: - TZ=Asia/Shanghai ``` +### Vercel部署 + +**注意:Vercel免费账户的请求响应超时时间为10秒,但接口响应通常较久,可能会遇到Vercel返回的504超时错误** + +点击按钮快速部署: + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/LLM-Red-Team/kimi-free-api) + ## 原生部署 请准备一台具有公网IP的服务器并将8000端口开放。 diff --git a/src/lib/logger.ts b/src/lib/logger.ts index e41494d..32cb3a6 100644 --- a/src/lib/logger.ts +++ b/src/lib/logger.ts @@ -9,13 +9,15 @@ import { format as dateFormat } from 'date-fns'; import config from './config.ts'; import util from './util.ts'; +const isVercelEnv = process.env.VERCEL; + class LogWriter { #buffers = []; constructor() { - fs.ensureDirSync(config.system.logDirPath); - this.work(); + !isVercelEnv && fs.ensureDirSync(config.system.logDirPath); + !isVercelEnv && this.work(); } push(content) { @@ -24,16 +26,16 @@ class LogWriter { } writeSync(buffer) { - fs.appendFileSync(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), buffer); + !isVercelEnv && fs.appendFileSync(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), buffer); } async write(buffer) { - await fs.appendFile(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), buffer); + !isVercelEnv && await fs.appendFile(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), buffer); } flush() { if(!this.#buffers.length) return; - fs.appendFileSync(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), Buffer.concat(this.#buffers)); + !isVercelEnv && fs.appendFileSync(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), Buffer.concat(this.#buffers)); } work() { diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..74f98bc --- /dev/null +++ b/vercel.json @@ -0,0 +1,27 @@ +{ + "builds": [ + { + "src": "./dist/*.html", + "use": "@vercel/static" + }, + { + "src": "./dist/index.js", + "use": "@vercel/node" + } + ], + "routes": [ + { + "src": "/", + "dest": "/dist/welcome.html" + }, + { + "src": "/(.*)", + "dest": "/dist", + "headers": { + "Access-Control-Allow-Credentials": "true", + "Access-Control-Allow-Methods": "GET,OPTIONS,PATCH,DELETE,POST,PUT", + "Access-Control-Allow-Headers": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Content-Type, Authorization" + } + } + ] +} \ No newline at end of file