Spaces:
Paused
Paused
File size: 6,686 Bytes
5952dec |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 |
---
title: Cursor-To-OpenAI-Nexus
emoji: 🚀
colorFrom: blue
colorTo: green
sdk: docker
app_port: 3010
---
# Cursor-To-OpenAI-Nexus
[English](README.en.md) | 中文
将Cursor的API请求转发到OpenAI,支持多个API Key轮询。
## 项目特点
- 🔑 **多Key轮询**: 配置多个API Key轮询,提高可用性
- 🚀 **简易配置**: 一键配置脚本,快速搭建环境
- 📊 **状态监控**: 查看API Key使用情况
- 🔧 **易于维护**: 便捷的维护脚本,简化日常操作
## 🚀 基础安装
### 克隆项目
```
git clone https://github.com/liuw1535/cursor-to-openai-nexus.git
```
### 进入项目
```
cd cursor-to-openai-nexus
```
### 安装依赖
```
npm install
```
## ⚙️ 配置项目
```
npm run setup
```
- 只需填写自定义密钥和是否启用TLS伪造代理服务器
- 其他选项可直接回车跳过或随意填写
- 🛡️ 如频繁遇到封号问题,建议启用TLS服务器
- 配置不满意可重新执行此命令修改
## 🏃 启动服务
```
npm start
```
## 🔍 使用方法
1. 访问管理界面: `http://127.0.0.1:3010`
2. 使用页面底部蓝色按钮获取cookie
3. 在酒馆页面配置:
- API地址: `http://127.0.0.1:3010/v1`
- 密钥: `sk-text` (如果配置时输入的是"text")
## 📧 账号注册建议
- 推荐使用域名邮箱(子域名邮箱更佳)
- 搜索"cloudfare 域名邮箱"获取配置教程
- ⚠️ 每次注册账号不超过2个,避免被封
## 🛠️ 常用命令
```
npm start # 启动项目
npm run setup # 修改配置
```
## 环境配置
在`.env`文件中配置以下关键参数:
- `API_KEYS`: API Key与Cookie的映射关系(JSON格式)
- `USE_TLS_PROXY`: (true)启用tls服务器,可以避免阻止请求(block)的问题
- `PROXY_PLATFORM`: 启用tls服务器时对应的平台,默认auto自动检测
系统启动时会自动合并`.env`中的API Keys和`data/api_keys.json`中的API Keys,确保数据一致性。
## 部署方式
### 使用Docker Compose
```bash
# 创建配置文件
cp .env.example .env
mkdir -p data
cp data/admin.example.json data/admin.json
# 创建管理员账户
node scripts/create-admin.js
# 启动服务
docker compose up -d --build
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
```
### 部署到 Hugging Face Spaces
本项目包含 `Dockerfile`,可以直接部署到 Hugging Face Spaces。
1. 在Hugging Face上创建一个新的Space,并选择 **Docker** 作为SDK。
2. 将此仓库克隆到您的Space中。
3. 在Space的 **Settings -> Repository secrets** 中设置您的环境变量(如 `API_KEYS` 等)。这些secrets会作为环境变量注入到容器中,作用等同于 `.env` 文件。
4. Hugging Face会自动构建并运行应用。
**注意**: 部署后,请将文档中所有的 `http://127.0.0.1:3010` 替换为您的Space URL,例如 `https://your-space-name.hf.space`。
## API使用示例
### Python示例
```python
from openai import OpenAI
# 使用自定义API Key
client = OpenAI(api_key="your_custom_api_key",
base_url="http://localhost:3010/v1")
# 或直接使用Cookie
# client = OpenAI(api_key="user_...",
# base_url="http://localhost:3010/v1")
response = client.chat.completions.create(
model="claude-3-7-sonnet",
messages=[
{"role": "user", "content": "Hello."},
],
stream=False
)
print(response.choices)
```
## 注意事项
- 请妥善保管你的WorkosCursorSessionToken
- 本项目仅用于学习和研究目的,请遵守Cursor的使用条款
## 致谢
- 本项目基于[cursor-api](https://github.com/zhx47/cursor-api)(by zhx47)
- 整合了[cursor-api](https://github.com/lvguanjun/cursor-api)(by lvguanjun)的提交内容
# 日志系统
项目集成了统一的日志系统,可以通过以下方式配置:
## 日志级别配置
1. 在 `.env` 文件中设置环境变量
```
LOG_LEVEL=INFO
LOG_FORMAT=colored
LOG_TO_FILE=true
LOG_MAX_SIZE=10
LOG_MAX_FILES=10
```
2. 在启动命令中指定环境变量,例如:`LOG_LEVEL=DEBUG npm start`
支持的日志级别有:
- ERROR:只显示错误信息
- WARN:显示警告和错误信息
- INFO:显示一般信息、警告和错误信息(默认)
- DEBUG:显示调试信息、一般信息、警告和错误信息
- TRACE:显示所有日志信息
## 日志格式
日志格式为:`[级别] 时间戳 日志内容`,不同级别使用不同颜色显示,方便区分:
- ERROR:红色
- WARN:黄色
- INFO:绿色
- DEBUG:蓝色
- TRACE:青色
- HTTP:青色(专用于HTTP请求日志)
## HTTP请求日志
项目使用 Morgan 中间件记录 HTTP 请求,并集成到统一日志系统中:
1. 在 `.env` 文件中设置 HTTP 日志格式:
```
# 选项: tiny, combined, common, dev, short
MORGAN_FORMAT=tiny
```
2. HTTP 日志会以 `[HTTP]` 前缀显示,使用青色高亮,便于识别
3. Morgan 格式选项说明:
- `tiny`: 最简洁的格式,仅包含方法、URL、状态码、响应时间
- `combined`: 标准的 Apache 组合日志格式,包含 IP、时间、请求、状态码、响应大小、referrer、user-agent
- `common`: 标准的 Apache 通用日志格式,类似 combined 但不包含 referrer 和 user-agent
- `dev`: 开发友好的彩色格式,包含方法、URL、状态码(带颜色)、响应时间
- `short`: 更短的格式,包含方法、URL、状态码、响应时间、响应大小
## 文件日志
项目支持将日志同时输出到控制台和文件,可以通过以下配置启用:
1. 在 `.env` 文件中设置:`LOG_TO_FILE=true`
2. 可选配置:
- `LOG_MAX_SIZE`: 日志文件最大大小,单位MB,默认10MB
- `LOG_MAX_FILES`: 保留的历史日志文件数量,默认10个
日志文件存储在项目根目录的 `logs` 文件夹下:
- 当前日志文件: `app.log`
- 历史日志文件: `app-2023-05-05T12-45-30-000Z.log`
文件日志会自动轮转,当日志文件大小超过设定值时,会创建新的日志文件并保留最近的N个文件。
## 代码中使用
在代码中可以按需使用不同级别的日志:
```javascript
const logger = require('./utils/logger');
logger.error('这是错误信息');
logger.warn('这是警告信息');
logger.info('这是一般信息');
logger.debug('这是调试信息');
logger.trace('这是跟踪信息');
logger.http('这是HTTP请求日志');
```
|