ARQ-RAG-Turboquant / scripts /test_backend.py
neshaki091
Deploy TurboQuant Backend (Cleaned history & optimized for HF Spaces)
ba86059
import requests
import json
import time
import sys
import io
# Đảm bảo in được tiếng Việt trên terminal Windows
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
BASE_URL = "http://localhost:8000"
def test():
print(f"[*] Testing Backend at {BASE_URL}...")
# 1. Root check
res = requests.get(f"{BASE_URL}/")
print(f"[+] Root: {res.json()}")
# 2. Register
user_data = {"username": "testuser_" + str(int(time.time())), "password": "testpass123"}
res = requests.post(f"{BASE_URL}/register", json=user_data)
print(f"[+] Register: {res.json()}")
# 3. Login
res = requests.post(f"{BASE_URL}/login", json=user_data)
login_res = res.json()
print(f"[+] Login successful")
token = login_res["access_token"]
# 4. Chat (RAG Search)
headers = {"Authorization": f"Bearer {token}"}
chat_data = {
"message": "DNS là gì và nó hoạt động như thế nào?",
"mode": "balance",
"scope": "system"
}
print(f"[*] Sending RAG query to 5 million vectors...")
start = time.time()
with requests.post(f"{BASE_URL}/chat", json=chat_data, headers=headers, stream=True) as r:
metadata_buffer = ""
metadata_received = False
full_response = ""
with open("ai_response.txt", "w", encoding="utf-8") as f:
for line in r.iter_lines():
if not line: continue
decoded = line.decode('utf-8')
if not metadata_received:
if "--META_END--" in decoded:
metadata_buffer += decoded.split("--META_END--")[0]
try:
meta = json.loads(metadata_buffer.strip())
print(f"[+] Metadata: Latency={meta['latency']}, Complexity={meta['complexity']}")
print(f"[+] Sources Found: {len(meta['sources'])} documents")
except Exception as e:
print(f"[!] Meta Parse Error: {e}")
metadata_received = True
else:
metadata_buffer += decoded
else:
full_response += decoded
f.write(decoded)
# Print a bit to console
if len(full_response) < 500:
print(decoded, end="", flush=True)
duration = time.time() - start
print(f"\n\n[+] Chat complete in {duration:.2f}s")
print("-" * 50)
print(f"Full response saved to ai_response.txt")
if __name__ == "__main__":
try:
test()
except Exception as e:
print(f"\n[ERROR] Test failed: {e}")