6.9 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
为什么
Gemini API 提供免费 层级,限额慷慨,但仍有许多工具仅支持 OpenAI API。
本项目可免费提供一个个人使用的、兼容 OpenAI 的端点。
无服务器(Serverless)?
虽然它运行在云端,但无需自行维护服务器。 可免费轻松部署到多种云平台提供商 (限额慷慨,适合个人使用)。
Tip
在本地运行代理端点也是一种选择!
如何开始
你需要一个个人的 Google API 密钥.
Important
即使你位于支持的地区, 之外,仍可通过 VPN 获取。
请按照下方说明,将项目部署到任一提供商。 你需要在那里注册账号。
如果选择“一键部署”,系统会引导你先 Fork 仓库, 这对持续集成(CI)是必需的。
使用 Vercel 部署
部署到 Netlify
- 也可通过 cli: 部署
netlify deploy - 本地运行:
netlify dev - 提供两种不同的 API 基址:
部署到 Cloudflare
- 也可手动部署:将
src/worker.mjs的内容粘贴到 https://workers.cloudflare.com/playground(参见该页面的Deploy按钮)。 - 也可通过 cli: 部署
wrangler deploy - 本地运行:
wrangler dev - Worker 限制
部署到 Deno
详见此处.
本地运行 - 使用 Node、Deno、Bun
仅在 Node 环境下:npm install。
然后执行 npm run start / npm run start:deno / npm run start:bun。
开发模式(监听源码变更)
仅在 Node 环境下:npm install --include=dev
然后:npm run dev / npm run dev:deno / npm run dev:bun。
如何使用
如果你在浏览器中打开新部署的站点,只会看到一条 404 Not Found 消息。这是预期行为,因为该 API 并非为浏览器直接访问而设计。
要在软件中使用,请在对应设置字段中填入 API 地址和你的 Gemini API 密钥。
Note
并非所有软件工具都允许覆盖 OpenAI 端点,但许多工具支持 (不过这些设置有时藏得很深)。
通常应按以下格式指定 API 基址:
https://my-super-proxy.vercel.app/v1
相关字段可能标记为 "OpenAI proxy"。 你可能需要在 "Advanced settings" 或类似区域中查找。 或者它可能位于某个配置文件中(详情请查阅相关文档)。
对于某些命令行工具,你可能需要设置环境变量,例如:
OPENAI_BASE_URL="https://my-super-proxy.vercel.app/v1"
…或:
OPENAI_API_BASE="https://my-super-proxy.vercel.app/v1"
模型
若指定的 model 名称以 "gemini-"、"gemma-" 或 "models/" 开头,请求将使用该模型。 否则将应用以下默认值:
chat/completions:gemini-flash-latestembeddings:gemini-embedding-001
内置工具
要使用 web search 工具,在模型名称后追加 ":search" (例如 "gemini-2.5-flash:search")。
注意:尚未实现 annotations 消息的 property。
媒体
支持按 OpenAI specs 规范输入 Vision 和 audio。
通过 inlineData. 实现。
Gemini 专属功能
Gemini 支持多项 OpenAI 模型不具备的功能,
但可通过 extra_body 字段启用。
其中最值得注意的是 thinking_config.
更多详情请参阅 Gemini API 文档.
支持的 API 端点及适用参数
-
chat/completions目前,适用于两个 API 的大多数参数均已实现。
messagescontentrole- "system" (=>
system_instruction) - "user"
- "assistant"
- "tool"
- "system" (=>
tool_calls
modelfrequency_penaltylogit_biaslogprobstop_logprobsmax_tokens,max_completion_tokensn(candidateCount<8,不适用于流式传输)presence_penaltyreasoning_effortresponse_format- "json_object"
- "json_schema"(OpenAPI 3.0 schema 对象的一个选定子集)
- "text"
seedstop:string|array(stopSequences[1,5])streamstream_optionsinclude_usage
temperature(OpenAI 为 0.0..2.0,但 Gemini 最高支持至无穷大)top_ptoolstool_choiceparallel_tool_calls(在 Gemini 中始终处于启用状态)extra_body
-
completions -
embeddingsdimensions
-
models