3.5 KiB
3.5 KiB
Graphiti Codebase Structure
Root Directory Layout
graphiti/
├── graphiti_core/ # Core library (main Python package)
├── server/ # FastAPI REST API service
├── mcp_server/ # Model Context Protocol server for AI assistants
├── tests/ # Test suite (unit and integration tests)
├── examples/ # Example implementations and use cases
├── images/ # Documentation images and assets
├── signatures/ # CLA signatures
├── .github/ # GitHub Actions workflows
├── pyproject.toml # Project configuration and dependencies
├── Makefile # Development commands
├── README.md # Main documentation
├── CLAUDE.md # Claude Code assistant instructions
├── CONTRIBUTING.md # Contribution guidelines
└── docker-compose.yml # Docker configuration
Core Library (graphiti_core/)
Main Components
graphiti.py: Main entry point containing theGraphiticlass that orchestrates all functionalitynodes.py: Core node/entity data structuresedges.py: Core edge/relationship data structuresgraphiti_types.py: Type definitionserrors.py: Custom exception classeshelpers.py: Utility helper functionsgraph_queries.py: Graph query definitionsdecorators.py: Function decoratorstracer.py: OpenTelemetry tracing support
Subdirectories
driver/: Database drivers for Neo4j, FalkorDB, Kuzu, Neptunellm_client/: LLM clients for OpenAI, Anthropic, Gemini, Groqembedder/: Embedding clients for various providers (OpenAI, Voyage, local models)cross_encoder/: Cross-encoder models for rerankingsearch/: Hybrid search implementation with configurable strategiesprompts/: LLM prompts for entity extraction, deduplication, summarizationutils/: Maintenance operations, bulk processing, datetime handlingmodels/: Pydantic models for data structuresmigrations/: Database migration scriptstelemetry/: Analytics and telemetry code
Server (server/)
graph_service/main.py: FastAPI application entry pointrouters/: API endpoint definitions (ingestion, retrieval)dto/: Data Transfer Objects for API contracts- Has its own
Makefilefor server-specific commands
MCP Server (mcp_server/)
graphiti_mcp_server.py: Model Context Protocol server implementationdocker-compose.yml: Containerized deployment with Neo4j- Has its own
pyproject.tomland dependencies
Tests (tests/)
- Unit tests: Standard pytest tests
- Integration tests: Files with
_intsuffix (require database connections) evals/: End-to-end evaluation scriptsconftest.py: Pytest configuration and fixtures (at root level)
Key Classes
From graphiti_core/graphiti.py:
Graphiti: Main orchestrator classAddEpisodeResults: Results from adding episodesAddBulkEpisodeResults: Results from bulk episode operationsAddTripletResults: Results from adding triplets
Configuration Files
pyproject.toml: Main project configuration (dependencies, build system, tool configs)pytest.ini: Pytest configuration.env.example: Example environment variablesdocker-compose.yml: Docker setup for developmentdocker-compose.test.yml: Docker setup for testing