Files
ds_drone_bot/src/config/llm_config.py
T

61 lines
1.8 KiB
Python
Raw Normal View History

2025-07-24 14:27:56 +01:00
class LlmConfig:
class openai:
class models:
gpt_4o = "gpt-4o"
gpt_4_1 = "gpt-4.1"
temperatures = {
"default": 0.7,
"drone_bot": 0.3,
"creative": 0.9
}
max_tokens = {
"default": 2048,
"summary_bot": 512,
"explainer": 1024
}
class anthropic:
class models:
claude_3_opus = "claude-3-opus"
claude_3_sonnet = "claude-3-sonnet"
temperatures = {
"default": 0.5,
"drone_bot": 0.4,
"research": 0.2
}
max_tokens = {
"default": 4096,
"summary_bot": 1024
}
@classmethod
def get_config(cls, provider: str, model_name: str, temp_name: str = "default", token_preset: str = "default") -> dict:
if not hasattr(cls, provider):
raise ValueError(f"Provider '{provider}' not found.")
provider_cls = getattr(cls, provider)
# Get model value from class (e.g., LlmConfig.openai.models.gpt_4o)
model_cls = getattr(provider_cls, "models")
if not hasattr(model_cls, model_name):
raise ValueError(f"Model '{model_name}' not found under provider '{provider}'.")
model = getattr(model_cls, model_name)
if temp_name not in provider_cls.temperatures:
raise ValueError(f"Temperature preset '{temp_name}' not found under provider '{provider}'.")
if token_preset not in provider_cls.max_tokens:
raise ValueError(f"Max token preset '{token_preset}' not found under provider '{provider}'.")
return {
"provider": provider,
"model": model,
"temperature": provider_cls.temperatures[temp_name],
"max_tokens": provider_cls.max_tokens[token_preset]
}