需配置Google AI Studio获取API密钥、初始化Node.js项目安装axios等依赖、封装Gemini客户端构造请求、实现SSE流式解析响应、搭建Express接口完成前后端通信。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望利用 Node.js 和 JavaScript 开发一个能够与 Gemini API 交互的聊天机器人,则需要完成环境配置、API 集成、请求封装及响应流式处理等核心环节。以下是实现该功能的具体步骤:
一、配置 Google AI Studio 并获取 API 密钥
要调用 Gemini 模型,必须通过 Google AI Studio 获取有效的 API 密钥,并确保对应项目已启用 Gemini API 服务。密钥将用于身份验证,是后续所有请求的基础凭证。
1、访问 https://aistudio.google.com/ 并使用 Google 账号登录。
2、点击左上角项目下拉菜单,选择或新建一个项目。
立即学习“Java免费学习笔记(深入)”;
3、进入 “APIs & Services” → “Credentials” 页面,点击 “Create Credentials” → “API key”。
4、复制生成的 API 密钥,并在本地安全存储,例如保存至 .env 文件中。
二、初始化 Node.js 项目并安装必要依赖
需创建标准 Node.js 工程结构,并引入支持 HTTP 请求、环境变量管理及流式响应解析的模块,以支撑 Gemini 的双向通信能力。
1、在终端执行 mkdir gemini-chat-bot && cd gemini-chat-bot 创建项目目录。
2、运行 npm init -y 初始化 package.json。
3、执行 npm install axios dotenv streaming-json-stringify 安装依赖。
4、创建 .env 文件,写入 GEMINI_API_KEY=your_api_key_here。
三、构建 Gemini 请求客户端
需封装一个可复用的客户端模块,负责构造符合 Gemini REST API 规范的 POST 请求,包括设置 URL、请求头、消息体格式及错误处理逻辑。
1、新建 lib/geminiClient.js 文件。
用于在用户想通过浏览器自动化与 Google Gemini 或 ChatGPT 交互时。触发短语包括“ask Gemini”“ask ChatGPT”“ask GPT”“让...”。
2、导入 axios 和 dotenv,并调用 config() 加载环境变量。
3、定义 generateContent 函数,接收用户输入字符串,拼接为 Gemini 所需的 contents 数组结构。
4、使用 axios.post 向 https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${apiKey} 发起请求,设置 headers: { 'Content-Type': 'application/json' }。
四、实现流式响应解析与输出
Gemini 支持以 server-sent events(SSE)格式返回分块响应,需监听 data 事件,逐段提取 text 字段并拼接,避免等待完整响应造成延迟。
1、在请求配置中添加 responseType: 'stream' 选项。
2、获取响应的 data 流对象,调用 on('data', chunk => {...}) 监听事件。
3、对每个 chunk 使用 chunk.toString() 转换为字符串,按行分割后过滤空行。
4、对每行调用 JSON.parse() 提取 candidates[0].content.parts[0].text,追加至累积响应字符串中。
五、搭建 Express 服务端接口
需暴露一个 POST 接口接收前端发送的用户消息,调用 Gemini 客户端获取响应,并将结果以 JSON 格式返回给客户端,形成完整闭环。
1、创建 server.js,导入 express、body-parser 和自定义的 geminiClient。
2、调用 app.use(express.json()) 启用 JSON 解析中间件。
3、定义路由 app.post('/api/chat', async (req, res) => {...}),从 req.body.message 获取输入。
4、调用 geminiClient.generateContent(req.body.message),捕获返回的完整响应文本,调用 res.json({ reply }) 返回。


















