diff options
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.py | 82 |
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" |