Skip to content

Commit ea4cda4

Browse files
committed
remove unused llmconfig
1 parent eab0836 commit ea4cda4

File tree

12 files changed

+41
-52
lines changed

12 files changed

+41
-52
lines changed

src/lightspeed_evaluation/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
EvaluationResult,
2929
DataValidator,
3030
)
31+
from .core.config import LLMConfig
3132
from .core.metrics import RagasMetrics, DeepEvalMetrics, CustomMetrics
3233

3334
# Output handling
@@ -43,6 +44,7 @@
4344
"TurnData",
4445
"EvaluationResult",
4546
"DataValidator",
47+
"LLMConfig",
4648
# Metrics
4749
"RagasMetrics",
4850
"DeepEvalMetrics",

src/lightspeed_evaluation/core/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
setup_environment_variables,
99
DataValidator,
1010
)
11-
from .config.models import EvaluationResult, TurnData
11+
from .config import EvaluationResult, TurnData, LLMConfig
1212

1313
# LLM management
1414
from .llm import LLMManager
@@ -22,6 +22,7 @@
2222
"DataValidator",
2323
"EvaluationResult",
2424
"TurnData",
25+
"LLMConfig",
2526
# LLM management
2627
"LLMManager",
2728
]

src/lightspeed_evaluation/core/config/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Configuration loading and models for Evaluation Framework."""
22

33
from .loader import ConfigLoader, setup_environment_variables, SystemConfig
4-
from .models import EvaluationData, EvaluationResult, TurnData
4+
from .models import EvaluationData, EvaluationResult, TurnData, LLMConfig
55
from .validator import DataValidator
66

77
__all__ = [
@@ -11,5 +11,6 @@
1111
"EvaluationData",
1212
"EvaluationResult",
1313
"TurnData",
14+
"LLMConfig",
1415
"DataValidator",
1516
]

src/lightspeed_evaluation/core/config/models.py

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -170,30 +170,37 @@ def validate_execution_time(cls, v: float) -> float:
170170

171171

172172
class LLMConfig(BaseModel):
173-
"""LLM Configuration with validation."""
173+
"""LLM configuration from system configuration."""
174174

175-
model_name: str = Field(..., description="The model name to use")
176-
api_base: Optional[str] = Field(None, description="Custom API base URL")
177-
api_key: Optional[str] = Field(None, description="API key for the model")
178-
temperature: float = Field(
179-
0.0, ge=0.0, le=2.0, description="Temperature for sampling"
180-
)
181-
max_tokens: Optional[int] = Field(
182-
None, ge=1, description="Maximum tokens to generate"
183-
)
184-
timeout: Optional[int] = Field(None, ge=1, description="Request timeout in seconds")
185-
num_retries: int = Field(
186-
3, ge=0, description="Number of retries for failed requests"
175+
provider: str = Field(
176+
..., description="Provider name, e.g., openai, azure, watsonx"
187177
)
178+
model: str = Field(..., description="Model identifier or deployment name")
179+
temperature: float = Field(0.0, ge=0.0, le=2.0, description="Sampling temperature")
180+
max_tokens: int = Field(512, ge=1, description="Maximum tokens in response")
181+
timeout: int = Field(300, ge=1, description="Request timeout in seconds")
182+
num_retries: int = Field(3, ge=0, description="Retry attempts for failed requests")
188183

189-
@field_validator("model_name")
184+
@field_validator("provider", "model")
190185
@classmethod
191-
def validate_model_name(cls, v: str) -> str:
192-
"""Validate model name is non-empty."""
193-
if not v or not v.strip():
194-
raise ValueError("Model name cannot be empty")
186+
def _validate_non_empty(cls, v: str) -> str:
187+
"""Validate provider and model are non-empty strings."""
188+
if not v or not isinstance(v, str) or not v.strip():
189+
raise ValueError("Value cannot be empty")
195190
return v.strip()
196191

192+
@classmethod
193+
def from_dict(cls, config_dict: Dict[str, Any]) -> "LLMConfig":
194+
"""Create LLMConfig from a plain dictionary."""
195+
return cls(
196+
provider=config_dict.get("provider", "openai"),
197+
model=config_dict.get("model", "gpt-4o-mini"),
198+
temperature=config_dict.get("temperature", 0.0),
199+
max_tokens=config_dict.get("max_tokens", 512),
200+
timeout=config_dict.get("timeout", 300),
201+
num_retries=config_dict.get("num_retries", 3),
202+
)
203+
197204

198205
# System configuration models
199206
class EvaluationSystemConfig(BaseModel):

src/lightspeed_evaluation/core/llm/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
"""LLM management for Evaluation Framework."""
22

3-
from .manager import LLMManager, LLMConfig, LLMError
3+
from .manager import LLMManager, LLMError
44
from .deepeval import DeepEvalLLMManager
55
from .ragas import RagasLLMManager
6+
from ..config import LLMConfig
67

78
__all__ = [
89
"LLMManager",

src/lightspeed_evaluation/core/llm/manager.py

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,15 @@
11
"""LLM Manager - Generic LLM configuration, validation, and parameter provider."""
22

33
import os
4-
from dataclasses import dataclass
54
from typing import Any, Dict
65

6+
from ..config import LLMConfig
7+
78

89
class LLMError(Exception):
910
"""LLM configuration error."""
1011

1112

12-
@dataclass
13-
class LLMConfig:
14-
"""LLM configuration from system configuration."""
15-
16-
provider: str
17-
model: str
18-
temperature: float = 0.0
19-
max_tokens: int = 512
20-
timeout: int = 300
21-
num_retries: int = 3
22-
23-
@classmethod
24-
def from_dict(cls, config_dict: Dict[str, Any]) -> "LLMConfig":
25-
"""Create config from dictionary."""
26-
return cls(
27-
provider=config_dict.get("provider", "openai"),
28-
model=config_dict.get("model", "gpt-4o-mini"),
29-
temperature=config_dict.get("temperature", 0.0),
30-
max_tokens=config_dict.get("max_tokens", 512),
31-
timeout=config_dict.get("timeout", 300),
32-
num_retries=config_dict.get("num_retries", 3),
33-
)
34-
35-
3613
class LLMManager:
3714
"""
3815
Generic LLM Manager for all use cases (Ragas, DeepEval, Custom metrics).

