Files
deep-research-web-ui/composables/usePLimit.ts

31 lines
1008 B
TypeScript

import pLimit from 'p-limit'
/**
* The concurrency value used by the global limit.
* This represents the *actual* limit value.
* The value in `globalLimit` should not be used, because `deepResearch` uses recursive calls,
* and `globalLimit.concurrency` can be much higher than the actual one.
*/
let globalLimitConcurrency = 2
const globalLimit = pLimit(globalLimitConcurrency)
export function usePLimit() {
const { config } = useConfigStore()
if (
config.webSearch.concurrencyLimit &&
config.webSearch.concurrencyLimit >= 1 &&
globalLimitConcurrency !== config.webSearch.concurrencyLimit
) {
console.log(
`[usePLimit] Updating concurrency from ${globalLimitConcurrency} to ${config.webSearch.concurrencyLimit}. Current concurrency: ${globalLimit.concurrency}`,
)
let newLimit = config.webSearch.concurrencyLimit
let diff = newLimit - globalLimitConcurrency
globalLimitConcurrency = newLimit
globalLimit.concurrency += diff
}
return globalLimit
}