Spaces:
Paused
Paused
| 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) | |