mirror of
https://github.com/di-sukharev/opencommit.git
synced 2026-04-20 03:02:51 -04:00
feat(proxy): add universal proxy support and fix Gemini model resolution (#536)
Integrated undici ProxyAgent for native fetch and HttpsProxyAgent for axios/openai/anthropic. Upgraded @google/generative-ai to fix #536. Added OCO_PROXY config. Co-authored-by: uni <uni@hanwei.ink>
This commit is contained in:
@@ -47,6 +47,7 @@ export function getEngine(): AiEngine {
|
||||
maxTokensOutput: config.OCO_TOKENS_MAX_OUTPUT!,
|
||||
maxTokensInput: config.OCO_TOKENS_MAX_INPUT!,
|
||||
baseURL: config.OCO_API_URL!,
|
||||
proxy: config.OCO_PROXY!,
|
||||
apiKey: config.OCO_API_KEY!,
|
||||
customHeaders
|
||||
};
|
||||
|
||||
21
src/utils/proxy.ts
Normal file
21
src/utils/proxy.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { setGlobalDispatcher, ProxyAgent } from 'undici';
|
||||
import axios from 'axios';
|
||||
import { HttpsProxyAgent } from 'https-proxy-agent';
|
||||
|
||||
export function setupProxy(proxyUrl?: string) {
|
||||
const proxy = proxyUrl || process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
|
||||
if (proxy) {
|
||||
try {
|
||||
// Set global dispatcher for undici (affects globalThis.fetch used by Gemini and others)
|
||||
const dispatcher = new ProxyAgent(proxy);
|
||||
setGlobalDispatcher(dispatcher);
|
||||
|
||||
// Set axios global agent
|
||||
const agent = new HttpsProxyAgent(proxy);
|
||||
axios.defaults.httpsAgent = agent;
|
||||
axios.defaults.proxy = false; // Disable axios built-in proxy handling to use agent
|
||||
} catch (error) {
|
||||
console.warn(`[Proxy Error] Failed to set proxy: ${error.message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user