25 lines
776 B
Python
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}")
|