b8b37fcd11
* feat: integrate AoxisProxy for HTTP requests in rerankers and CopilotService - Replaced direct axios calls with aoxisProxy in JinaReranker, SiliconFlowReranker, and VoyageReranker to utilize proxy settings. - Introduced AoxisProxy service to manage axios instances with proxy configurations. - Updated CopilotService to use aoxisProxy for API requests, ensuring consistent proxy handling across services. * refactor(AxiosProxy): improve proxy handling and initialization logic * fix tyop * fix tyop
28 lines
739 B
TypeScript
28 lines
739 B
TypeScript
import { AxiosInstance, default as axios_ } from 'axios'
|
|
|
|
import { proxyManager } from './ProxyManager'
|
|
|
|
class AxiosProxy {
|
|
private cacheAxios: AxiosInstance | undefined
|
|
private proxyURL: string | undefined
|
|
|
|
get axios(): AxiosInstance {
|
|
const currentProxyURL = proxyManager.getProxyUrl()
|
|
if (this.proxyURL !== currentProxyURL) {
|
|
this.proxyURL = currentProxyURL
|
|
const agent = proxyManager.getProxyAgent()
|
|
this.cacheAxios = axios_.create({
|
|
proxy: false,
|
|
...(agent && { httpAgent: agent, httpsAgent: agent })
|
|
})
|
|
}
|
|
|
|
if (this.cacheAxios === undefined) {
|
|
this.cacheAxios = axios_.create({ proxy: false })
|
|
}
|
|
return this.cacheAxios
|
|
}
|
|
}
|
|
|
|
export default new AxiosProxy()
|