aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/core/main/abstractions.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/core/main/abstractions.py')
-rw-r--r--.venv/lib/python3.12/site-packages/core/main/abstractions.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/core/main/abstractions.py b/.venv/lib/python3.12/site-packages/core/main/abstractions.py
new file mode 100644
index 00000000..3aaf2dbf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/core/main/abstractions.py
@@ -0,0 +1,82 @@
+from dataclasses import dataclass
+from typing import TYPE_CHECKING
+
+from pydantic import BaseModel
+
+from core.providers import (
+ AnthropicCompletionProvider,
+ AsyncSMTPEmailProvider,
+ ClerkAuthProvider,
+ ConsoleMockEmailProvider,
+ HatchetOrchestrationProvider,
+ JwtAuthProvider,
+ LiteLLMCompletionProvider,
+ LiteLLMEmbeddingProvider,
+ MailerSendEmailProvider,
+ OllamaEmbeddingProvider,
+ OpenAICompletionProvider,
+ OpenAIEmbeddingProvider,
+ PostgresDatabaseProvider,
+ R2RAuthProvider,
+ R2RCompletionProvider,
+ R2RIngestionProvider,
+ SendGridEmailProvider,
+ SimpleOrchestrationProvider,
+ SupabaseAuthProvider,
+ UnstructuredIngestionProvider,
+)
+
+if TYPE_CHECKING:
+ from core.main.services.auth_service import AuthService
+ from core.main.services.graph_service import GraphService
+ from core.main.services.ingestion_service import IngestionService
+ from core.main.services.management_service import ManagementService
+ from core.main.services.retrieval_service import ( # type: ignore
+ RetrievalService, # type: ignore
+ )
+
+
+class R2RProviders(BaseModel):
+ auth: (
+ R2RAuthProvider
+ | SupabaseAuthProvider
+ | JwtAuthProvider
+ | ClerkAuthProvider
+ )
+ database: PostgresDatabaseProvider
+ ingestion: R2RIngestionProvider | UnstructuredIngestionProvider
+ embedding: (
+ LiteLLMEmbeddingProvider
+ | OpenAIEmbeddingProvider
+ | OllamaEmbeddingProvider
+ )
+ completion_embedding: (
+ LiteLLMEmbeddingProvider
+ | OpenAIEmbeddingProvider
+ | OllamaEmbeddingProvider
+ )
+ llm: (
+ AnthropicCompletionProvider
+ | LiteLLMCompletionProvider
+ | OpenAICompletionProvider
+ | R2RCompletionProvider
+ )
+ orchestration: HatchetOrchestrationProvider | SimpleOrchestrationProvider
+ email: (
+ AsyncSMTPEmailProvider
+ | ConsoleMockEmailProvider
+ | SendGridEmailProvider
+ | MailerSendEmailProvider
+ )
+
+ class Config:
+ arbitrary_types_allowed = True
+
+
+@dataclass
+class R2RServices:
+ auth: "AuthService"
+ ingestion: "IngestionService"
+ management: "ManagementService"
+ retrieval: "RetrievalService"
+ graph: "GraphService"