Spaces:
Running
Running
github-actions[bot]
Sync from GitHub Viciy2023/Qwen2API-A@ae093476e9bc5b0a599620b5925df3a20057038e
f120063 | const axios = require('axios') | |
| const accountManager = require('../utils/account.js') | |
| const { getSsxmodItna, getSsxmodItna2 } = require('../utils/ssxmod-manager') | |
| const { getProxyAgent, getChatBaseUrl, applyProxyToAxiosConfig } = require('../utils/proxy-helper') | |
| let cachedModels = null | |
| let fetchPromise = null | |
| const getLatestModels = async (force = false) => { | |
| // 如果有缓存且不强制刷新,直接返回 | |
| if (cachedModels && !force) { | |
| return cachedModels | |
| } | |
| // 如果正在获取,返回当前的 Promise | |
| if (fetchPromise) { | |
| return fetchPromise | |
| } | |
| const chatBaseUrl = getChatBaseUrl() | |
| const proxyAgent = getProxyAgent() | |
| const requestConfig = { | |
| headers: { | |
| 'Authorization': `Bearer ${accountManager.getAccountToken()}`, | |
| 'Content-Type': 'application/json', | |
| 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', | |
| ...(getSsxmodItna() && { 'Cookie': `ssxmod_itna=${getSsxmodItna()};ssxmod_itna2=${getSsxmodItna2()}` }) | |
| } | |
| } | |
| // 添加代理配置 | |
| if (proxyAgent) { | |
| requestConfig.httpsAgent = proxyAgent | |
| requestConfig.proxy = false | |
| } | |
| fetchPromise = axios.get(`${chatBaseUrl}/api/models`, requestConfig).then(response => { | |
| // console.log(response) | |
| cachedModels = response.data.data | |
| fetchPromise = null | |
| return cachedModels | |
| }).catch(error => { | |
| console.error('Error fetching latest models:', error) | |
| fetchPromise = null | |
| return [] | |
| }) | |
| return fetchPromise | |
| } | |
| module.exports = { getLatestModels } |