import sys from pathlib import Path import json # 백엔드 루트를 sys.path에 추가하여 app 모듈을 임포트할 수 있도록 함 SCRIPTS_DIR = Path(__file__).resolve().parent BACKEND_DIR = SCRIPTS_DIR.parent sys.path.append(str(BACKEND_DIR)) from app.core.rag_engine import rag_engine from app.core.llm_chain import llm_chain def test_diet_ad_flow(): print("\n=== [테스트 1] 다이어트 허위광고 분석 플로우 ===") test_ad_text = "이 패치를 붙이고 잠만 자면 밤사이 체지방이 15% 감량됩니다! 굶지 말고 하루 한 장으로 다이어트 성공하세요." # 1. RAG 검색 테스트 print("\n[Step 1] RAG에서 유사 법령 및 사례를 검색하는 중...") search_query = test_ad_text[:200] context = rag_engine.get_search_results_context(search_query, top_k=2) print("--- RAG 검색 결과 컨텍스트 ---") print(context) # 2. LLM 분석 테스트 print("\n[Step 2] AI 엔진이 컨텍스트와 광고 문구를 비교 분석하는 중...") analysis = llm_chain.analyze_content(test_ad_text, context) print("--- AI 최종 분석 결과 JSON ---") print(json.dumps(analysis, indent=2, ensure_ascii=False)) # 검증 assert analysis["risk_score"] > 50, "위험 점수가 적절히 높게 책정되지 않았습니다." assert analysis["risk_level"] in ["RED", "YELLOW"], "위험 레벨 판정이 부적절합니다." print("\n[Success] Diet ad analysis test passed successfully.") def test_joint_ad_flow(): print("\n=== [테스트 2] 관절 식품 완치 광고 분석 플로우 ===") test_ad_text = "관절 통증이 씻은 듯이 사라집니다. 당뇨 예방 및 아토피 치료에 특효인 보스웰리아 음료 판매 중!" # 1. RAG 검색 테스트 print("\n[Step 1] RAG에서 유사 법령 및 사례를 검색하는 중...") search_query = test_ad_text[:200] context = rag_engine.get_search_results_context(search_query, top_k=2) print("--- RAG 검색 결과 컨텍스트 ---") print(context) # 2. LLM 분석 테스트 print("\n[Step 2] AI 엔진이 컨텍스트와 광고 문구를 비교 분석하는 중...") analysis = llm_chain.analyze_content(test_ad_text, context) print("--- AI 최종 분석 결과 JSON ---") print(json.dumps(analysis, indent=2, ensure_ascii=False)) # 검증 assert analysis["risk_score"] > 50, "위험 점수가 적절히 높게 책정되지 않았습니다." assert analysis["risk_level"] in ["RED", "YELLOW"], "위험 레벨 판정이 부적절합니다." print("\n[Success] Joint food ad analysis test passed successfully.") if __name__ == "__main__": try: test_diet_ad_flow() test_joint_ad_flow() print("\n[Success] All backend RAG + AI reasoning flow tests completed successfully!") except Exception as e: print(f"\n[Error] Error occurred during testing: {str(e)}") sys.exit(1)