feat: support setting concurrency limits in web search
This commit is contained in:
30
composables/usePLimit.ts
Normal file
30
composables/usePLimit.ts
Normal file
@ -0,0 +1,30 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user