| def perform_web_search(query: str, max_results: int = 5, include_domains=None, exclude_domains=None) -> str: |
| """Perform web search using Tavily with default parameters""" |
| if not tavily_client: |
| return "Web search is not available. Please set the TAVILY_API_KEY environment variable." |
| |
| try: |
| |
| search_params = { |
| "search_depth": "advanced", |
| "max_results": min(max(1, max_results), 20) |
| } |
| if include_domains is not None: |
| search_params["include_domains"] = include_domains |
| if exclude_domains is not None: |
| search_params["exclude_domains"] = exclude_domains |
|
|
| response = tavily_client.search(query, **search_params) |
| |
| search_results = [] |
| for result in response.get('results', []): |
| title = result.get('title', 'No title') |
| url = result.get('url', 'No URL') |
| content = result.get('content', 'No content') |
| search_results.append(f"Title: {title}\nURL: {url}\nContent: {content}\n") |
| |
| if search_results: |
| return "Web Search Results:\n\n" + "\n---\n".join(search_results) |
| else: |
| return "No search results found." |
| |
| except Exception as e: |
| return f"Search error: {str(e)}" |
|
|
| def enhance_query_with_search(query: str, enable_search: bool) -> str: |
| """Enhance the query with web search results if search is enabled""" |
| if not enable_search or not tavily_client: |
| return query |
| |
| |
| search_results = perform_web_search(query) |
| |
| |
| enhanced_query = f"""Original Query: {query} |
| {search_results} |
| Please use the search results above to help create the requested application with the most up-to-date information and best practices.""" |
| |
| return enhanced_query |
|
|