Upload 6 files
Browse files- Dockerfile +20 -0
- Dockerfile_git +14 -0
- readme.md +66 -0
- requirements.txt +7 -0
- version.txt +1 -0
- 新建文件夹.7z +3 -0
Dockerfile
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.11-slim
|
| 2 |
+
|
| 3 |
+
WORKDIR /app
|
| 4 |
+
|
| 5 |
+
# 安装 unzip 工具
|
| 6 |
+
RUN apt-get update && apt-get install -y unzip && rm -rf /var/lib/apt/lists/*
|
| 7 |
+
|
| 8 |
+
COPY app.zip .
|
| 9 |
+
COPY requirements.txt .
|
| 10 |
+
COPY version.txt .
|
| 11 |
+
RUN mkdir -p app
|
| 12 |
+
# 解压 app.zip 文件
|
| 13 |
+
RUN unzip app.zip -d app && rm app.zip
|
| 14 |
+
|
| 15 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 16 |
+
|
| 17 |
+
# 环境变量 (在 Hugging Face Spaces 中设置)
|
| 18 |
+
# ENV GEMINI_API_KEYS=your_key_1,your_key_2,your_key_3
|
| 19 |
+
|
| 20 |
+
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
|
Dockerfile_git
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,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🚀 HAJIMI 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 |
+
- [【推荐】huggingface的使用文档(手机电脑均可使用)](./wiki/huggingface.md)
|
| 8 |
+
- [termux部署的使用文档(手机使用)](./wiki/Termux.md)
|
| 9 |
+
- [docker部署的使用文档(服务器自建使用)](./wiki/docker.md)
|
| 10 |
+
### 更新日志
|
| 11 |
+
* v0.1.1
|
| 12 |
+
* 新增联网模式,为所有gemini2.x模型提供联网能力,在模型列表中选择-serach后缀的模型启用
|
| 13 |
+
* 新增环境变量`SERACH_MODE`是否启用联网模式,默认为true
|
| 14 |
+
* 新增环境变量`SERACH_PROMPT`为联网模式提示词,默认为`(使用搜索工具联网搜索,需要在content中结合搜索内容)`
|
| 15 |
+
* v0.1.0
|
| 16 |
+
* 使用vue重写前端界面,适配移动端
|
| 17 |
+
* 前端界面添加黑夜模式
|
| 18 |
+
* 支持为多模态模型上传图片
|
| 19 |
+
* 可用秘钥数量将异步更新,防止阻塞进程
|
| 20 |
+
* 这次真能北京时间16点自动重置统计数据了
|
| 21 |
+
* 为api秘钥使用统计新增模型使用统计,可分别统计使用不同模型的次数
|
| 22 |
+
* 修改默认api可用次数为100次
|
| 23 |
+
* 降低默认伪装信息长度为5,以减少对上下文的污染
|
| 24 |
+
|
| 25 |
+
* v0.0.5beta
|
| 26 |
+
* 新增“**伪装信息**功能,默认开启,可在转发消息中添加随机字符串伪装消息,防止被检测
|
| 27 |
+
* 修复若干bug
|
| 28 |
+
* 为前端界面新增**功能配置**栏目,可检查功能是否开启
|
| 29 |
+
* 北京时间16点自动重置统计数据
|
| 30 |
+
* 在环境变量中新增`RANDOM_STRING`,是否启用伪装信息,默认值为true
|
| 31 |
+
* 在环境变量中新增`RANDOM_STRING_LENGTH`,伪装信息长度,默认为20
|
| 32 |
+
* 为git用户提供单独的`Dockerfile_git`
|
| 33 |
+
* 历史版本更新日志请查看[update](./wiki/update.md)
|
| 34 |
+
|
| 35 |
+
## ✨ 主要功能:
|
| 36 |
+
|
| 37 |
+
### 🔑 API 密钥轮询和管理
|
| 38 |
+
|
| 39 |
+
### 📑 模型列表接口
|
| 40 |
+
|
| 41 |
+
### 💬 聊天补全接口:
|
| 42 |
+
|
| 43 |
+
* 提供 `/v1/chat/completions` 接口,支持流式(streaming)和非流式响应,与 OpenAI API 格式兼容。
|
| 44 |
+
* 自动将 OpenAI 格式的请求转换为 Gemini 格式。
|
| 45 |
+
|
| 46 |
+
### 🔒 密码保护(可选):
|
| 47 |
+
|
| 48 |
+
* 通过 `PASSWORD` 环境变量设置密码。
|
| 49 |
+
* 提供默认密码 `"123"`。
|
| 50 |
+
|
| 51 |
+
### 🚦 速率限制和防滥用:
|
| 52 |
+
|
| 53 |
+
* 通过环境变量自定义限制:
|
| 54 |
+
* `MAX_REQUESTS_PER_MINUTE`:每分钟最大请求数(默认 30)。
|
| 55 |
+
* `MAX_REQUESTS_PER_DAY_PER_IP`:每天每个 IP 最大请求数(默认 600)。
|
| 56 |
+
* 超过速率限制时返回 429 错误。
|
| 57 |
+
|
| 58 |
+
### 🧩 服务兼容
|
| 59 |
+
|
| 60 |
+
* 提供的接口与 OpenAI API 格式兼容,便于接入各种服务
|
| 61 |
+
|
| 62 |
+
## ⚠️ 注意事项:
|
| 63 |
+
|
| 64 |
+
* **强烈建议在生产环境中设置 `PASSWORD` 环境变量,并使用强密码。**
|
| 65 |
+
* 根据你的使用情况调整速率限制相关的环境变量。
|
| 66 |
+
* 确保你的 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.1.1
|
新建文件夹.7z
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9d8b32c8c30c079d9a294e3c93b9d932bdd2e14ec85791aede2c3d377e587ea0
|
| 3 |
+
size 94922
|