From bac78a9cee524c74e4cc0a9348eb47e335e3541e Mon Sep 17 00:00:00 2001 From: Voksik Date: Mon, 6 Oct 2025 22:50:05 +0300 Subject: [PATCH] added API compliance to the provider --- app.py | 2 +- config.py | 5 ++++- handlers/gradioHandler.py | 10 ++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app.py b/app.py index 656f3ee..d4a29e2 100644 --- a/app.py +++ b/app.py @@ -129,7 +129,7 @@ def main(): llmProvider.change( gh.update_model_dropdown, inputs=llmProvider, - outputs=llmModel + outputs=[llmModel, apiKey] ) refineTextBtn.click( gh.generateByCondition, diff --git a/config.py b/config.py index f97901c..b710fc6 100644 --- a/config.py +++ b/config.py @@ -8,7 +8,10 @@ DEVICES = ['cpu', 'cuda'] COMPUTE_TYPE = ['auto', 'int8', 'float16', 'float32'] # Стандартный API ключ -DEFAULT_API_KEY=os.getenv('API_KEY') +IO_API_KEY=os.getenv('IO_API_KEY') +GEMINI_API_KEY=os.getenv('GEMINI_API_KEY') +DEFAULT_API_KEY=IO_API_KEY + # Словарь провайдеров и их моделей LLM_PROVIDERS = ['io.net', 'Gemini', 'gpt4free'] diff --git a/handlers/gradioHandler.py b/handlers/gradioHandler.py index 14f6c45..aa5120c 100644 --- a/handlers/gradioHandler.py +++ b/handlers/gradioHandler.py @@ -1,6 +1,6 @@ from config import LLM_MODELS # Импортируем словарь моделей import gradio as gr - +from config import GEMINI_API_KEY, IO_API_KEY class GradioHandlers: def __init__(self, llm_factory, ConvertMdToPdf, FileHandlers, FasterWhisper, GlueAudio): @@ -24,8 +24,8 @@ class GradioHandlers: provider = self.llm_factory(llm_provider, api_key) except ValueError as e: # Если API ключ не предоставлен для нужного провайдера, выводим ошибку - self.gr.Warning(str(e)) - return self.gr.skip(), self.gr.skip() + gr.Warning(str(e)) + return gr.skip(), gr.skip() def process(): result, md = provider.generate(llm_model, system_prompt, recognized_text, llm_temperature) @@ -53,7 +53,9 @@ class GradioHandlers: default_value = models[0] if models else None # Возвращаем обновленный компонент. Используем 'gr' напрямую. - return gr.update(choices=models, value=default_value) + if provider == 'io.net': return gr.update(choices=models, value=default_value), gr.update(label='API key (required for io.net, Gemini)', value=IO_API_KEY, interactive=True) + if provider == 'Gemini': return gr.update(choices=models, value=default_value), gr.update(label='API key (required for Oio.net, Gemini)', value=GEMINI_API_KEY, interactive=True) + if provider == 'gpt4free': return gr.update(choices=models, value=default_value), gr.update(label='API key (required for Oio.net, Gemini)', value="", interactive=True) # Функция для динамического обновления кнопки def updateButton(self, isChecked):