chatbot_test / app.py
minh9972t12's picture
Update app.py
fdc8d37 verified
raw
history blame
5.87 kB
"""
Test script for Event Tags Generator API
"""
import requests
import json
# API endpoint
BASE_URL = "http://localhost:8001"
def test_generate_tags():
"""Test single event tag generation"""
print("=" * 60)
print("Testing Event Tags Generator")
print("=" * 60)
# Test data
event_data = {
"event_name": "Vietnam Music Festival 2025",
"category": "Âm nhạc",
"short_description": "Lễ hội âm nhạc quốc tế lớn nhất Việt Nam năm 2025",
"detailed_description": """
Vietnam Music Festival 2025 là sự kiện âm nhạc đỉnh cao quy tụ các nghệ sĩ
nổi tiếng trong nước và quốc tế. Sự kiện diễn ra trong 3 ngày với hơn 50
nghệ sĩ tham gia, từ nhạc pop, rock, EDM đến acoustic. Đặc biệt có sự góp
mặt của các DJ hàng đầu thế giới. Không gian festival rộng 10,000m2 tại
trung tâm Hà Nội với hệ thống âm thanh ánh sáng hiện đại. Dự kiến thu hút
hơn 30,000 khán giả mỗi ngày.
""",
"max_tags": 12,
"language": "vi"
}
print("\n📤 REQUEST:")
print(json.dumps(event_data, indent=2, ensure_ascii=False))
try:
# Call API
response = requests.post(
f"{BASE_URL}/generate-tags",
json=event_data,
headers={"Content-Type": "application/json"}
)
if response.status_code == 200:
result = response.json()
print("\n✅ SUCCESS!")
print("\n📥 RESPONSE:")
print(json.dumps(result, indent=2, ensure_ascii=False))
print("\n" + "=" * 60)
print("GENERATED METADATA:")
print("=" * 60)
print(f"\n🏷️ TAGS ({len(result['generated_tags'])} tags):")
for tag in result['generated_tags']:
print(f" • {tag}")
print(f"\n📁 PRIMARY CATEGORY: {result['primary_category']}")
if result['secondary_categories']:
print(f"\n📂 SECONDARY CATEGORIES:")
for cat in result['secondary_categories']:
print(f" • {cat}")
if result['keywords']:
print(f"\n🔍 SEO KEYWORDS:")
for kw in result['keywords']:
print(f" • {kw}")
if result['hashtags']:
print(f"\n#️⃣ HASHTAGS:")
for ht in result['hashtags']:
print(f" • {ht}")
if result['target_audience']:
print(f"\n👥 TARGET AUDIENCE:")
for aud in result['target_audience']:
print(f" • {aud}")
print(f"\n😊 SENTIMENT: {result['sentiment']}")
print(f"💯 CONFIDENCE: {result['confidence_score']}")
print(f"⏱️ GENERATION TIME: {result['generation_time']}")
print(f"🤖 MODEL USED: {result['model_used']}")
else:
print(f"\n❌ ERROR: {response.status_code}")
print(response.text)
except requests.exceptions.ConnectionError:
print("\n❌ ERROR: Cannot connect to API")
print("Make sure the server is running: python event_tags_generator.py")
except Exception as e:
print(f"\n❌ ERROR: {str(e)}")
def test_batch_generation():
"""Test batch event tag generation"""
print("\n\n" + "=" * 60)
print("Testing Batch Tag Generation")
print("=" * 60)
events = [
{
"event_name": "Tech Summit Vietnam 2025",
"category": "Công nghệ",
"short_description": "Hội nghị công nghệ lớn nhất Đông Nam Á",
"detailed_description": "Sự kiện quy tụ các chuyên gia AI, Blockchain, Cloud Computing từ Google, Microsoft, Amazon...",
"max_tags": 10,
"language": "vi"
},
{
"event_name": "Food Festival Saigon",
"category": "Ẩm thực",
"short_description": "Lễ hội ẩm thực đường phố Sài Gòn",
"detailed_description": "Khám phá hơn 100 món ăn đường phố đặc trưng của Sài Gòn với các đầu bếp nổi tiếng...",
"max_tags": 8,
"language": "vi"
}
]
print(f"\n📤 Generating tags for {len(events)} events...")
try:
response = requests.post(
f"{BASE_URL}/generate-tags/batch",
json=events,
headers={"Content-Type": "application/json"}
)
if response.status_code == 200:
result = response.json()
print(f"\n✅ Batch completed!")
print(f" Total: {result['total']}")
print(f" Successful: {result['successful']}")
print(f" Failed: {result['failed']}")
for item in result['results']:
if item['success']:
print(f"\n✓ {item['event_name']}")
print(f" Tags: {', '.join(item['data']['generated_tags'][:5])}...")
else:
print(f"\n✗ {item['event_name']}")
print(f" Error: {item['error']}")
else:
print(f"\n❌ ERROR: {response.status_code}")
print(response.text)
except Exception as e:
print(f"\n❌ ERROR: {str(e)}")
if __name__ == "__main__":
import os
uvicorn.run(
"main:app",
host="0.0.0.0",
port=int(os.environ.get("PORT", 7860)),
reload=False,
log_level="info"
)