> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neuraltrust.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Neo4j

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

```python theme={null}
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()
```
