Run multiple search queries with cross-query deduplication.
(
self,
queries: list[str],
*,
max_results: int | None = None,
inter_query_delay: float = 1.0,
)
| 113 | return self._search_duckduckgo(query, limit, t0) |
| 114 | |
| 115 | def search_multi( |
| 116 | self, |
| 117 | queries: list[str], |
| 118 | *, |
| 119 | max_results: int | None = None, |
| 120 | inter_query_delay: float = 1.0, |
| 121 | ) -> list[WebSearchResponse]: |
| 122 | """Run multiple search queries with cross-query deduplication.""" |
| 123 | responses = [] |
| 124 | seen_urls: set[str] = set() |
| 125 | |
| 126 | for i, query in enumerate(queries): |
| 127 | if i > 0: |
| 128 | time.sleep(inter_query_delay) |
| 129 | resp = self.search(query, max_results=max_results) |
| 130 | unique_results = [r for r in resp.results if r.url not in seen_urls] |
| 131 | seen_urls.update(r.url for r in unique_results) |
| 132 | resp.results = unique_results |
| 133 | responses.append(resp) |
| 134 | |
| 135 | return responses |
| 136 | |
| 137 | # ------------------------------------------------------------------ |
| 138 | # Tavily backend (primary — uses installed tavily-python SDK) |