From d139acf06ec8ffa45f728d97c5df6c8b628a62f7 Mon Sep 17 00:00:00 2001 From: PepeDiedrich Date: Mon, 19 May 2025 14:34:52 +0200 Subject: [PATCH] chutes llm provider (#390) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chutes llm provider * Entferne Platzhalter für Chutes-Embedding-Funktion --- models.py | 22 ++++++++++++++++++++++ python/helpers/settings.py | 3 +++ 2 files changed, 25 insertions(+) diff --git a/models.py b/models.py index 913a89d65..4be6c097a 100644 --- a/models.py +++ b/models.py @@ -54,6 +54,7 @@ class ModelProvider(Enum): OPENAI_AZURE = "OpenAI Azure" OPENROUTER = "OpenRouter" SAMBANOVA = "Sambanova" + CHUTES = "Chutes" # Added Chutes OTHER = "Other" @@ -65,6 +66,7 @@ def get_api_key(service): return ( dotenv.get_dotenv_value(f"API_KEY_{service.upper()}") or dotenv.get_dotenv_value(f"{service.upper()}_API_KEY") + or dotenv.get_dotenv_value(f"{service.upper()}_API_TOKEN") # Added for CHUTES_API_TOKEN or "None" ) @@ -398,3 +400,23 @@ def get_other_chat( def get_other_embedding(model_name: str, api_key=None, base_url=None, **kwargs): return OpenAIEmbeddings(model=model_name, api_key=api_key, base_url=base_url, **kwargs) # type: ignore + + +# Chutes models +def get_chutes_chat( + model_name: str, + api_key=None, + base_url=None, + **kwargs, +): + if not api_key: + api_key = get_api_key("chutes") + if not base_url: + base_url = ( + dotenv.get_dotenv_value("CHUTES_BASE_URL") + or "https://llm.chutes.ai/v1" + ) + return ChatOpenAI(api_key=api_key, model=model_name, base_url=base_url, **kwargs) # type: ignore + + + diff --git a/python/helpers/settings.py b/python/helpers/settings.py index f07afc880..4af8b3d42 100644 --- a/python/helpers/settings.py +++ b/python/helpers/settings.py @@ -474,6 +474,9 @@ def convert_out(settings: Settings) -> SettingsOutput: api_keys_fields.append( _get_api_key_field(settings, "huggingface", "HuggingFace API Key") ) + api_keys_fields.append( # Added Chutes API Key + _get_api_key_field(settings, "chutes", "Chutes API Key") + ) api_keys_section: SettingsSection = { "id": "api_keys",