[Python] Using GEMINI through proxy

Discussão em 'Python' iniciado por Stack, Agosto 24, 2025.

  1. Stack

    Stack Membro Participativo

    I try to run this code

    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)


    but i got an error FailedPrecondition: 400 User location is not supported for the API use. in Jupyter cell output I guess that it connected with another error with proxy. I got in terminal E0000 00:00:1729659835.353406 15272 http_proxy_mapper.cc:135] 'socks5' scheme not supported in proxy URI Also this code worked well some days ago

    How can I fix this error

    full traceback

    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.

    Continue reading...

Compartilhe esta Página