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.catalog import FunctionalRAGScenario
from trusttest.knowledge_base.neo4j import Neo4jKnowledgeBase
from trusttest.models.testing import DummyEndpoint

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
)

rag_test = FunctionalRAGScenario(
    model=DummyEndpoint(), knowledge_base=knowledge_base, num_questions=2
)

test_set = rag_test.probe.get_test_set()
results = rag_test.eval.evaluate(test_set)
results.display_summary()