ARQ-RAG-Turboquant / scripts /test_local.py
neshaki091
Deploy TurboQuant Backend (Cleaned history & optimized for HF Spaces)
ba86059
import requests
import os
import time
BASE_URL = "http://localhost:8000"
TEST_USER = "tester_01"
TEST_PASS = "password123"
SESSION_ID = "session_test_99"
def test_backend():
print("TEST: Starting Local Backend Test...")
# 1. Check Root
try:
res = requests.get(f"{BASE_URL}/")
print(f"OK: Root Health: {res.json()}")
except:
print("FAIL: Server is NOT running. Please start it with uvicorn first!")
return
# 2. Register
requests.post(f"{BASE_URL}/register", json={"username": TEST_USER, "password": TEST_PASS})
# 3. Login
login_res = requests.post(f"{BASE_URL}/login", json={"username": TEST_USER, "password": TEST_PASS})
if login_res.status_code != 200:
print("FAIL: Login failed")
return
token = login_res.json()["access_token"]
headers = {"Authorization": f"Bearer {token}"}
print("OK: Login successful, token received.")
# 4. Upload (Tạo một file text giả lập PDF hoặc gửi text)
# Ở đây tôi giả định bạn có 1 file PDF test. Nếu không, tôi sẽ bỏ qua bước này
# và test bằng cách hỏi Wiki (System scope)
# 5. Chat Test (Sử dụng mode Ultrafast để test tốc độ)
print(f"LOG: Testing Chat (Mode: Ultrafast, Session: {SESSION_ID})...")
chat_payload = {
"message": "What is TurboQuant?",
"mode": "ultrafast",
"scope": "both",
"session_id": SESSION_ID
}
start = time.time()
chat_res = requests.post(f"{BASE_URL}/chat", json=chat_payload, headers=headers)
end = time.time()
if chat_res.status_code == 200:
print(f"OK: Chat response started in {end-start:.2f}s")
print("--- STREAMING RESPONSE ---")
full_text = ""
for line in chat_res.iter_lines():
if line:
decoded_line = line.decode('utf-8')
if "--META_END--" in decoded_line:
meta_part = decoded_line.split("--META_END--")[0]
print(f"METADATA: {meta_part}")
else:
print(decoded_line, end="", flush=True)
full_text += decoded_line
print("\n--------------------------")
print(f"OK: Full answer received.")
else:
print(f"FAIL: Chat failed: {chat_res.text}")
if __name__ == "__main__":
test_backend()