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",