MicroFish/backend/app/adapters/graph/factory.py

25 lines
776 B
Python

"""Graph provider factory."""
from __future__ import annotations
import os
from typing import Optional
from .base import GraphProvider
from .graphiti import GraphitiGraphProvider
from .zep import ZepGraphProvider
def create_graph_provider(provider: Optional[str] = None) -> GraphProvider:
provider_name = provider or os.environ.get("MIROFISH_GRAPH_PROVIDER")
if not provider_name:
mode = os.environ.get("MIROFISH_MODE", "agent")
provider_name = "graphiti" if mode == "agent" else "zep"
provider_name = provider_name.lower()
if provider_name == "graphiti":
return GraphitiGraphProvider()
if provider_name == "zep":
return ZepGraphProvider()
raise ValueError(f"Unsupported MIROFISH_GRAPH_PROVIDER: {provider_name}")