-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Expand file tree
/
Copy pathfactory.py
More file actions
32 lines (24 loc) 路 1.02 KB
/
Copy pathfactory.py
File metadata and controls
32 lines (24 loc) 路 1.02 KB
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
# llm/factory.py
from pageindex.providers.open_router_provider import OpenRouterProvider
from pageindex.providers.badrock_provider import BedrockProvider
from pageindex.providers.groq_provider import GroqProvider
from pageindex.providers.anthropic_provider import AnthropicProvider
from pageindex.providers.gemini_provider import GeminiProvider
from pageindex.providers.open_ai_provider import OpenAIProvider
class LLMFactory:
@staticmethod
def create(provider: str, api_key: str):
if provider == "openai":
return OpenAIProvider(api_key)
elif provider == "gemini":
return GeminiProvider(api_key)
elif provider =="anthropic":
return AnthropicProvider(api_key)
elif provider =='groq':
return GroqProvider(api_key)
elif provider =='aws-badrock':
return BedrockProvider(api_key)
elif provider == 'open-router':
return OpenRouterProvider(api_key)
else:
raise ValueError("Unsupported provider")