File size: 1,370 Bytes
7964128 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import requests
import argparse
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).parent))
from src.personalization.config import settings
def main():
parser = argparse.ArgumentParser(description="Test the Recommendation API")
parser.add_argument("--host", type=str, default=settings.HOST, help="API Host")
parser.add_argument("--port", type=int, default=settings.PORT, help="API Port")
args = parser.parse_args()
base_url = f"http://{args.host}:{args.port}"
url = f"{base_url}/personalize/recommend"
payload = {
"user_history": [
"The Haunted School",
"It Came from Beneath the Sink!"
"Legion"
],
"top_k": 5
}
print(f"Sending request to {url}...")
try:
response = requests.post(url, json=payload)
if response.status_code == 200:
results = response.json()
print("\u2714 Recommendations:")
for i, book in enumerate(results, 1):
print(f"{i}. {book['title']} (Score: {book['score']:.4f})")
else:
print(f"\u2714 Error {response.status_code}: {response.text}")
except Exception as e:
print(f"\u2714 Failed to connect: {e}")
print("Make sure the uvicorn server is running on port 8001!")
if __name__ == "__main__":
main() |