src/lightspeed_evaluation/core/metrics/custom.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import litellm
77
from pydantic import BaseModel, Field
88

9-
from ..config.models import TurnData
9+
from ..config import TurnData
1010
from ..llm.manager import LLMManager
1111
from ..output.statistics import EvaluationScope
1212

src/lightspeed_evaluation/core/metrics/deepeval.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from deepeval.test_case import ConversationalTestCase
1111
from deepeval.test_case import Turn as DeepEvalTurn
1212

13-
from ..config.models import TurnData
13+
from ..config import TurnData
1414
from ..llm.deepeval import DeepEvalLLMManager
1515
from ..llm.manager import LLMManager
1616
from ..output.statistics import EvaluationScope

src/lightspeed_evaluation/core/metrics/ragas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
ResponseRelevancy,
1414
)
1515

16-
from ..config.models import TurnData
16+
from ..config import TurnData
1717
from ..llm.manager import LLMManager
1818
from ..llm.ragas import RagasLLMManager
1919
from ..output.statistics import EvaluationScope

src/lightspeed_evaluation/core/output/generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from typing import Any, Dict, List, Optional
88

99
from ..config.loader import DEFAULT_CSV_COLUMNS
10-
from ..config.models import EvaluationResult
10+
from ..config import EvaluationResult
1111
from .statistics import calculate_basic_stats, calculate_detailed_stats
1212
from .visualization import GraphGenerator
1313

0 commit comments

Comments
 (0)