通过代理使用GEMINI

问题描述 投票:0回答:1

我尝试运行这段代码

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.
python proxy http-status-code-400 google-gemini
1个回答
0
投票

失败前提条件:400 API 使用不支持用户位置。

意味着您的代理已将您发送到不支持其的国家/地区,请确保其在可用区域之一

运行
© www.soinside.com 2019 - 2024. All rights reserved.