Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for Proxy Configuration Support in google-generativeai Library to Route Traffic Through Proxies #610

Open
Alexmalab opened this issue Oct 18, 2024 · 6 comments
Assignees
Labels
component:support How to do xyz? status:triaged Issue/PR triaged to the corresponding sub-team type:feature request New feature request/enhancement

Comments

@Alexmalab
Copy link

Alexmalab commented Oct 18, 2024

Description of the feature request:

I need to use the google-generativeai Python library with routing its api requests through a proxy. However, the library doesn't natively support passing proxy configurations directly when initializing the client.

Feature Request

Add support for passing proxy configurations (e.g., as part of client_options) directly to the google-generativeai client, ensuring all network requests—including file uploads—are routed through the proxy.

What problem are you trying to solve with this feature?

This would avoid the need for global proxy settings or reverse proxies, offering a cleaner and more robust solution in network-restricted environments.

Any other information you'd like to share?

I have tried the following approaches, each with limitations:

  1. Global Environment Variables (os.environ['HTTP_PROXY'], os.environ['HTTPS_PROXY)

    • This works but affects all network requests globally, which is problematic in my multi-threaded, multi-process environment of the project. Managing when to apply or remove these settings isn't practical.
  2. Reverse Proxy with Custom API Endpoint

    • Since genai.configure() supports api_endpoint parameter, I created a custom route on my project that routes requests as a reverse proxy. This works for model.generate_content function but fails with the genai.upload_file function, as it hardcodes Google's endpoint, bypassing the custom API endpoint.
@gmKeshari gmKeshari added type:feature request New feature request/enhancement status:triaged Issue/PR triaged to the corresponding sub-team component:support How to do xyz? labels Oct 21, 2024
@ethanshancn
Copy link

Also have similar requirements, and I hope the team can support this feature

@toolittlecakes
Copy link

FYI, I've given up on this and created a separate utility function for file uploads. Use aiohttp instead of requests for async. It wraps the result in genai File object, so, can be natively used with genai code

@mbaneshi
Copy link

If someone is behinde proxy , all call simply return 403 , and there is no way to make it works unfortunately , SDK do not respect ENV variable , and no option to configure the proxy, WHY? we don't know!

@AnoyiX
Copy link

AnoyiX commented Dec 19, 2024

just set global environment variables grpc_proxy, see doc gRPC environment variables

@mbaneshi
Copy link

Thanks @AnoyiX setting grpc_proxy , resolved issue.

@FlyingStarlight
Copy link

just set global environment variables grpc_proxy, see doc gRPC environment variables

however, the genai.upload_file still doesnt work, right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:support How to do xyz? status:triaged Issue/PR triaged to the corresponding sub-team type:feature request New feature request/enhancement
Projects
None yet
Development

No branches or pull requests

8 participants