ciyidogan commited on
Commit
c3aae5d
·
verified ·
1 Parent(s): 1e4a027

Delete llm_factory.py

Browse files
Files changed (1) hide show
  1. llm_factory.py +0 -97
llm_factory.py DELETED
@@ -1,97 +0,0 @@
1
- """
2
- LLM Provider Factory for Flare
3
- """
4
- import os
5
- from typing import Optional
6
- from dotenv import load_dotenv
7
-
8
- from llm_interface import LLMInterface
9
- from llm_spark import SparkLLM
10
- from llm_openai import OpenAILLM
11
- from config_provider import ConfigProvider
12
- from logger import log_info, log_error, log_warning, log_debug
13
-
14
- class LLMFactory:
15
- @staticmethod
16
- def create_provider() -> LLMInterface:
17
- """Create LLM provider based on configuration"""
18
- cfg = ConfigProvider.get()
19
- llm_config = cfg.global_config.llm_provider
20
-
21
- if not llm_config:
22
- raise ValueError("No LLM provider configured")
23
-
24
- provider_name = llm_config.name
25
- log_info(f"🏭 Creating LLM provider: {provider_name}")
26
-
27
- # Get provider definition
28
- provider_def = cfg.global_config.get_provider_config("llm", provider_name)
29
- if not provider_def:
30
- raise ValueError(f"Unknown LLM provider: {provider_name}")
31
-
32
- # Get API key
33
- api_key = LLMFactory._get_api_key(provider_name, llm_config.api_key)
34
-
35
- # Create provider based on name
36
- if provider_name == "spark":
37
- return LLMFactory._create_spark_provider(llm_config, api_key, provider_def)
38
- elif provider_name == "spark_cloud":
39
- return LLMFactory._create_spark_provider(llm_config, api_key, provider_def)
40
- elif provider_name in ["gpt-4o", "gpt-4o-mini"]:
41
- return LLMFactory._create_gpt_provider(llm_config, api_key, provider_def)
42
- else:
43
- raise ValueError(f"Unsupported LLM provider: {provider_name}")
44
-
45
- @staticmethod
46
- def _create_spark_provider(llm_config, api_key, provider_def):
47
- """Create Spark LLM provider"""
48
- endpoint = llm_config.endpoint
49
- if not endpoint:
50
- raise ValueError("Spark endpoint not configured")
51
-
52
- # Determine variant based on environment
53
- is_cloud = bool(os.environ.get("SPACE_ID"))
54
- variant = "hfcloud" if is_cloud else "on-premise"
55
-
56
- return SparkLLM(
57
- spark_endpoint=endpoint,
58
- spark_token=api_key,
59
- provider_variant=variant,
60
- settings=llm_config.settings
61
- )
62
-
63
- @staticmethod
64
- def _create_gpt_provider(llm_config, api_key, provider_def):
65
- """Create OpenAI GPT provider"""
66
- return OpenAILLM(
67
- api_key=api_key,
68
- model=llm_config.name,
69
- settings=llm_config.settings
70
- )
71
-
72
- @staticmethod
73
- def _get_api_key(provider_name: str, configured_key: Optional[str]) -> str:
74
- """Get API key from config or environment"""
75
- # First try configured key
76
- if configured_key:
77
- # Handle encrypted keys
78
- if configured_key.startswith("enc:"):
79
- from encryption_utils import decrypt
80
- return decrypt(configured_key)
81
- return configured_key
82
-
83
- # Then try environment variables
84
- env_mappings = {
85
- "spark": "SPARK_TOKEN",
86
- "gpt-4o": "OPENAI_API_KEY",
87
- "gpt-4o-mini": "OPENAI_API_KEY"
88
- }
89
-
90
- env_var = env_mappings.get(provider_name)
91
- if env_var:
92
- key = os.environ.get(env_var)
93
- if key:
94
- log_info(f"📌 Using API key from environment: {env_var}")
95
- return key
96
-
97
- raise ValueError(f"No API key found for provider: {provider_name}")