import os
from dotenv import load_dotenv
from trusttest.knowledge_base.neo4j import Neo4jKnowledgeBase
from trusttest.probes.rag import RAGProbe, BenignQuestion
from trusttest.evaluation_scenarios import EvaluationScenario
from trusttest.evaluator_suite import EvaluatorSuite
from trusttest.evaluators import AnswerRelevanceEvaluator
from trusttest.targets.testing import DummyTarget
load_dotenv(override=True)
knowledge_base = Neo4jKnowledgeBase(
uri=os.getenv("NEO4J_URI"),
username=os.getenv("NEO4J_USERNAME"),
password=os.getenv("NEO4J_PASSWORD"),
database=os.getenv("NEO4J_DATABASE"),
language="English",
fields_mapping={"content": "chunk", "id": "chunk_id"},
seed_topics=["AI", "Machine Learning"],
max_doc_count=20,
)
probe = RAGProbe(
target=DummyTarget(),
knowledge_base=knowledge_base,
num_questions=2,
question_types=[BenignQuestion.SIMPLE],
)
scenario = EvaluationScenario(
name="RAG Functional",
evaluator_suite=EvaluatorSuite(evaluators=[AnswerRelevanceEvaluator()], criteria="any_fail"),
)
test_set = probe.get_test_set()
results = scenario.evaluate(test_set)
results.display_summary()