Initial Commit
This commit is contained in:
77
README.md
77
README.md
@@ -1,3 +1,76 @@
|
||||
# gemini-cli-openai-api
|
||||
# Gemini ↔︎ OpenAI Proxy
|
||||
|
||||
OpenAI API compatible proxy to expose gemini-cli models
|
||||
Serve **Google Gemini 2.5 Pro** (or Flash) through an **OpenAI-compatible API**.
|
||||
Plug-and-play with clients that already speak OpenAI—SillyTavern, llama.cpp, LangChain, the VS Code *Cline* extension, etc.
|
||||
|
||||
---
|
||||
|
||||
## ✨ Features
|
||||
|
||||
| ✔ | Feature | Notes |
|
||||
|---|---------|-------|
|
||||
| `/v1/chat/completions` | Non-stream & stream (SSE) | Works with curl, ST, LangChain… |
|
||||
| Vision support | `image_url` → Gemini `inlineData` | |
|
||||
| Function / Tool calling | OpenAI “functions” → Gemini Tool Registry | |
|
||||
| Reasoning / chain-of-thought | Sends `enable_thoughts:true`, streams `<think>` chunks | ST shows grey bubbles |
|
||||
| 1 M-token context | Proxy auto-lifts Gemini CLI’s default 200 k cap | |
|
||||
| CORS | Enabled (`*`) by default | Ready for browser apps |
|
||||
| Zero external deps | Node 22 + TypeScript only | No Express |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick start (local)
|
||||
|
||||
```bash
|
||||
git clone https://huggingface.co/engineofperplexity/gemini-openai-proxy
|
||||
cd gemini-openai-proxy
|
||||
npm ci # install deps & ts-node
|
||||
|
||||
# launch on port 11434
|
||||
npx ts-node src/server.ts
|
||||
Optional env vars
|
||||
PORT=3000 change listen port
|
||||
GEMINI_API_KEY=<key> use your own key
|
||||
|
||||
Minimal curl test
|
||||
bash
|
||||
Copy
|
||||
Edit
|
||||
curl -X POST http://localhost:11434/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"model": "gemini-2.5-pro-latest",
|
||||
"messages":[{"role":"user","content":"Hello Gemini!"}]
|
||||
}'
|
||||
SillyTavern settings
|
||||
Field Value
|
||||
API Base URL http://127.0.0.1:11434/v1
|
||||
Model gemini-2.5-pro-latest
|
||||
Streaming On
|
||||
Reasoning On → grey <think> lines appear
|
||||
|
||||
🐳 Docker
|
||||
bash
|
||||
Copy
|
||||
Edit
|
||||
# build once
|
||||
docker build -t gemini-openai-proxy .
|
||||
|
||||
# run
|
||||
docker run -p 11434:11434 \
|
||||
-e GEMINI_API_KEY=$GEMINI_API_KEY \
|
||||
gemini-openai-proxy
|
||||
🗂 Project layout
|
||||
pgsql
|
||||
Copy
|
||||
Edit
|
||||
src/
|
||||
server.ts – minimalist HTTP server
|
||||
mapper.ts – OpenAI ⇄ Gemini transforms
|
||||
chatwrapper.ts – thin wrapper around @google/genai
|
||||
remoteimage.ts – fetch + base64 for vision
|
||||
package.json – deps & scripts
|
||||
Dockerfile
|
||||
README.md
|
||||
📜 License
|
||||
MIT – free for personal & commercial use.
|
||||
Reference in New Issue
Block a user