Skip to main content
The Neo4jKnowledgeBase class provides access to documents stored in a Neo4j graph database. It enables efficient document storage, retrieval, and clustering based on topic similarity. The implementation supports topic discovery, document embedding, and language detection.

Dependencies

The following external dependencies are required:
uv add "trusttest[rag-neo4j]"

Usage Example

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()