You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用React和JavaScript开发Gemini AI克隆项目时遭遇TypeError: request is not iterable错误求助

使用React和JavaScript开发Gemini AI克隆项目时遭遇TypeError: request is not iterable错误求助

看起来问题出在你调用run()函数时没有传入任何prompt参数,导致chatSession.sendMessage()接收到的是undefined——Google的Generative AI SDK在处理这个无效的请求内容时,内部尝试把它当成可迭代对象来处理,于是就抛出了request is not iterable这个错误。

我们来一步步修复这个问题:

1. 核心问题:缺少有效的Prompt参数

你的代码最后直接执行了run(),但run函数定义是需要接收prompt参数的。当没有传参时,prompt是undefined,这会让SDK的内部处理逻辑出错。

2. 修复方案

首先,确保调用run时传入一个有效的字符串prompt;其次,我们可以在函数里增加参数校验,避免后续再出现类似的空值问题;另外,一定要注意API Key的安全问题(后面会重点提)。

修改后的代码如下:

import { GoogleGenerativeAI } from "@google/generative-ai";

// 注意:这里的API Key硬编码在前端是非常危险的!后面会说明怎么处理
const apiKey = "AIzaSyDBBrhCK33iSPdt8RXJF6ev_6pPBthW57w";
const genAI = new GoogleGenerativeAI(apiKey);

const model = genAI.getGenerativeModel({
  model: "gemini-1.5-flash",
});

const generationConfig = {
  temperature: 1,
  topP: 0.95,
  topK: 40,
  maxOutputTokens: 8192,
  responseMimeType: "text/plain",
};

async function run(prompt) {
  // 先校验prompt是否有效,避免空值/非字符串传入
  if (!prompt || typeof prompt !== "string") {
    console.error("请提供有效的字符串类型Prompt");
    return;
  }

  const chatSession = model.startChat({
    generationConfig,
    history: [],
  });

  try {
    const result = await chatSession.sendMessage(prompt);
    const responseText = result.response.text();
    console.log(responseText);
    return responseText; // 可以把结果返回给调用方,方便在React组件里使用
  } catch (error) {
    console.error("调用Gemini API时出错:", error);
  }
}

// 调用时传入具体的prompt内容
run("你好,我是一名React新手,能给我一些学习建议吗?");

export default run;

3. 重要提醒:API Key的安全问题

绝对不要把Google的API Key直接硬编码在前端代码里! 前端代码是完全公开的,任何人都能通过浏览器开发者工具看到你的API Key,一旦泄露,别人可以用你的Key调用API产生费用,甚至滥用你的配额。

正确的做法是:

  • 搭建一个简单的后端服务(比如用Node.js/Express)
  • 在后端代码里存储API Key,前端通过调用自己的后端接口来间接请求Gemini API
  • 后端再作为代理,把请求转发给Google的Generative AI服务

这样就能保证你的API Key不会被泄露。

如果还有其他问题,比如在React组件里怎么触发这个函数(比如用户点击按钮或输入内容后),可以再补充说明你的使用场景,我再帮你调整代码~

备注:内容来源于stack exchange,提问作者Devan Tera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:58:07