Spaces:
Paused
Paused
| # API Testing Guide | |
| Sau khi deploy thành công lên Hugging Face Spaces, bạn có thể test API bằng các cách sau: | |
| ## Cách 1: Test trực tiếp qua Browser | |
| 1. Vào URL của Space: `https://your-space-name.hf.space` | |
| 2. Test trực tiếp trên UI | |
| 3. Hoặc xem API docs tại: `https://your-space-name.hf.space/docs` | |
| ## Cách 2: Test bằng Script Python | |
| ### Sử dụng script test_api.py: | |
| ```bash | |
| # Test với conversation mặc định | |
| python test_api.py --space_url https://your-space-name.hf.space | |
| # Test với conversation tùy chỉnh | |
| python test_api.py \ | |
| --space_url https://your-space-name.hf.space \ | |
| --test_conversation "Anh ơi tối nay có rảnh không? ||| Em cũng rảnh nè" | |
| ``` | |
| ### Test từng API riêng lẻ: | |
| ```python | |
| import requests | |
| SPACE_URL = "https://your-space-name.hf.space" | |
| # 1. Test Intent API | |
| response = requests.post( | |
| f"{SPACE_URL}/api/intent", | |
| json={"data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"]} | |
| ) | |
| print("Intent:", response.json()) | |
| # 2. Test Tone API | |
| response = requests.post( | |
| f"{SPACE_URL}/api/tone", | |
| json={"data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"]} | |
| ) | |
| print("Tone:", response.json()) | |
| # 3. Test Reply Suggestion API | |
| response = requests.post( | |
| f"{SPACE_URL}/api/reply", | |
| json={"data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"]} | |
| ) | |
| print("Reply:", response.json()) | |
| ``` | |
| ## Cách 3: Test bằng cURL | |
| ```bash | |
| # Test Intent | |
| curl -X POST "https://your-space-name.hf.space/api/intent" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"]}' | |
| # Test Tone | |
| curl -X POST "https://your-space-name.hf.space/api/tone" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"]}' | |
| # Test Reply Suggestion | |
| curl -X POST "https://your-space-name.hf.space/api/reply" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"]}' | |
| ``` | |
| ## Cách 4: Test bằng Gradio API | |
| ```python | |
| import requests | |
| SPACE_URL = "https://your-space-name.hf.space" | |
| # Reply Suggestion tab (fn_index=2) | |
| response = requests.post( | |
| f"{SPACE_URL}/api/predict", | |
| json={ | |
| "data": ["Tối nay anh có lịch đột xuất. ||| Thế mai được không?"], | |
| "fn_index": 2 # Reply Suggestion tab | |
| } | |
| ) | |
| result = response.json() | |
| print("Result:", result) | |
| # Extract suggestion | |
| if "data" in result: | |
| data = result["data"] | |
| if isinstance(data, list) and len(data) >= 2: | |
| suggestion = data[1] # Second element is the suggestion text | |
| print(f"Generated Reply: {suggestion}") | |
| ``` | |
| ## Response Format | |
| ### Intent/Tone API Response: | |
| ```json | |
| [ | |
| {"label": "partner_intent_flirt", "score": 0.85}, | |
| {"label": "partner_intent_invite", "score": 0.12}, | |
| ... | |
| ] | |
| ``` | |
| ### Reply Suggestion API Response: | |
| ```json | |
| { | |
| "data": [ | |
| { | |
| "suggestion": "Mai được nha, em sắp xếp lại lịch cho.", | |
| "intent": "flirt", | |
| "intent_score": 0.85, | |
| "tone": "warm", | |
| "tone_score": 0.92, | |
| "male": "Tối nay anh có lịch đột xuất.", | |
| "female": "Thế mai được không?", | |
| "model_type": "finetuned" | |
| }, | |
| "Mai được nha, em sắp xếp lại lịch cho." # Suggestion text only | |
| ] | |
| } | |
| ``` | |
| ## Example Test Cases | |
| ```python | |
| test_cases = [ | |
| { | |
| "conversation": "Tối nay anh có lịch đột xuất. ||| Thế mai được không?", | |
| "expected_intent": "invite_propose", | |
| "expected_tone": "warm" | |
| }, | |
| { | |
| "conversation": "Em dễ thương quá. ||| Cảm ơn anh nha", | |
| "expected_intent": "flirt_charm", | |
| "expected_tone": "warm" | |
| }, | |
| { | |
| "conversation": "Anh đang làm gì đấy? ||| Đang làm việc", | |
| "expected_intent": "rapport", | |
| "expected_tone": "plain" | |
| } | |
| ] | |
| for test in test_cases: | |
| response = requests.post( | |
| f"{SPACE_URL}/api/reply", | |
| json={"data": [test["conversation"]]} | |
| ) | |
| print(f"\nInput: {test['conversation']}") | |
| print(f"Response: {response.json()}") | |
| ``` | |
| ## Troubleshooting | |
| ### API không response? | |
| - Kiểm tra Space đã deploy xong chưa | |
| - Check Logs tab trong Space để xem lỗi | |
| - Đảm bảo URL đúng format: `https://your-space-name.hf.space` | |
| ### Rate limiting? | |
| - Hugging Face Spaces có rate limit | |
| - Đợi vài giây giữa các requests | |
| - Hoặc upgrade Space tier | |
| ### Model not found error? | |
| - Check xem fine-tuning đã hoàn thành chưa (xem Logs) | |
| - App sẽ tự động fallback về base model/Inference API | |
| - Check `model_type` trong response để biết đang dùng model nào | |