├── .dockerignore ├── .github ├── dependabot.yml └── workflows │ ├── auto-commit-build.yml │ └── ci.yml ├── .gitignore ├── api └── handler.mjs ├── assets ├── demo.png └── vision-demo.jpeg ├── biome.jsonc ├── changelog.md ├── deno.jsonc ├── deno.lock ├── dist ├── main_bun.mjs ├── main_bun.mjs.map ├── main_cloudflare-workers.mjs ├── main_cloudflare-workers.mjs.map ├── main_deno.mjs ├── main_deno.mjs.map ├── main_node.mjs └── main_node.mjs.map ├── docker ├── bun.Dockerfile ├── deno.Dockerfile └── node.Dockerfile ├── fly.toml ├── generate-opeapi-types.ts ├── license ├── main_bun.ts ├── main_cloudflare-workers.ts ├── main_deno.ts ├── main_node.ts ├── readme.md ├── src ├── app.ts ├── gemini-api-client │ ├── errors.ts │ ├── gemini-api-client.ts │ ├── response-helper.ts │ └── types.ts ├── gemini-proxy.ts ├── generated-types │ ├── gemini-types.ts │ └── openai-types.ts ├── hello.ts ├── log.ts ├── openai │ ├── audio │ │ └── speech │ │ │ ├── EdgeProxyHandler.ts │ │ │ ├── OaiProxyHandler.ts │ │ │ ├── TTSProxyHandler.ts │ │ │ └── utils.ts │ ├── chat │ │ └── completions │ │ │ ├── ChatProxyHandler.ts │ │ │ ├── NonStreamingChatProxyHandler.ts │ │ │ └── StreamingChatProxyHandler.ts │ ├── embeddingProxyHandler.ts │ └── models.ts ├── reset.d.ts ├── types.ts └── utils.ts ├── test ├── chat-completion_test.ts ├── get_token_test.ts ├── mock-fetch.ts ├── models_test.ts └── test-data.ts ├── tsconfig.json ├── vercel.json └── zbpack.json /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/auto-commit-build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/.github/workflows/auto-commit-build.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/.gitignore -------------------------------------------------------------------------------- /api/handler.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/api/handler.mjs -------------------------------------------------------------------------------- /assets/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/assets/demo.png -------------------------------------------------------------------------------- /assets/vision-demo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/assets/vision-demo.jpeg -------------------------------------------------------------------------------- /biome.jsonc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/biome.jsonc -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/changelog.md -------------------------------------------------------------------------------- /deno.jsonc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/deno.jsonc -------------------------------------------------------------------------------- /deno.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/deno.lock -------------------------------------------------------------------------------- /dist/main_bun.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_bun.mjs -------------------------------------------------------------------------------- /dist/main_bun.mjs.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_bun.mjs.map -------------------------------------------------------------------------------- /dist/main_cloudflare-workers.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_cloudflare-workers.mjs -------------------------------------------------------------------------------- /dist/main_cloudflare-workers.mjs.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_cloudflare-workers.mjs.map -------------------------------------------------------------------------------- /dist/main_deno.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_deno.mjs -------------------------------------------------------------------------------- /dist/main_deno.mjs.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_deno.mjs.map -------------------------------------------------------------------------------- /dist/main_node.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_node.mjs -------------------------------------------------------------------------------- /dist/main_node.mjs.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/dist/main_node.mjs.map -------------------------------------------------------------------------------- /docker/bun.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/docker/bun.Dockerfile -------------------------------------------------------------------------------- /docker/deno.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/docker/deno.Dockerfile -------------------------------------------------------------------------------- /docker/node.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/docker/node.Dockerfile -------------------------------------------------------------------------------- /fly.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/fly.toml -------------------------------------------------------------------------------- /generate-opeapi-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/generate-opeapi-types.ts -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/license -------------------------------------------------------------------------------- /main_bun.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/main_bun.ts -------------------------------------------------------------------------------- /main_cloudflare-workers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/main_cloudflare-workers.ts -------------------------------------------------------------------------------- /main_deno.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/main_deno.ts -------------------------------------------------------------------------------- /main_node.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/main_node.ts -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/readme.md -------------------------------------------------------------------------------- /src/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/app.ts -------------------------------------------------------------------------------- /src/gemini-api-client/errors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/gemini-api-client/errors.ts -------------------------------------------------------------------------------- /src/gemini-api-client/gemini-api-client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/gemini-api-client/gemini-api-client.ts -------------------------------------------------------------------------------- /src/gemini-api-client/response-helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/gemini-api-client/response-helper.ts -------------------------------------------------------------------------------- /src/gemini-api-client/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/gemini-api-client/types.ts -------------------------------------------------------------------------------- /src/gemini-proxy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/gemini-proxy.ts -------------------------------------------------------------------------------- /src/generated-types/gemini-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/generated-types/gemini-types.ts -------------------------------------------------------------------------------- /src/generated-types/openai-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/generated-types/openai-types.ts -------------------------------------------------------------------------------- /src/hello.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/hello.ts -------------------------------------------------------------------------------- /src/log.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/log.ts -------------------------------------------------------------------------------- /src/openai/audio/speech/EdgeProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/audio/speech/EdgeProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/audio/speech/OaiProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/audio/speech/OaiProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/audio/speech/TTSProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/audio/speech/TTSProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/audio/speech/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/audio/speech/utils.ts -------------------------------------------------------------------------------- /src/openai/chat/completions/ChatProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/chat/completions/ChatProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/chat/completions/NonStreamingChatProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/chat/completions/NonStreamingChatProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/chat/completions/StreamingChatProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/chat/completions/StreamingChatProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/embeddingProxyHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/embeddingProxyHandler.ts -------------------------------------------------------------------------------- /src/openai/models.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/openai/models.ts -------------------------------------------------------------------------------- /src/reset.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/reset.d.ts -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/types.ts -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/src/utils.ts -------------------------------------------------------------------------------- /test/chat-completion_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/test/chat-completion_test.ts -------------------------------------------------------------------------------- /test/get_token_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/test/get_token_test.ts -------------------------------------------------------------------------------- /test/mock-fetch.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/test/mock-fetch.ts -------------------------------------------------------------------------------- /test/models_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/test/models_test.ts -------------------------------------------------------------------------------- /test/test-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/test/test-data.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/vercel.json -------------------------------------------------------------------------------- /zbpack.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zuisong/gemini-openai-proxy/HEAD/zbpack.json --------------------------------------------------------------------------------