我尝试运行这段代码
import google.generativeai as genai
import os
os.environ['http_proxy'] = 'socks5://<user>:<pass>@<proxy>:<port>'
os.environ['HTTP_PROXY'] = 'socks5://<user>:<pass>@<proxy>:<port>'
os.environ['https_proxy'] = 'socks5://<user>:<pass>@<proxy>:<port>'
os.environ['HTTPS_PROXY'] = 'socks5://<user>:<pass>@<proxy>:<port>'
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
model = genai.GenerativeModel(model_name="gemini-1.5-flash")
response = model.generate_content(["Hi"])
print(response.text)
但是我在 Jupyter 单元输出中遇到错误
FailedPrecondition: 400 User location is not supported for the API use.
我猜它与代理的另一个错误有关。我到了航站楼E0000 00:00:1729659835.353406 15272 http_proxy_mapper.cc:135] 'socks5' scheme not supported in proxy URI
几天前这段代码也运行良好
如何修复此错误
完整追溯
FailedPrecondition Traceback (most recent call last)
Cell In[12], line 1
----> 1 x = model.generate_content(["Hi"])
File ~\AppData\Roaming\Python\Python311\site-packages\google\generativeai\generative_models.py:331, in GenerativeModel.generate_content(self, contents, generation_config, safety_settings, stream, tools, tool_config, request_options)
329 return generation_types.GenerateContentResponse.from_iterator(iterator)
330 else:
--> 331 response = self._client.generate_content(
332 request,
333 **request_options,
334 )
335 return generation_types.GenerateContentResponse.from_response(response)
336 except google.api_core.exceptions.InvalidArgument as e:
File ~\AppData\Roaming\Python\Python311\site-packages\google\ai\generativelanguage_v1beta\services\generative_service\client.py:830, in GenerativeServiceClient.generate_content(self, request, model, contents, retry, timeout, metadata)
827 self._validate_universe_domain()
829 # Send the request.
--> 830 response = rpc(
831 request,
832 retry=retry,
833 timeout=timeout,
834 metadata=metadata,
835 )
837 # Done; return the response.
838 return response
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\gapic_v1\method.py:131, in _GapicCallable.__call__(self, timeout, retry, compression, *args, **kwargs)
128 if self._compression is not None:
129 kwargs["compression"] = compression
--> 131 return wrapped_func(*args, **kwargs)
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\retry\retry_unary.py:293, in Retry.__call__.<locals>.retry_wrapped_func(*args, **kwargs)
289 target = functools.partial(func, *args, **kwargs)
290 sleep_generator = exponential_sleep_generator(
291 self._initial, self._maximum, multiplier=self._multiplier
292 )
--> 293 return retry_target(
294 target,
295 self._predicate,
296 sleep_generator,
297 timeout=self._timeout,
298 on_error=on_error,
299 )
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\retry\retry_unary.py:153, in retry_target(target, predicate, sleep_generator, timeout, on_error, exception_factory, **kwargs)
149 # pylint: disable=broad-except
150 # This function explicitly must deal with broad exceptions.
151 except Exception as exc:
152 # defer to shared logic for handling errors
--> 153 _retry_error_helper(
154 exc,
155 deadline,
156 sleep,
157 error_list,
158 predicate,
159 on_error,
160 exception_factory,
161 timeout,
162 )
163 # if exception not raised, sleep before next attempt
164 time.sleep(sleep)
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\retry\retry_base.py:212, in _retry_error_helper(exc, deadline, next_sleep, error_list, predicate_fn, on_error_fn, exc_factory_fn, original_timeout)
206 if not predicate_fn(exc):
207 final_exc, source_exc = exc_factory_fn(
208 error_list,
209 RetryFailureReason.NON_RETRYABLE_ERROR,
210 original_timeout,
211 )
--> 212 raise final_exc from source_exc
213 if on_error_fn is not None:
214 on_error_fn(exc)
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\retry\retry_unary.py:144, in retry_target(target, predicate, sleep_generator, timeout, on_error, exception_factory, **kwargs)
142 for sleep in sleep_generator:
143 try:
--> 144 result = target()
145 if inspect.isawaitable(result):
146 warnings.warn(_ASYNC_RETRY_WARNING)
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\timeout.py:120, in TimeToDeadlineTimeout.__call__.<locals>.func_with_timeout(*args, **kwargs)
117 # Avoid setting negative timeout
118 kwargs["timeout"] = max(0, self._timeout - time_since_first_attempt)
--> 120 return func(*args, **kwargs)
File ~\AppData\Roaming\Python\Python311\site-packages\google\api_core\grpc_helpers.py:78, in _wrap_unary_errors.<locals>.error_remapped_callable(*args, **kwargs)
76 return callable_(*args, **kwargs)
77 except grpc.RpcError as exc:
---> 78 raise exceptions.from_grpc_error(exc) from exc
FailedPrecondition: 400 User location is not supported for the API use.
失败前提条件:400 API 使用不支持用户位置。
意味着您的代理已将您发送到不支持其的国家/地区,请确保其在可用区域之一
运行