diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f04cb80..7df91c24 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: uses: actions/cache@v4 with: path: .venv - key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}-2 + key: venv-${{ runner.os }}-${{ runner.architecture }}-${{ hashFiles('**/poetry.lock') }} - name: Load cached Whisper models id: cached-whisper-models @@ -117,7 +117,7 @@ jobs: uses: actions/cache@v4 with: path: .venv - key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}-2 + key: venv-${{ runner.os }}-${{ runner.architecture }}-${{ hashFiles('**/poetry.lock') }} - uses: FedericoCarboni/setup-ffmpeg@v3.1 id: setup-ffmpeg diff --git a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po index bc9bf0e9..4494200a 100644 --- a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po +++ b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-15 17:36+0300\n" -"PO-Revision-Date: 2024-06-15 17:37+0300\n" +"POT-Creation-Date: 2024-06-18 21:50+0300\n" +"PO-Revision-Date: 2024-06-18 21:39+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: lv_LV\n" @@ -42,42 +42,42 @@ msgstr "Jūsu ievadītā URL adrese nav derīga." msgid "Reset to Defaults" msgstr "Atjaunot noklusētos" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 msgid "Test" msgstr "Pārbaudīt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:50 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:51 msgid "OpenAI API key" msgstr "OpenAI API atslēga" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:63 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:64 msgid "OpenAI base url" msgstr "OpenAI adrese" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:72 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 msgid "Default export file name" msgstr "Eksporta fails" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:78 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:79 msgid "Enable live recording transcription export" msgstr "Eksportēt dzīvā ieraksta transkriptus" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:85 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Izvēlēties" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:103 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:104 msgid "Export folder" msgstr "Eksportēt mapē" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:128 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:134 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:129 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "OpenAI API Key Test" msgstr "OpenAI API atslēgas pārbaude" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:129 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:130 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations with ChatGPT." @@ -85,10 +85,14 @@ msgstr "" "Jūsu API atslēga ir derīga. Buzz izmantos to runas atpazīšanai ar Whisper " "API un tulkošanai ar ChatGPT." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:156 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "Select Export Folder" msgstr "Izvēlieties mapi kurā eksportēt" +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:189 +msgid "OpenAI API returned invalid response, status code: " +msgstr "OpenAI API atbildēja ar nederīgu atbildi, statusa kods: " + #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:42 msgid "Enable folder watch" msgstr "Ieslēgt mapes vērošanu" @@ -324,27 +328,27 @@ msgstr "Pievienots" msgid "Date Completed" msgstr "Pabeigts" -#: buzz/widgets/recording_transcriber_widget.py:66 +#: buzz/widgets/recording_transcriber_widget.py:71 msgid "Live Recording" msgstr "Dzīvā ierakstīšana" -#: buzz/widgets/recording_transcriber_widget.py:125 +#: buzz/widgets/recording_transcriber_widget.py:130 msgid "Click Record to begin..." msgstr "Klikšķiniet Ierakstīt, lai sāktu..." -#: buzz/widgets/recording_transcriber_widget.py:128 +#: buzz/widgets/recording_transcriber_widget.py:133 msgid "Waiting for AI translation..." msgstr "Gaida MI tulkojumu..." -#: buzz/widgets/recording_transcriber_widget.py:140 +#: buzz/widgets/recording_transcriber_widget.py:145 msgid "Microphone:" msgstr "Mikrofons:" -#: buzz/widgets/recording_transcriber_widget.py:391 +#: buzz/widgets/recording_transcriber_widget.py:397 msgid "An error occurred while starting a new recording:" msgstr "Sākot jaunu ierakstu notikusi kļūda:" -#: buzz/widgets/recording_transcriber_widget.py:395 +#: buzz/widgets/recording_transcriber_widget.py:401 msgid "" "Please check your audio devices or check the application logs for more " "information." diff --git a/buzz/widgets/preferences_dialog/general_preferences_widget.py b/buzz/widgets/preferences_dialog/general_preferences_widget.py index 7296a568..b738ad82 100644 --- a/buzz/widgets/preferences_dialog/general_preferences_widget.py +++ b/buzz/widgets/preferences_dialog/general_preferences_widget.py @@ -1,4 +1,5 @@ import logging +import requests from typing import Optional from platformdirs import user_documents_dir @@ -175,8 +176,28 @@ class TestOpenAIApiKeyJob(QRunnable): self.signals = self.Signals() def run(self): + settings = Settings() + custom_openai_base_url = settings.value( + key=Settings.Key.CUSTOM_OPENAI_BASE_URL, default_value="" + ) + + if custom_openai_base_url: + try: + response = requests.get(custom_openai_base_url) + if response.status_code != 200: + self.signals.failed.emit( + _("OpenAI API returned invalid response, status code: ") + str(response.status_code) + ) + return + except requests.exceptions.RequestException as exc: + self.signals.failed.emit(str(exc)) + return + try: - client = OpenAI(api_key=self.api_key) + client = OpenAI( + api_key=self.api_key, + base_url=custom_openai_base_url if custom_openai_base_url else None + ) client.models.list() self.signals.success.emit() except AuthenticationError as exc: