mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 19:32:15 +00:00
feat(LangChain Nodes): Upgrade LangChain and improve proxy handling for LLM nodes (#16778)
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
import { HttpsProxyAgent } from 'https-proxy-agent';
|
||||
import proxyFromEnv from 'proxy-from-env';
|
||||
import { ProxyAgent } from 'undici';
|
||||
|
||||
export function getHttpProxyAgent() {
|
||||
const httpProxy =
|
||||
process.env.HTTPS_PROXY ??
|
||||
process.env.https_proxy ??
|
||||
process.env.HTTP_PROXY ??
|
||||
process.env.http_proxy;
|
||||
/**
|
||||
* Returns a ProxyAgent or undefined based on the environment variables and target URL.
|
||||
* When target URL is not provided, NO_PROXY environment variable is not respected.
|
||||
*/
|
||||
export function getProxyAgent(targetUrl?: string) {
|
||||
// There are cases where we don't know the target URL in advance (e.g. when we need to provide a proxy agent to ChatAwsBedrock)
|
||||
// In such case we use a dummy URL.
|
||||
// This will lead to `NO_PROXY` environment variable not being respected, but it is better than not having a proxy agent at all.
|
||||
const proxyUrl = proxyFromEnv.getProxyForUrl(targetUrl ?? 'https://example.nonexistent/');
|
||||
|
||||
return httpProxy ? new HttpsProxyAgent(httpProxy) : undefined;
|
||||
if (!proxyUrl) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return new ProxyAgent(proxyUrl);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user