Song4612 commited on
Commit
13e4833
·
verified ·
1 Parent(s): 776c99a

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +14 -0
  2. readme.md +52 -0
  3. requirements.txt +7 -0
  4. version.txt +1 -0
Dockerfile ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY ./app /app/app
6
+ COPY requirements.txt .
7
+ COPY version.txt .
8
+
9
+ RUN pip install --no-cache-dir -r requirements.txt
10
+
11
+ # 环境变量 (在 Hugging Face Spaces 中设置)
12
+ # ENV GEMINI_API_KEYS=your_key_1,your_key_2,your_key_3
13
+
14
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
readme.md ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🚀 Gemini API Proxy
2
+
3
+ 基于某论坛上一位大佬[@Mrjwj34](https://github.com/Moonfanz)基于另一位大佬[@Moonfanzp](https://github.com/Moonfanz)的代码的修改修改而来,由于大佬好长时间没有维护,我自己也遇到些bug,就魔改了一下,求star求star求star
4
+
5
+ 这是一个基于 FastAPI 构建的 Gemini API 代理,旨在提供一个简单、安全且可配置的方式来访问 Google 的 Gemini 模型。适用于在 Hugging Face Spaces 上部署,并支持openai api格式的工具集成。
6
+ ### 使用文档
7
+ - [使用文档](https://github.com/wyeeeee/hajimi/blob/main/wiki/wiki.md)
8
+ ### 更新日志
9
+ * v0.0.4
10
+ * 修改版本更新逻辑,现在为每四小时检查一次版本更新
11
+ * 前端界面所有数据数据实现动态更新
12
+ * 新增“单api使用次数统计”,在原API调用统计下方新增可折叠的单api使用次数统计,同时提供进度条查看剩余使用次数
13
+ * 在环境变量中新增`API_KEY_DAILY_LIMIT`,为单api 24小时最大使用次数,默认值为25
14
+
15
+ * v0.0.3beta
16
+ * 完善了客户端断开连接的处理逻辑(感谢[@warming-afternoon](https://github.com/warming-afternoon))
17
+ * 新增“假流式传输模式”,该模式默认开启,以解决在某些情况下客户端断开连接的问题。如需关闭,请将环境变量 `FAKE_STREAMING` 设置为 `false`。
18
+
19
+ * v0.0.2 修复了在log中错误暴露apikey的问题,修改了客户端断开连接的处理逻辑(感谢[@warming-afternoon](https://github.com/warming-afternoon))
20
+
21
+ ## ✨ 主要功能:
22
+
23
+ ### 🔑 API 密钥轮询和管理
24
+
25
+ ### 📑 模型列表接口
26
+
27
+ ### 💬 聊天补全接口:
28
+
29
+ * 提供 `/v1/chat/completions` 接口,支持流式(streaming)和非流式响应,与 OpenAI API 格式兼容。
30
+ * 自动将 OpenAI 格式的请求转换为 Gemini 格式。
31
+
32
+ ### 🔒 密码保护(可选):
33
+
34
+ * 通过 `PASSWORD` 环境变量设置密码。
35
+ * 提供默认密码 `"123"`。
36
+
37
+ ### 🚦 速率限制和防滥用:
38
+
39
+ * 通过环境变量自定义限制:
40
+ * `MAX_REQUESTS_PER_MINUTE`:每分钟最大请求数(默认 30)。
41
+ * `MAX_REQUESTS_PER_DAY_PER_IP`:每天每个 IP 最大请求数(默认 600)。
42
+ * 超过速率限制时返回 429 错误。
43
+
44
+ ### 🧩 服务兼容
45
+
46
+ * 提供的接口与 OpenAI API 格式兼容,便于接入各种服务
47
+
48
+ ## ⚠️ 注意事项:
49
+
50
+ * **强烈建议在生产环境中设置 `PASSWORD` 环境变量,并使用强密码。**
51
+ * 根据你的使用情况调整速率限制相关的环境变量。
52
+ * 确保你的 Gemini API 密钥具有足够的配额。
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ httpx
4
+ python-dotenv
5
+ requests
6
+ apscheduler
7
+ jinja2
version.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ version=0.0.4