s.APIError.raise_for_response(response) File "/Users/jc/miniconda3/lib/python3.1...
🚨 错误信息
Traceback (most recent call last):
File "/Users/jc/codes/nanobanana/nanobanana_multiview.py", line 175, in <module>
output_path = generator.edit_image(
^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/codes/nanobanana/nanobanana_multiview.py", line 113, in edit_image
response = self.client.models.generate_content(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/models.py", line 5230, in generate_content
response = self._generate_content(
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/models.py", line 4012, in _generate_content
response = self._api_client.request(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/_api_client.py", line 1388, in request
response = self._request(http_request, http_options, stream=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/_api_client.py", line 1224, in _request
return self._retry(self._request_once, http_request, stream) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/tenacity/__init__.py", line 420, in exc_check
raise retry_exc.reraise()
^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/tenacity/__init__.py", line 187, in reraise
raise self.last_attempt.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/Users/jc/miniconda3/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/_api_client.py", line 1201, in _request_once
errors.APIError.raise_for_response(response)
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/errors.py", line 121, in raise_for_response
cls.raise_error(response.status_code, response_json, response)
File "/Users/jc/miniconda3/lib/python3.12/site-packages/google/genai/errors.py", line 146, in raise_error
raise ClientError(status_code, response_json, response)
google.genai.errors.ClientError: 404 None. {'error': {'message': '', 'type': 'rix_api_error', 'param': '', 'code': 'bad_response_status_code'}}
🤖 AI解决方案
错误翻译
原文:google.genai.errors.ClientError: 404 None. {'error': {'message': '', 'type': 'rix_api_error', 'param': '', 'code': 'bad_response_status_code'}}
译文:客户端错误:404 未找到。错误信息显示为API响应状态码错误。
原因分析
这是一个典型的 HTTP 404 (Not Found) 错误,发生在调用 Google Generative AI (Gemini) API 时。根本原因有以下几种可能性:
- API端点或模型名称错误:请求的模型资源路径不存在或模型名称拼写错误。
- API密钥或权限问题:API密钥无效、未被正确设置,或者没有访问请求模型的权限。
- API客户端版本过时:使用的
google-generativeaiSDK 版本与当前 API 不兼容。 - 首先,检查并验证您的 API 密钥和模型名称。在您的代码中,确保
client的初始化正确,并且传递给generate_content的模型参数是正确的 Gemini 模型名称。
根据堆栈跟踪,错误发生在 nanobanana_multiview.py 文件的第113行,调用 self.client.models.generate_content(...) 时。
解决方案
请按以下步骤检查和修复:
# 确保您的代码中,client初始化类似于这样:
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY") # 替换为您的真实API密钥
# 检查您使用的模型名称。目前有效的模型可能是:
# - gemini-1.5-pro
# - gemini-1.5-flash
# - 或其他您账号有权限访问的模型
model = genai.GenerativeModel('gemini-1.5-flash-latest') # 使用一个明确有效的模型名称示例
# 然后使用 model.generate_content(...) 而不是 client.models.generate_content(...)
# 您的代码可能需要从 client.models 调用方式切换到 GenerativeModel 实例方式。
google-generativeai SDK 到最新版本,以修复潜在的兼容性问题。pip install --upgrade google-generativeai
️ 预防措施
import os
api_key = os.environ.get("GOOGLE_API_KEY")
if not api_key:
raise ValueError("请设置 GOOGLE_API_KEY 环境变量")
genai.configure(api_key=api_key)