win7win commited on
Commit
2f4cba4
·
verified ·
1 Parent(s): 6930dfa

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +13 -0
  2. readme.md +65 -0
  3. requirements.txt +6 -0
Dockerfile ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY ./app /app/app
6
+ COPY requirements.txt .
7
+
8
+ RUN pip install --no-cache-dir -r requirements.txt
9
+
10
+ # 环境变量 (在 Hugging Face Spaces 中设置)
11
+ # ENV GEMINI_API_KEYS=your_key_1,your_key_2,your_key_3
12
+
13
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
readme.md ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🚀 Gemini API Proxy
2
+
3
+ 本项目基于某论坛上一位大佬[@Moonfanzp](https://github.com/Moonfanz)的代码修改而来,但鉴于本人能力水平有限,所以项目可能出现~~大量~~一些bug,请谨慎使用,下面是介绍:
4
+ 这是一个基于 FastAPI 构建的 Gemini API 代理,旨在提供一个简单、安全且可配置的方式来访问 Google 的 Gemini 模型。适用于在 Hugging Face Spaces 上部署,并支持openai api格式的工具集成。
5
+
6
+ ## ✨ 主要功能:
7
+
8
+ ### 🔑 API 密钥轮询和管理
9
+
10
+ ### 📑 模型列表接口
11
+
12
+ ### 💬 聊天补全接口:
13
+
14
+ * 提供 `/v1/chat/completions` 接口,支持流式(streaming)和非流式响应,与 OpenAI API 格式兼容。
15
+ * 自动将 OpenAI 格式的请求转换为 Gemini 格式。
16
+
17
+ ### 🔒 密码保护(可选):
18
+
19
+ * 通过 `PASSWORD` 环境变量设置密码。
20
+ * 提供默认密码 `"123"`。
21
+
22
+ ### 🚦 速率限制和防滥用:
23
+
24
+ * 通过环境变量自定义限制:
25
+ * `MAX_REQUESTS_PER_MINUTE`:每分钟最大请求数(默认 30)。
26
+ * `MAX_REQUESTS_PER_DAY_PER_IP`:每天每个 IP 最大请求数(默认 600)。
27
+ * 超过速率限制时返回 429 错误。
28
+
29
+ ### 🧩 服务兼容
30
+
31
+ * 提供的接口与 OpenAI API 格式兼容,便于接入各种服务
32
+
33
+ ## 🛠️ 使用方式:
34
+
35
+ ### 🚀 部署到 Hugging Face Spaces:
36
+
37
+ 1. 创建一个新的 Space。
38
+ 2. 将本项目代码上传到 Space。
39
+ 3. 在 Space 的 `Settings` -> `Secrets` 中设置以下环境变量:
40
+ * `GEMINI_API_KEYS`:你的 Gemini API 密钥,用逗号分隔(例如:`key1,key2,key3`)。
41
+ * `PASSWORD`:(可选)设置访问密码,留空则使用默认密码 `"123"`。
42
+ * `MAX_REQUESTS_PER_MINUTE`:(可选)每分钟最大请求数。
43
+ * `MAX_REQUESTS_PER_DAY_PER_IP`:(可选)每天每个 IP 最大请求数。
44
+ ...(还有一些变量,但是没啥大用,可以到代码里找)
45
+ 4. 确保 `requirements.txt` 文件已包含必要的依赖。
46
+ 5. Space 将会自动构建并运行。
47
+ 6. URL格式为`https://your-space-url.hf.space`。
48
+
49
+ ### 💻 本地运行(可选,未测试但是应该能行):
50
+
51
+ 1. 安装依赖:`pip install -r requirements.txt`
52
+ 2. 设置环境变量(如上所述)。
53
+ 3. 运行:`uvicorn app.main:app --reload --host 0.0.0.0 --port 7860`
54
+
55
+ ### 🔌 接入其他服务
56
+
57
+ 1. 在连接中选择OpenAI
58
+ 2. 在API Base URL中填入`https://your-space-url.hf.space/v1`
59
+ 3. 在API Key中填入`PASSWORD`环境变量的值,如未设置则填入`123`
60
+
61
+ ## ⚠️ 注意事项:
62
+
63
+ * **强烈建议在生产环境中设置 `PASSWORD` 环境变量,并使用强密码。**
64
+ * 根据你的使用情况调整速率限制相关的环境变量。
65
+ * 确保你的 Gemini API 密钥具有足够的配额。
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ httpx
4
+ python-dotenv
5
+ requests
6
+ apscheduler