feat: Update AI analysis and alert processing for improved email thread management
- Increased the maximum number of messages analyzed in the `analyze_thread` function from 4 to 6 for better context. - Enhanced the system prompt to clarify the criteria for determining if a thread is actionable. - Improved logging in the `process_alerts` function to provide detailed insights during alert processing. - Refactored the WhatsApp sender to include better error handling and logging for Twilio integration. - Updated email ingestion logic to return whether analysis is needed based on the folder processed.
This commit is contained in:
+114
@@ -0,0 +1,114 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test Twilio credentials and WhatsApp configuration
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from dotenv import load_dotenv
|
||||
from twilio.rest import Client
|
||||
|
||||
# Load environment variables
|
||||
load_dotenv()
|
||||
|
||||
|
||||
def test_credentials():
|
||||
print("=" * 60)
|
||||
print("TWILIO CREDENTIALS TEST")
|
||||
print("=" * 60)
|
||||
|
||||
# Get credentials
|
||||
account_sid = (os.getenv("TWILIO_ACCOUNT_SID") or "").strip()
|
||||
auth_token = (os.getenv("TWILIO_AUTH_TOKEN") or "").strip()
|
||||
from_number = (os.getenv("TWILIO_WHATSAPP_NUMBER") or "").strip()
|
||||
to_number = (os.getenv("WHATSAPP_TO_NUMBER") or "").strip()
|
||||
|
||||
# Check if credentials exist
|
||||
print("\n1. Checking environment variables:")
|
||||
print(f" TWILIO_ACCOUNT_SID: {'✓ Found' if account_sid else '✗ Missing'}")
|
||||
if account_sid:
|
||||
print(f" Value: {account_sid[:8]}...{account_sid[-4:]}")
|
||||
|
||||
print(f" TWILIO_AUTH_TOKEN: {'✓ Found' if auth_token else '✗ Missing'}")
|
||||
if auth_token:
|
||||
print(f" Value: {'*' * len(auth_token[:4])}...{auth_token[-4:]}")
|
||||
|
||||
print(f" TWILIO_WHATSAPP_NUMBER: {'✓ Found' if from_number else '✗ Missing'}")
|
||||
if from_number:
|
||||
print(f" Value: {from_number}")
|
||||
|
||||
print(f" WHATSAPP_TO_NUMBER: {'✓ Found' if to_number else '✗ Missing'}")
|
||||
if to_number:
|
||||
print(f" Value: {to_number}")
|
||||
|
||||
# Test authentication
|
||||
if not (account_sid and auth_token):
|
||||
print("\n❌ Missing required credentials!")
|
||||
print("\nPlease check your .env file and ensure:")
|
||||
print(" - TWILIO_ACCOUNT_SID is set")
|
||||
print(" - TWILIO_AUTH_TOKEN is set")
|
||||
print(" - No extra spaces or quotes around values")
|
||||
return False
|
||||
|
||||
print("\n2. Testing Twilio authentication...")
|
||||
try:
|
||||
client = Client(account_sid, auth_token)
|
||||
|
||||
# Try to fetch account info to verify auth
|
||||
account = client.api.accounts(account_sid).fetch()
|
||||
print(" ✓ Authentication successful!")
|
||||
print(f" Account: {account.friendly_name}")
|
||||
print(f" Status: {account.status}")
|
||||
|
||||
except Exception as e:
|
||||
print(" ✗ Authentication failed!")
|
||||
print(f" Error: {e}")
|
||||
print("\n Troubleshooting:")
|
||||
print(" 1. Go to https://console.twilio.com")
|
||||
print(" 2. Navigate to Account > API keys & tokens")
|
||||
print(" 3. Copy the Account SID and Auth Token")
|
||||
print(" 4. Update your .env file with correct values")
|
||||
print(" 5. Make sure there are NO quotes or spaces")
|
||||
return False
|
||||
|
||||
# Test WhatsApp sender configuration
|
||||
print("\n3. Testing WhatsApp sender configuration...")
|
||||
if not from_number:
|
||||
print(" ✗ TWILIO_WHATSAPP_NUMBER not set")
|
||||
print(" Please set up WhatsApp sender at:")
|
||||
print(" https://console.twilio.com/us1/develop/sms/senders/whatsapp-senders")
|
||||
return False
|
||||
|
||||
if not from_number.startswith("+"):
|
||||
print(f" ⚠ Warning: Phone number should start with '+': {from_number}")
|
||||
|
||||
print(f" ✓ WhatsApp sender configured: {from_number}")
|
||||
|
||||
# Test recipient
|
||||
print("\n4. Testing recipient configuration...")
|
||||
if not to_number:
|
||||
print(" ✗ WHATSAPP_TO_NUMBER not set")
|
||||
return False
|
||||
|
||||
if not to_number.startswith("+"):
|
||||
print(f" ⚠ Warning: Phone number should start with '+': {to_number}")
|
||||
|
||||
print(f" ✓ Recipient configured: {to_number}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("✓ ALL CHECKS PASSED - Ready to send WhatsApp messages!")
|
||||
print("=" * 60)
|
||||
return True
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = test_credentials()
|
||||
|
||||
if success:
|
||||
print("\nYou can now send test messages with:")
|
||||
print(
|
||||
" python -c 'from src.whatsapp_sender import WhatsAppSender; "
|
||||
'w = WhatsAppSender(); print(w.send_alert("Test message"))\''
|
||||
)
|
||||
else:
|
||||
print("\n❌ Please fix the issues above before sending WhatsApp messages")
|
||||
Reference in New Issue
Block a user