Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

gemini_cli_oai_proxy

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gemini_cli_oai_proxy

通过 **OpenAI 兼容的 API** 提供 **Google Gemini 1.5 Pro** (或 Flash) 服务。 与已经支持 OpenAI 的客户端即插即用,例如 SillyTavern、llama.cpp、LangChain、VS Code 的 *Cline* 扩展等。

latest
npmnpm
Version
2.8.2
Version published
Weekly downloads
7
-81.58%
Maintainers
1
Weekly downloads
 
Created
Source

Gemini ↔︎ OpenAI 代理

通过 OpenAI 兼容的 API 提供 Google Gemini 1.5 Pro (或 Flash) 服务。
与已经支持 OpenAI 的客户端即插即用,例如 SillyTavern、llama.cpp、LangChain、VS Code 的 Cline 扩展等。

✨ 特性

功能备注
/v1/chat/completions非流式 & 流式 (SSE)支持 curl、ST、LangChain…
/v1/messagesAnthropic 格式支持完整的 Claude API 兼容
/v1/gemini/generate原生 Gemini 格式直接传递 Gemini API 请求
视觉支持image_url → Gemini inlineData
函数 / 工具调用OpenAI "functions" → Gemini 工具注册表
细粒度流事件response.content_part.*(可选)、并行多工具 call_id更易于客户端对齐
推理 / 思维链发送 enable_thoughts:true,流式传输 <think> 区块ST 显示灰色气泡
100万 token 上下文代理自动解除 Gemini CLI 默认的 20万 上限
CORS默认启用 (*)可用于浏览器应用
无外部依赖仅需 Node 22 + TypeScript无 Express

🚀 快速入门 (本地)

git clone https://huggingface.co/engineofperplexity/gemini-openai-proxy
cd gemini-openai-proxy
npm ci                        # 安装依赖 & ts-node

# 在 11434 端口启动
npx ts-node src/server.ts

可选环境变量

  • PORT=3000 更改监听端口
  • GEMINI_API_KEY=<key> 使用你自己的密钥

最小化 curl 测试

OpenAI 格式

curl -X POST http://localhost:11434/v1/chat/completions \
     -H "Content-Type: application/json" \
     -d '{
       "model": "gemini-1.5-pro-latest",
       "messages":[{"role":"user","content":"Hello Gemini!"}]
     }'

Anthropic 格式

curl -X POST http://localhost:11434/v1/messages \
     -H "Content-Type: application/json" \
     -d '{
       "model": "claude-3-sonnet",
       "max_tokens": 1024,
       "messages":[{"role":"user","content":"Hello Claude!"}]
     }'

原生 Gemini 格式

curl -X POST http://localhost:11434/v1/gemini/generate \
     -H "Content-Type: application/json" \
     -d '{
       "contents": [
         {
           "role": "user",
           "parts": [{"text": "Hello Gemini!"}]
         }
       ],
       "generationConfig": {
         "temperature": 0.7,
         "maxOutputTokens": 1024
       }
     }'

SillyTavern 设置

字段
API 基础 URLhttp://127.0.0.1:11434/v1
模型gemini-1.5-pro-latest
流式传输
推理开 → 出现灰色 <think>

🐳 Docker

# 构建一次
docker build -t gemini-openai-proxy .

# 运行
docker run -p 11434:11434 \
           -e GEMINI_API_KEY=$GEMINI_API_KEY \
           gemini-openai-proxy

🗂 项目结构

src/
  server.ts        – 极简 HTTP 服务器
  mapper.ts        – OpenAI ⇄ Gemini 转换
  chatwrapper.ts   – @google/genai 的轻量级封装
  remoteimage.ts   – 用于视觉的 fetch + base64
package.json       – 依赖 & 脚本
Dockerfile
README.md

🔄 流式 Responses 事件

  • 基础事件:response.createdresponse.output_text.deltaresponse.output_text.doneresponse.done,可选 response.reasoning.delta/done
  • 工具调用(流式):
    • response.output_item.addedtype: tool_call, item_id, call_id, name
    • response.function_call_arguments.delta(含 output_indexitem_idcall_iddelta
    • response.function_call_arguments.doneresponse.output_item.done
  • 细粒度内容分片(可选):
    • response.content_part.addedpart_idindextype
    • response.content_part.deltapart_idindexdelta
    • response.content_part.donepart_idindex

说明:默认仅发送官方 Responses 事件;传入 experimental_content_part_events: true 可额外收到 response.content_part.*。每个函数调用分片作为独立 content_part 暴露,并赋予稳定的 call_iditem_id,以便客户端并行跟踪多个工具调用。

📜 许可证

MIT – 个人和商业用途免费。

FAQs

Package last updated on 27 Oct 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts