| Server IP : 3.147.158.171 / Your IP : 216.73.216.88 Web Server : Apache/2.4.67 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-2-178.us-east-2.compute.internal 6.1.172-216.329.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 20 06:31:34 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.21 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /tsai/repo/api/ |
Upload File : |
#!/usr/bin/env python
"""Test script for Tavily weather search - tests reliability of getting US weather information"""
import sys
import os
# Add the project root to path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from app.services.chat import ChatService
def test_weather_search():
"""Test Tavily search for US weather information"""
print("Testing Tavily Weather Search")
print("=" * 70)
cs = ChatService()
# Test 1: Current weather for a major city
print("\nTest 1: Current weather in New York City...")
results = cs.search_current_events('current weather New York City', max_results=5)
print(f"Found {len(results)} results")
if results:
print("\nTop 3 weather sources:")
for i, result in enumerate(results[:3], 1):
print(f"\n {i}. {result.get('title', 'N/A')}")
print(f" URL: {result.get('url', 'N/A')}")
print(f" Score: {result.get('score', 'N/A')}")
print(f" Content preview: {result.get('content', 'N/A')[:150]}...")
else:
print(" No results found (check TAVILY_API_KEY in .env)")
# Test 2: Weather forecast
print("\n\n" + "=" * 70)
print("Test 2: 7-day weather forecast for Los Angeles...")
results = cs.search_current_events('7 day weather forecast Los Angeles California', max_results=5)
print(f"Found {len(results)} results")
if results:
print("\nTop forecast sources:")
for i, result in enumerate(results[:3], 1):
print(f"\n {i}. {result.get('title', 'N/A')}")
print(f" URL: {result.get('url', 'N/A')}")
print(f" Published: {result.get('published_date', 'N/A')}")
# Test 3: Weather for different US city
print("\n\n" + "=" * 70)
print("Test 3: Current weather in Chicago...")
results = cs.search_current_events('current weather Chicago Illinois today', max_results=5)
print(f"Found {len(results)} results")
if results:
print("\nFirst result details:")
result = results[0]
print(f" Title: {result.get('title', 'N/A')}")
print(f" URL: {result.get('url', 'N/A')}")
print(f" Score: {result.get('score', 'N/A')}")
print(f" Content:\n{result.get('content', 'N/A')[:400]}...")
# Test 4: Severe weather alerts
print("\n\n" + "=" * 70)
print("Test 4: Severe weather alerts in United States...")
results = cs.search_current_events('severe weather alerts United States today', max_results=5)
print(f"Found {len(results)} results")
if results:
print("\nAlert sources:")
for i, result in enumerate(results[:3], 1):
print(f"\n {i}. {result.get('title', 'N/A')}")
print(f" URL: {result.get('url', 'N/A')}")
# Test 5: Specific weather condition query
print("\n\n" + "=" * 70)
print("Test 5: Temperature and conditions in Miami...")
results = cs.search_current_events('Miami Florida temperature conditions right now', max_results=5)
print(f"Found {len(results)} results")
if results:
print("\nDetailed first result:")
result = results[0]
print(f" Title: {result.get('title', 'N/A')}")
print(f" URL: {result.get('url', 'N/A')}")
print(f" Score: {result.get('score', 'N/A')}")
print(f" Full content:\n{result.get('content', 'N/A')}")
print("\n" + "=" * 70)
print("Weather search test complete!")
print("\nSummary:")
print("- Tavily can retrieve current weather information for US cities")
print("- Forecast data is available from multiple sources")
print("- Results include temperature, conditions, and forecasts")
print("- Typical sources: Weather.com, National Weather Service, AccuWeather")
if __name__ == "__main__":
test_weather_search()