added API compliance to the provider

This commit is contained in:
2025-10-06 22:50:05 +03:00
parent c2019b57a7
commit bac78a9cee
3 changed files with 11 additions and 6 deletions

2
app.py
View File

@@ -129,7 +129,7 @@ def main():
llmProvider.change( llmProvider.change(
gh.update_model_dropdown, gh.update_model_dropdown,
inputs=llmProvider, inputs=llmProvider,
outputs=llmModel outputs=[llmModel, apiKey]
) )
refineTextBtn.click( refineTextBtn.click(
gh.generateByCondition, gh.generateByCondition,

View File

@@ -8,7 +8,10 @@ DEVICES = ['cpu', 'cuda']
COMPUTE_TYPE = ['auto', 'int8', 'float16', 'float32'] COMPUTE_TYPE = ['auto', 'int8', 'float16', 'float32']
# Стандартный API ключ # Стандартный 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'] LLM_PROVIDERS = ['io.net', 'Gemini', 'gpt4free']

View File

@@ -1,6 +1,6 @@
from config import LLM_MODELS # Импортируем словарь моделей from config import LLM_MODELS # Импортируем словарь моделей
import gradio as gr import gradio as gr
from config import GEMINI_API_KEY, IO_API_KEY
class GradioHandlers: class GradioHandlers:
def __init__(self, llm_factory, ConvertMdToPdf, FileHandlers, FasterWhisper, GlueAudio): def __init__(self, llm_factory, ConvertMdToPdf, FileHandlers, FasterWhisper, GlueAudio):
@@ -24,8 +24,8 @@ class GradioHandlers:
provider = self.llm_factory(llm_provider, api_key) provider = self.llm_factory(llm_provider, api_key)
except ValueError as e: except ValueError as e:
# Если API ключ не предоставлен для нужного провайдера, выводим ошибку # Если API ключ не предоставлен для нужного провайдера, выводим ошибку
self.gr.Warning(str(e)) gr.Warning(str(e))
return self.gr.skip(), self.gr.skip() return gr.skip(), gr.skip()
def process(): def process():
result, md = provider.generate(llm_model, system_prompt, recognized_text, llm_temperature) 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 default_value = models[0] if models else None
# Возвращаем обновленный компонент. Используем 'gr' напрямую. # Возвращаем обновленный компонент. Используем '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): def updateButton(self, isChecked):