返回文章列表
服务器

Gemini API 服务器怎么搭建?Gemini API 服务器搭建方法?

匿名
2025-11-10
1天前
Gemini API 服务器怎么搭建?Gemini API 服务器搭建方法?

需求场景描述

假如你现在正在借助AI撰写一篇长篇小说,需要把前因背景几十万字作为上下文输入AI,亦或者你正在进行学术文献梳理,需要把几十篇文献输入AI,亦或者你正在撰写一篇深度研究报告,需要将海量参考资料输入AI等,此时你需要具有很大上下文的模型,那么这种情况下,Gemini 是比较合适的,Gemini 使用的场景是:

  • • 需要很长的上下文;
  • • 尽量的节省成本;
  • • 个人低频使用,不商用。

但是 Gemini API 有个最大的问题,就是需要特殊的网络环境,我们希望可以在正常的网络环境下调用Gemini API,从而可以低成本使用其超长上下文的能力。

Github 上这个项目 xixu-me/Xget 给我了很大的启发,这是项目的技术文档:深入剖析 Xget:一个高性能、多协议、高安全性的开发者资源加速引擎。我们普通人不需要复现这么复杂的项目,我们只需要借鉴他的思路:在 Cloudflare 上新建 Worker (代理服务器),把本地请求通过 Cloudflare 转发给 Gemini 官方服务器,并把 Worker 通过 DNS 绑定到自己的域名。

本文介绍两种方式:一是使用 Cloudflare 边缘网络实现转发;二是在 Railway 服务器上建一个 Express.js 服务。不过要注意的是:这两种方式都需要先购买域名。

Cloudflare 边缘网络的配置方式

Step 1:编写 Worker 代码

本地新建文件 gemini_proxy.js

// 定义 Gemini API 的官方主机地址constGEMINI_API_HOST = "generativelanguage.googleapis.com";exportdefault {asyncfetch(request, env, ctx) {// 从原始请求中复制 URL,以便我们能修改它const requestUrl = newURL(request.url);// 如果用户直接访问根路径,返回一个友好的提示信息if (requestUrl.pathname === "/") {returnnewResponse(JSON.stringify({message: "Gemini API Proxy is running.",usage: "Append the original Gemini API path to this URL.",example: `${requestUrl.protocol}//${requestUrl.hostname}/v1/models/gemini-2.5-pro:generateContent`        }), {status: 200,headers: { 'Content-Type': 'application/json' },        }      );    }// 创建目标 API 的 URLconst targetUrl = newURL(requestUrl.pathname, `https://${GEMINI_API_HOST}`);// 将原始请求中的查询参数(除了我们自己的 key)复制到目标 URL    requestUrl.searchParams.forEach((value, key) => {      targetUrl.searchParams.append(key, value);    });// 从 Cloudflare 的环境变量中安全地获取你的 API 密钥const apiKey = env.GEMINI_API_KEY;// 检查密钥是否存在if (!apiKey) {returnnewResponse(JSON.stringify({ error: "GEMINI_API_KEY is not set in the worker's environment variables." }), { status: 500 });    }// 将密钥作为查询参数添加到目标 URL 中,这是 Gemini API 要求的方式    targetUrl.searchParams.append("key", apiKey);// 复制原始请求的 Headers,并确保 Host 被正确设置const headers = newHeaders(request.headers);    headers.set("Host", GEMINI_API_HOST);// 构建并发送转发请求// 我们直接传递原始请求的 method, headers, 和 bodyconst response = awaitfetch(targetUrl.toString(), {method: request.method,headers: headers,body: request.body,    });// 将从 Gemini API 收到的响应原封不动地返回给客户端return response;  },};

Step 2:部署到 Cloudflare Workers

登录Cloudflare控制台:dash.cloudflare.com

左侧:BUILD - Compute & AI - Workers & Pages

右上角:Create Application - Drag and drop your files,Worker name 使用默认,Upload file - gemini_proxy.js,Deploy

Step3:设置 Cloudflare Workers

进入新建的 Cloudflare Workers - Settings

Domains & Routes - Add - Custom domain,填入 你设定的域名,Add domain,然后进入 DNS 页面,可以看到新建的 Worker 记录

跳出如下窗口即成功

Cloudflare will add the following DNS record to ricknote.net and provision a new certificate to enable HTTPS.

Step4:设置 环境变量 API Key

进入新建的 Cloudflare Workers - Settings - Variables and Secrets - Add

Type 选择 Text,Variable name 填入 GEMINI_API_KEY,Value 填入 Gemini Key

Railway 配置方式

大概原理是:使用 Express.js 和 http-proxy-middleware 创建的 Node.js 代理服务器脚本,用于转发请求到 Google 的 Gemini API

Step 1:新建 index.js 脚本

const express = require('express');const { createProxyMiddleware } = require('http-proxy-middleware');const app = express();// Gemini API 的官方基础 URLconst geminiApiUrl = 'https://generativelanguage.googleapis.com';// 创建代理中间件app.use('/', createProxyMiddleware({  target: geminiApiUrl,  changeOrigin:true,// 必须设置为 true,否则 many API 会拒绝请求// 重写路径,移除我们自定义的基础路径(如果你的域名后面有特定路径的话)// 在这个简单场景下,我们让所有请求都直接转发  pathRewrite: (path, req) => {    return path;},  onProxyReq: (proxyReq, req, res) => {// 将请求的主机头也修改为目标API的,增强代理的“透明度”    proxyReq.setHeader('Host', new URL(geminiApiUrl).host);}}));// 从 Railway 提供的环境变量中获取端口,如果未提供则默认为 3000const port = process.env.PORT || 3000;app.listen(port, () => {  console.log(`Gemini proxy server listening on port ${port}`);});

Step 2:新建 package.json

{"name":"my-gemini-proxy","version":"1.0.0","description":"A simple proxy for Gemini API on Railway","main":"index.js","scripts":{"start":"node index.js"},"dependencies":{"express":"^4.19.2","http-proxy-middleware":"^3.0.0"}}

Step 3:上传 Github 仓库

Step 4:部署到 Railway

登录 Railway - Create - GitHub Repo - 选择这个仓库

Step 5:配置 Domain

进入 Railway 部署的项目,进入项目设置 Settings

Custom Domain

Add Custom Domain - 设置自定义域名,port 选择默认的 8080,Add Domain

弹出 Configure DNS Records,记录 Value

Step 6:配置 Cloudflare DNS

进入 Cloudflare DNS - Add Record

实际应用

部署好 Gemini API 转发服务器后,我们再搭建一个前端,就可以自定义我们个性化的应用了,比如可以写小学生作文,自己设定系统提示词,用户提示词,以及老师发的范文。


如果老师发的范文是照片,我们可以上传照片,然后使用 OCR 转换成文本,来录入系统。等一会儿,作文就写好了。


本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议