Add support for proxy for openai/gemini modes
As title.
These services are geo-locked to only some countries and many people need to use proxy to visit them, including API endpoints.
Related:
- https://github.com/openai/openai-node/issues/85
-
Our upcoming v4 also has support for proxies, as documented here:
- https://github.com/openai/openai-node/tree/v4#configuring-an-https-agent-eg-for-proxies
Originally posted by @rattrayalex in https://github.com/openai/openai-node/issues/85#issuecomment-1627939433
- https://github.com/openai/openai-node#configuring-an-https-agent-eg-for-proxies
-
- https://github.com/google-gemini/generative-ai-js/issues/16
- https://github.com/google-gemini/generative-ai-js/pull/38
For openai proxy support, see also this thread:
- https://github.com/jehna/humanify/issues/265
Of which this most recent update I added is most relevant:
Looks like
openaiv5 is out now, which uses the nativefetch, and has better support for proxies:Here's some updates on the timeline as to when
node-fetchwill no longer be included in it, which I believe will resolve this error:seems that openai is still using
node-fetch, so it might not work
- https://github.com/openai/openai-node/blob/212710db8c8c139392c6532c0eccfd13558ef2d4/README.md?plain=1#L1-L5
We're actively working on a new alpha version that migrates from
node-fetchto builtinfetch.Please try it out and let us know if you run into any issues!
- https://community.openai.com/t/your-feedback-requested-node-js-sdk-5-0-0-alpha/1063774
We’re pleased to share that a new alpha of the 5.0.0 version of the JavaScript / TypeScript SDK is available on npm and in the alpha branch of the GitHub repository. This version of the SDK represents a breaking change to the existing 4.x SDK, as we have migrated completely to using built-in
fetchfor HTTP requests across all environments (Node.js, Deno, etc). However, we do expect that most of your code will “just work” with minor adjustments in types.Looks like
openaiv5 is officially out, which moves to the built-infetch:
- https://github.com/jehna/humanify/pull/459
- https://github.com/openai/openai-node/releases/tag/v5.0.0
- https://github.com/openai/openai-node/blob/master/CHANGELOG.md#500-2025-05-29
- https://github.com/openai/openai-node/releases/tag/v5.0.1
- https://github.com/openai/openai-node/blob/master/CHANGELOG.md#501-2025-05-29
We can see the migration guide here:
- https://github.com/openai/openai-node/blob/master/MIGRATION.md
The main changes are that the SDK now relies on the builtin Web fetch API instead of
node-fetchand has zero dependencies.We can see that it now supports a new
fetchOptionsproperty for customizing the underlyingfetch:
- https://github.com/openai/openai-node/blob/master/MIGRATION.md#removed-httpagent-in-favor-of-fetchoptions
Removed
httpAgentin favor offetchOptionsThe
httpAgentclient option has been removed in favor of a platform-specificfetchOptionsproperty. This change was made ashttpAgentrelied onnode:httpagents which are not supported by any runtime's builtinfetchimplementation.If you were using
httpAgentfor proxy support, check out the new proxy documentation.- https://github.com/openai/openai-node#fetch-options
Fetch options If you want to set custom fetch options without overriding the fetch function, you can provide a fetchOptions object when instantiating the client or making a request. (Request-specific options override client options.)
fetchOptionsis also the basis for how to configure proxies now:
- https://github.com/openai/openai-node#configuring-proxies
Configuring proxies
To modify proxy behavior, you can provide custom
fetchOptionsthat add runtime-specific proxy options to requests:Originally posted by @0xdevalias in https://github.com/jehna/humanify/issues/52#issuecomment-2921148059
Originally posted by @0xdevalias in https://github.com/jehna/humanify/issues/265#issuecomment-2921150326