1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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"
|