Files
cursor-api/README.md
2024-12-31 23:20:09 +08:00

214 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# cursor-api
## 获取key
1. 访问 [www.cursor.com](https://www.cursor.com) 并完成注册登录
2. 在浏览器中打开开发者工具F12
3. 在 Application-Cookies 中查找名为 `WorkosCursorSessionToken` 的条目,并复制其第三个字段。请注意,%3A%3A 是 :: 的 URL 编码形式cookie 的值使用冒号 (:) 进行分隔。
## 接口说明
### 基础对话(请求格式和响应格式参考 openai
- 接口地址:`/v1/chat/completions`
- 请求方法POST
- 认证方式Bearer Token
1. 使用环境变量 `AUTH_TOKEN` 进行认证
2. 使用 `.token` 文件中的令牌列表进行轮询认证
### Token管理接口
#### 简易Token信息管理页面
- 接口地址:`/tokeninfo`
- 请求方法GET
- 响应格式HTML页面
- 功能:获取 .token 和 .token-list 文件内容,并允许用户方便地使用 API 修改文件内容
#### 更新Token信息
- 接口地址:`/update-tokeninfo`
- 请求方法GET
- 认证方式:不需要
- 功能:请求内容不包括文件内容,直接修改文件,调用重载函数
#### 更新Token信息
- 接口地址:`/update-tokeninfo`
- 请求方法POST
- 认证方式Bearer Token
- 功能:请求内容包括文件内容,间接修改文件,调用重载函数
#### 获取Token信息
- 接口地址:`/get-tokeninfo`
- 请求方法POST
- 认证方式Bearer Token
### 其他接口
#### 获取模型列表
- 接口地址:`/v1/models`
- 请求方法GET
#### 获取随机x-cursor-checksum
- 接口地址:`/checksum`
- 请求方法GET
#### 健康检查接口
- 接口地址:`/`
- 请求方法GET
#### 获取日志接口
- 接口地址:`/logs`
- 请求方法GET
## 配置说明
### 环境变量
- `PORT`: 服务器端口号默认3000
- `AUTH_TOKEN`: 认证令牌必须用于API认证
- `ROUTE_PREFIX`: 路由前缀(可选)
- `TOKEN_FILE`: token文件路径默认.token
- `TOKEN_LIST_FILE`: token列表文件路径默认.token-list
### Token文件格式
1. `.token` 文件每行一个token支持以下格式
```
# 这是注释
token1
# alias与标签的作用差不多
alias::token2
```
alias 可以是任意值,用于区分不同的 token更方便管理WorkosCursorSessionToken 是相同格式
该文件将自动向.token-list文件中追加token同时自动生成checksum
2. `.token-list` 文件每行为token和checksum的对应关系
```
# 这里的#表示这行在下次读取要删除
token1,checksum1
# 支持像.token一样的alias冲突时以.token为准
alias::token2,checksum2
```
该文件可以被自动管理,但用户仅可在确认自己拥有修改能力时修改,一般仅有以下情况需要手动修改:
- 需要删除某个 token
- 需要使用已有 checksum 来对应某一个 token
### 模型列表
写死了,后续也不会会支持自定义模型列表
```
claude-3.5-sonnet
gpt-4
gpt-4o
claude-3-opus
cursor-fast
cursor-small
gpt-3.5-turbo
gpt-4-turbo-2024-04-09
gpt-4o-128k
gemini-1.5-flash-500k
claude-3-haiku-200k
claude-3-5-sonnet-200k
claude-3-5-sonnet-20241022
gpt-4o-mini
o1-mini
o1-preview
o1
claude-3.5-haiku
gemini-exp-1206
gemini-2.0-flash-thinking-exp
gemini-2.0-flash-exp
```
## 部署
### Docker 部署
#### Docker 运行示例
```bash
docker run -d -e PORT=3000 -e AUTH_TOKEN=your_token -p 3000:3000 wisdgod/cursor-api:latest
```
### huggingface部署
前提一个huggingface账号
1. 创建一个Space并创建一个Dockerfile文件内容如下
```Dockerfile
FROM wisdgod/cursor-api:latest
# 可能你要覆盖原镜像的环境变量但都可以在下面的第2步中配置
ENV PORT=7860
```
2. 配置环境变量
在你的 Space 中,点击 Settings找到 `Variables and secrets`,添加 Variables
```env
# 可选,用于配置服务器端口
PORT=3000
# 必选,用于配置路由前缀,比如/api,/hf,/proxy等等
ROUTE_PREFIX=
# 必选用于API认证
AUTH_TOKEN=
# 可选用于配置token文件路径
TOKEN_FILE=.token
# 可选用于配置token列表文件路径
TOKEN_LIST_FILE=.token-list
```
更多变量示例可访问 /env-example
3. 重新部署
点击`Factory rebuild`,等待部署完成
4. 接口地址(`Embed this Space`中查看):
```
https://{username}-{space-name}.hf.space/v1/models
```
## 注意事项
1. 请妥善保管您的任何 Token不要泄露给他人。若发现泄露请及时更改
2. 请遵守本项目许可证,你仅拥有使用本项目的权利,不得用于商业用途
3. 本项目仅供学习研究使用,请遵守 Cursor 的使用条款
## 开发
### 跨平台编译
自行配置cross编译环境
支持的平台:
- linux x86_64
- windows x86_64
- macos x86_64
- freebsd x86_64
- docker (only for linux x86_64)
### 获取token
- 使用 [get-token](https://github.com/wisdgod/cursor-api/tree/main/get-token) 获取读取当前设备token仅支持windows与macos
## 鸣谢
- [cursor-api](https://github.com/wisdgod/cursor-api)
- [zhx47/cursor-api](https://github.com/zhx47/cursor-api)
- [luolazyandlazy/cursorToApi](https://github.com/luolazyandlazy/cursorToApi)
## 许可证
版权所有 (c) 2024
本软件仅供学习和研究使用。未经授权,不得用于商业用途。
保留所有权利。