import requests import json # FastAPI 서버의 기본 URL (컨테이너 내부 혹은 외부 환경에 맞게 수정) BASE_URL = "http://cckb9998.synology.me:8001" def save_image_from_response(response, file_path): """ 바이너리 이미지 데이터를 받아서 파일로 저장하는 함수. """ try: # response가 200 OK일 때만 진행 if response.status_code == 200: with open(file_path, 'wb') as file: file.write(response.content) print(f"이미지가 {file_path}에 저장되었습니다.") else: print(f"이미지를 처리하지 못했습니다. 상태 코드: {response.status_code}") except Exception as e: print(f"이미지 저장 중 오류 발생: {e}") # 단일 이미지 URL을 보내는 테스트 def test_single_image_translation(): image_url = "https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f7489b86608659ad011faf/0fbf1050-0a49-4c37-83b5-6279b66d6e48.jpg" data = { "image_url": image_url, "use_celery": False # Celery 비활성화로 직접 처리 } response = requests.post(f"{BASE_URL}/translate_image/", json=data) if response.status_code == 200: result = response.json() print("Single Image Translation Result:", result) else: print("Failed to process single image translation:", response.status_code) # 여러 이미지 URL을 보내는 테스트 def test_multiple_images_translation(): image_urls = ["https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f7489b86608659ad011faf/0fbf1050-0a49-4c37-83b5-6279b66d6e48.jpg", "https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f7489b86608659ad011faf/38c86cad-a183-47f9-b6e3-3c58a0d76232.jpg", "https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f7489b86608659ad011faf/d20b9712-b9df-404e-bdf6-4cea35f93970.jpg"] data = { "image_urls": image_urls, "use_celery": True # Celery 사용으로 비동기 처리 } response = requests.post(f"{BASE_URL}/translate_images/", json=data) if response.status_code == 200: result = response.json() print("Multiple Images Translation Task IDs:", result) else: print("Failed to process multiple images translation:", response.status_code) # Celery 비동기 작업 상태 확인 def test_task_status(task_id): response = requests.get(f"{BASE_URL}/task_status/{task_id}") if response.status_code == 200: result = response.json() print(f"Task {task_id} Status:", result) else: print(f"Failed to get status for task {task_id}:", response.status_code) if __name__ == "__main__": # 단일 이미지 테스트 실행 test_single_image_translation() # 다중 이미지 테스트 실행 test_multiple_images_translation() # 예시: 비동기 작업 상태 확인 # task_id = "your_task_id_here" # test_task_status(task_id)