chutes llm provider (#390)

* chutes llm provider * Entferne Platzhalter für Chutes-Embedding-Funktion

PepeDiedrich committed May 19, 2025 at 14:34 UTC d139acf06ec8ffa45f728d97c5df6c8b628a62f7
2 files changed +25
models.py
+22
@@ -54,6 +54,7 @@ class ModelProvider(Enum):
54 OPENAI_AZURE = "OpenAI Azure"
55 OPENROUTER = "OpenRouter"
56 SAMBANOVA = "Sambanova"
57 + CHUTES = "Chutes" # Added Chutes
58 OTHER = "Other"
59
60
@@ -65,6 +66,7 @@ def get_api_key(service):
66 return (
67 dotenv.get_dotenv_value(f"API_KEY_{service.upper()}")
68 or dotenv.get_dotenv_value(f"{service.upper()}_API_KEY")
69 + or dotenv.get_dotenv_value(f"{service.upper()}_API_TOKEN") # Added for CHUTES_API_TOKEN
70 or "None"
71 )
72
@@ -398,3 +400,23 @@ def get_other_chat(
400
401 def get_other_embedding(model_name: str, api_key=None, base_url=None, **kwargs):
402 return OpenAIEmbeddings(model=model_name, api_key=api_key, base_url=base_url, **kwargs) # type: ignore
403 +
404 +
405 +# Chutes models
406 +def get_chutes_chat(
407 + model_name: str,
408 + api_key=None,
409 + base_url=None,
410 + **kwargs,
411 +):
412 + if not api_key:
413 + api_key = get_api_key("chutes")
414 + if not base_url:
415 + base_url = (
416 + dotenv.get_dotenv_value("CHUTES_BASE_URL")
417 + or "https://llm.chutes.ai/v1"
418 + )
419 + return ChatOpenAI(api_key=api_key, model=model_name, base_url=base_url, **kwargs) # type: ignore
420 +
421 +
422 +
python/helpers/settings.py
+3
@@ -474,6 +474,9 @@ def convert_out(settings: Settings) -> SettingsOutput:
474 api_keys_fields.append(
475 _get_api_key_field(settings, "huggingface", "HuggingFace API Key")
476 )
477 + api_keys_fields.append( # Added Chutes API Key
478 + _get_api_key_field(settings, "chutes", "Chutes API Key")
479 + )
480
481 api_keys_section: SettingsSection = {
482 "id": "api_keys",