grantforge-api / backend /scripts /run_eval.py
GrantForge Bot
Deploy sha-565ad85979610064f6d1c18ab3b6404357d61073 — source build (no GHCR)
ce8f04a
Raw
History Blame Contribute Delete
1.92 kB
#!/usr/bin/env python3
"""
Uruchamia ewaluację jakości odpowiedzi LangGraph (DeepEval).
Skrypt ten jest skrótem pozwalającym na łatwe włączanie testów LLMOps.
"""
import os
import sys
import subprocess
import shutil
def main():
print("==============================================")
print(" Uruchamianie testów DeepEval (Faithfulness) ")
print("==============================================")
# 2. Uruchamiany konkretny zestaw testowy
target_test = os.path.join(
os.path.dirname(__file__), "..", "tests", "test_deepeval_rag.py"
)
print(f"[*] Wykorzystywany zbiór testów: {target_test}")
# Znajdź 'deepeval' - albo w PATH, albo w sys.executable's Scripts folder
deepeval_bin = shutil.which("deepeval")
if not deepeval_bin:
deepeval_bin = os.path.join(
os.path.dirname(sys.executable), "Scripts", "deepeval.exe"
)
if not os.path.exists(deepeval_bin):
print("[!] Biblioteka 'deepeval' nieznaleziona.")
print("Aby uruchomić ewaluację lokalnie wpisz:")
print(" pip install -r requirements-dev.txt")
sys.exit(1)
print(f"[*] Wykonywanie przez {deepeval_bin} ...")
env = os.environ.copy()
env["PYTHONPATH"] = os.path.join(os.path.dirname(__file__), "..")
env["PYTHONIOENCODING"] = "utf-8"
result = subprocess.run(
[deepeval_bin, "test", "run", target_test],
cwd=os.path.join(os.path.dirname(__file__), ".."),
env=env,
text=True,
encoding="utf-8",
)
print("\n----------------------------------------------")
if result.returncode == 0:
print("[V] Zakończono pomyślnie. Nie wykryto halucynacji poniżej progu.")
else:
print(
"[X] Wykryto nieścisłości (odpowiedzi mogły wziąć dane z zewnątrz Prawnika)."
)
if __name__ == "__main__":
main()