Upload README (1).md
Browse files- README (1).md +144 -0
README (1).md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# grok2API 接入指南:基于 python 的实现
|
| 3 |
+
|
| 4 |
+
## 项目简介
|
| 5 |
+
本项目提供了一种简单、高效的方式通过 Docker 部署 使用openAI的格式转换调用grok官网,进行api处理。
|
| 6 |
+
|
| 7 |
+
>支持自动过cf屏蔽盾,需要自己ip没有被屏蔽。
|
| 8 |
+
|
| 9 |
+
## 方法一:Docker部署
|
| 10 |
+
|
| 11 |
+
### 1. 获取项目
|
| 12 |
+
克隆我的仓库:[grok2api](https://github.com/xLmiler/grok2api)
|
| 13 |
+
### 2. 部署选项
|
| 14 |
+
|
| 15 |
+
#### 方式A:直接使用Docker镜像
|
| 16 |
+
```bash
|
| 17 |
+
docker run -it -d --name grok2api_python \
|
| 18 |
+
-p 3000:3000 \
|
| 19 |
+
-e IS_TEMP_CONVERSATION=false \
|
| 20 |
+
-e API_KEY=your_api_key \
|
| 21 |
+
-e TUMY_KEY=你的图床key,和PICGO_KEY 二选一 \
|
| 22 |
+
-e PICGO_KEY=你的图床key,和TUMY_KEY二选一 \
|
| 23 |
+
-e IS_CUSTOM_SSO=false \
|
| 24 |
+
-e ISSHOW_SEARCH_RESULTS=false \
|
| 25 |
+
-e PORT=3000 \
|
| 26 |
+
-e SHOW_THINKING=true \
|
| 27 |
+
-e SSO=your_sso \
|
| 28 |
+
yxmiler/grok2api_python:latest
|
| 29 |
+
```
|
| 30 |
+
|
| 31 |
+
#### 方式B:使用Docker Compose
|
| 32 |
+
````artifact
|
| 33 |
+
version: '3.8'
|
| 34 |
+
services:
|
| 35 |
+
grok2api_python:
|
| 36 |
+
image: yxmiler/grok2api_python:latest
|
| 37 |
+
container_name: grok2api_python
|
| 38 |
+
ports:
|
| 39 |
+
- "3000:3000"
|
| 40 |
+
environment:
|
| 41 |
+
- API_KEY=your_api_key
|
| 42 |
+
- IS_TEMP_CONVERSATION=true
|
| 43 |
+
- IS_CUSTOM_SSO=false
|
| 44 |
+
- ISSHOW_SEARCH_RESULTS=false
|
| 45 |
+
- PORT=3000
|
| 46 |
+
- SHOW_THINKING=true
|
| 47 |
+
- SSO=your_sso
|
| 48 |
+
restart: unless-stopped
|
| 49 |
+
````
|
| 50 |
+
|
| 51 |
+
#### 方式C:自行构建
|
| 52 |
+
1. 克隆仓库
|
| 53 |
+
2. 构建镜像
|
| 54 |
+
```bash
|
| 55 |
+
docker build -t yourusername/grok2api .
|
| 56 |
+
```
|
| 57 |
+
3. 运行容器
|
| 58 |
+
```bash
|
| 59 |
+
docker run -it -d --name grok2api \
|
| 60 |
+
-p 3000:3000 \
|
| 61 |
+
-e IS_TEMP_CONVERSATION=false \
|
| 62 |
+
-e API_KEY=your_api_key \
|
| 63 |
+
-e IS_CUSTOM_SSO=false \
|
| 64 |
+
-e ISSHOW_SEARCH_RESULTS=false \
|
| 65 |
+
-e PORT=3000 \
|
| 66 |
+
-e SHOW_THINKING=true \
|
| 67 |
+
-e SSO=your_sso \
|
| 68 |
+
yourusername/grok2api:latest
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
### 3. 环境变量具体配置
|
| 72 |
+
|
| 73 |
+
|变量 | 说明 | 构建时是否必填 |示例|
|
| 74 |
+
|--- | --- | ---| ---|
|
| 75 |
+
|`IS_TEMP_CONVERSATION` | 是否开启临时会话,开启后会话历史记录不会保留在网页 | (可以不填,默认是false) | `true/false`|
|
| 76 |
+
|`API_KEY` | 自定义认证鉴权密钥 | (可以不填,默认是sk-123456) | `sk-123456`|
|
| 77 |
+
|`PROXY` | 代理设置,支持https和Socks5 | 可不填,默认无 | -|
|
| 78 |
+
|`PICGO_KEY` | PicGo图床密钥,两个图床二选一 | 不填无法流式生图 | -|
|
| 79 |
+
|`TUMY_KEY` | TUMY图床密钥,两个图床二选一 | 不填无法流式生图 | -|
|
| 80 |
+
|`ISSHOW_SEARCH_RESULTS` | 是否显示搜索结果 | (可不填,默认关闭) | `true/false`|
|
| 81 |
+
|`SSO` | Grok官网SSO Cookie,可以设置多个使用英文 , 分隔,我的代码里会对不同账号的SSO自动轮询和均衡 | (除非开启IS_CUSTOM_SSO否则必填) | `sso,sso`|
|
| 82 |
+
|`PORT` | 服务部署端口 | (可不填,默认3000) | `3000`|
|
| 83 |
+
|`IS_CUSTOM_SSO` | 这是如果你想自己来自定义号池来轮询均衡,而不是通过我代码里已经内置的号池逻辑系统来为你轮询均衡启动的开关。开启后 API_KEY 需要设置为请求认证用的 sso cookie,同时SSO环境变量失效。一个apikey每次只能传入一个sso cookie 值,不支持一个请求里的apikey填入多个sso。想自动使用多个sso请关闭 IS_CUSTOM_SSO 这个环境变量,然后按照SSO环境变量要求在sso环境变量里填入多个sso,由我的代码里内置的号池系统来为你自动轮询 | (可不填,默认关闭) | `true/false`|
|
| 84 |
+
|`SHOW_THINKING` | 是否显示思考模型的思考过程 | (可不填,默认关闭) | `true/false`|
|
| 85 |
+
|
| 86 |
+
## 方法二:Hugging Face部署
|
| 87 |
+
|
| 88 |
+
### 部署地址
|
| 89 |
+
[GrokPythonService](https://huggingface.co/spaces/yxmiler/GrokPythonService)
|
| 90 |
+
|
| 91 |
+
### 功能特点
|
| 92 |
+
实现的功能:
|
| 93 |
+
1. 已支持文字生成图,使用grok-2-imageGen和grok-3-imageGen模型。
|
| 94 |
+
2. 已支持全部模型识图和传图,只会识别存储用户消息最新的一个图,历史记录图全部为占位符替代。
|
| 95 |
+
3. 已支持搜索功能,使用grok-2-search或者grok-3-search模型,可以选择是否关闭搜索结果
|
| 96 |
+
4. 已支持深度搜索功能,使用grok-3-deepsearch,深度搜索支持think过程显示
|
| 97 |
+
5. 已支持推理模型功能,使用grok-3-reasoning
|
| 98 |
+
6. 已支持真流式,上面全部功能都可以在流式情况调用
|
| 99 |
+
7. 支持多账号轮询,在环境变量中配置
|
| 100 |
+
8. 可以选择是否移除思考模型的思考过程。
|
| 101 |
+
9. 支持自行设置轮询和负载均衡,而不依靠项目代码
|
| 102 |
+
10. 自动过CF屏蔽盾
|
| 103 |
+
11. 可自定义http和Socks5代理
|
| 104 |
+
12. 已转换为openai格式。
|
| 105 |
+
|
| 106 |
+
### 可用模型列表
|
| 107 |
+
- `grok-2`
|
| 108 |
+
- `grok-2-imageGen`
|
| 109 |
+
- `grok-2-search`
|
| 110 |
+
- `grok-3`
|
| 111 |
+
- `grok-3-search`
|
| 112 |
+
- `grok-3-imageGen`
|
| 113 |
+
- `grok-3-deepsearch`
|
| 114 |
+
- `grok-3-reasoning`
|
| 115 |
+
|
| 116 |
+
### 模型可用次数参考
|
| 117 |
+
- grok-2,grok-2-imageGen,grok-2-search 合计:30次 每1小时刷新
|
| 118 |
+
- grok-3,grok-3-search,grok-3-imageGen 合计:20次 每2小时刷新
|
| 119 |
+
- grok-3-deepsearch:10次 每24小时刷新
|
| 120 |
+
- grok-3-reasoning:10次 每24小时刷新
|
| 121 |
+
|
| 122 |
+
### cookie的获取办法:
|
| 123 |
+
1. 打开[grok官网](https://grok.com/)
|
| 124 |
+
2. 复制如下的SSO的cookie的值填入SSO变量即可
|
| 125 |
+

|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
### API调用
|
| 129 |
+
- 模型列表:`/v1/models`
|
| 130 |
+
- 对话:`/v1/chat/completions`
|
| 131 |
+
- 添加令牌:`/add/token`
|
| 132 |
+
- 获取全部令牌状态:`/get/tokens`
|
| 133 |
+
|
| 134 |
+
## 备注
|
| 135 |
+
- 消息基于用户的伪造连续对话
|
| 136 |
+
- 可能存在一定程度的降智
|
| 137 |
+
- 生图模型不支持历史对话,仅支持生图。
|
| 138 |
+
## 补充说明
|
| 139 |
+
- 如需使用流式生图的图像功能,需在[PicGo图床](https://www.picgo.net/)或者[tumy图床](https://tu.my/)申请API Key,前者似乎无法注册了,没有前面图床账号的可以选择后一个图床。
|
| 140 |
+
- 自动移除历史消息里的think过程,同时如果历史消息里包含里base64图片文本,而不是通过文件上传的方式上传,则自动转换为[图片]占用符。
|
| 141 |
+
|
| 142 |
+
## 注意事项
|
| 143 |
+
⚠️ 本项目仅供学习和研究目的,请遵守相关使用条款。
|
| 144 |
+
|