* @returns {Promise<{textBits: string[], links: string[], images: string[]}>}
()
| 1304 | * @returns {Promise<{textBits: string[], links: string[], images: string[]}>} |
| 1305 | */ |
| 1306 | async function callSearchSource() { |
| 1307 | try { |
| 1308 | switch (extension_settings.websearch.source) { |
| 1309 | case WEBSEARCH_SOURCES.SERPAPI: |
| 1310 | return await doSerpApiQuery(query); |
| 1311 | case WEBSEARCH_SOURCES.EXTRAS: |
| 1312 | return await doExtrasApiQuery(query); |
| 1313 | case WEBSEARCH_SOURCES.PLUGIN: |
| 1314 | return await doSeleniumPluginQuery(query); |
| 1315 | case WEBSEARCH_SOURCES.SEARXNG: |
| 1316 | return await doSearxngQuery(query); |
| 1317 | case WEBSEARCH_SOURCES.TAVILY: |
| 1318 | return await doTavilyQuery(query); |
| 1319 | case WEBSEARCH_SOURCES.KOBOLDCPP: |
| 1320 | return await doKoboldCppQuery(query); |
| 1321 | case WEBSEARCH_SOURCES.SERPER: |
| 1322 | return await doSerperQuery(query); |
| 1323 | case WEBSEARCH_SOURCES.ZAI: |
| 1324 | return await doZaiQuery(query); |
| 1325 | default: |
| 1326 | throw new Error(`Unrecognized search source: ${extension_settings.websearch.source}`); |
| 1327 | } |
| 1328 | } catch (error) { |
| 1329 | console.error('WebSearch: search failed', error); |
| 1330 | return { textBits: [], links: [], images: [] }; |
| 1331 | } |
| 1332 | } |
| 1333 | |
| 1334 | const { textBits, links, images } = await callSearchSource(); |
| 1335 | const budget = extension_settings.websearch.budget; |
no test coverage detected