mirror of
https://github.com/chidiwilliams/buzz.git
synced 2024-06-29 13:10:26 +02:00
Adding setting for custom OpenAI base url (#785)
This commit is contained in:
parent
8fbaf013b9
commit
401665b184
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-06-07 08:32+0300\n"
|
||||
"PO-Revision-Date: 2024-06-07 08:34+0300\n"
|
||||
"POT-Creation-Date: 2024-06-07 21:05+0300\n"
|
||||
"PO-Revision-Date: 2024-06-07 21:06+0300\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: lv_LV\n"
|
||||
|
@ -124,23 +124,23 @@ msgstr "Adrese nav derīga"
|
|||
msgid "The URL you entered is invalid."
|
||||
msgstr "Jūsu ievadītā URL adrese nav derīga."
|
||||
|
||||
#: buzz/widgets/recording_transcriber_widget.py:61
|
||||
#: buzz/widgets/recording_transcriber_widget.py:63
|
||||
msgid "Live Recording"
|
||||
msgstr "Dzīvā ierakstīšana"
|
||||
|
||||
#: buzz/widgets/recording_transcriber_widget.py:110
|
||||
#: buzz/widgets/recording_transcriber_widget.py:112
|
||||
msgid "Click Record to begin..."
|
||||
msgstr "Klikšķiniet Ierakstīt, lai sāktu..."
|
||||
|
||||
#: buzz/widgets/recording_transcriber_widget.py:122
|
||||
#: buzz/widgets/recording_transcriber_widget.py:124
|
||||
msgid "Microphone:"
|
||||
msgstr "Mikrofons:"
|
||||
|
||||
#: buzz/widgets/recording_transcriber_widget.py:290
|
||||
#: buzz/widgets/recording_transcriber_widget.py:319
|
||||
msgid "An error occurred while starting a new recording:"
|
||||
msgstr "Sākot jaunu ierakstu notikusi kļūda:"
|
||||
|
||||
#: buzz/widgets/recording_transcriber_widget.py:294
|
||||
#: buzz/widgets/recording_transcriber_widget.py:323
|
||||
msgid ""
|
||||
"Please check your audio devices or check the application logs for more "
|
||||
"information."
|
||||
|
@ -285,7 +285,7 @@ msgstr "Ieslēgt mapes vērošanu"
|
|||
|
||||
#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47
|
||||
#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:72
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84
|
||||
msgid "Browse"
|
||||
msgstr "Izvēlēties"
|
||||
|
||||
|
@ -305,32 +305,36 @@ msgstr "Izvēlieties vērojamo mapi"
|
|||
msgid "Select Output Folder"
|
||||
msgstr "Izvēlieties rezultātu mapi"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44
|
||||
msgid "Test"
|
||||
msgstr "Pārbaudīt"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:50
|
||||
msgid "OpenAI API key"
|
||||
msgstr "OpenAI API atslēga"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:63
|
||||
msgid "OpenAI base url"
|
||||
msgstr "OpenAI adrese"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:72
|
||||
msgid "Default export file name"
|
||||
msgstr "Eksporta fails"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:66
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:78
|
||||
msgid "Enable live recording transcription export"
|
||||
msgstr "Eksportēt dzīvā ieraksta transkriptus"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:91
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:103
|
||||
msgid "Export folder"
|
||||
msgstr "Eksportēt mapē"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:116
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:122
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:128
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:134
|
||||
msgid "OpenAI API Key Test"
|
||||
msgstr "OpenAI API atslēgas pārbaude"
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:117
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:129
|
||||
msgid ""
|
||||
"Your API key is valid. Buzz will use this key to perform Whisper API "
|
||||
"transcriptions."
|
||||
|
@ -338,7 +342,7 @@ msgstr ""
|
|||
"Jūsu API atslēga ir derīga. Buzz izmantos to runas atpazīšanai ar Whisper "
|
||||
"API."
|
||||
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141
|
||||
#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157
|
||||
msgid "Select Export Folder"
|
||||
msgstr "Izvēlieties mapi kurā eksportēt"
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ class Settings:
|
|||
FILE_TRANSCRIBER_EXPORT_FORMATS = "file-transcriber/export-formats"
|
||||
|
||||
DEFAULT_EXPORT_FILE_NAME = "transcriber/default-export-file-name"
|
||||
CUSTOM_OPENAI_BASE_URL = "transcriber/custom-openai-base-url"
|
||||
|
||||
SHORTCUTS = "shortcuts"
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ from typing import Optional, List
|
|||
from PyQt6.QtCore import QObject
|
||||
from openai import OpenAI
|
||||
|
||||
from buzz.settings.settings import Settings
|
||||
from buzz.transcriber.file_transcriber import FileTranscriber
|
||||
from buzz.transcriber.transcriber import FileTranscriptionTask, Segment, Task
|
||||
|
||||
|
@ -15,9 +16,14 @@ from buzz.transcriber.transcriber import FileTranscriptionTask, Segment, Task
|
|||
class OpenAIWhisperAPIFileTranscriber(FileTranscriber):
|
||||
def __init__(self, task: FileTranscriptionTask, parent: Optional["QObject"] = None):
|
||||
super().__init__(task=task, parent=parent)
|
||||
settings = Settings()
|
||||
custom_openai_base_url = settings.value(
|
||||
key=Settings.Key.CUSTOM_OPENAI_BASE_URL, default_value=""
|
||||
)
|
||||
self.task = task.transcription_options.task
|
||||
self.openai_client = OpenAI(
|
||||
api_key=self.transcription_task.transcription_options.openai_access_token
|
||||
api_key=self.transcription_task.transcription_options.openai_access_token,
|
||||
base_url=custom_openai_base_url if custom_openai_base_url else None
|
||||
)
|
||||
|
||||
def transcribe(self) -> List[Segment]:
|
||||
|
|
|
@ -30,6 +30,8 @@ class GeneralPreferencesWidget(QWidget):
|
|||
):
|
||||
super().__init__(parent)
|
||||
|
||||
self.settings = Settings()
|
||||
|
||||
self.openai_api_key = get_password(Key.OPENAI_API_KEY)
|
||||
|
||||
layout = QFormLayout(self)
|
||||
|
@ -48,7 +50,17 @@ class GeneralPreferencesWidget(QWidget):
|
|||
layout.addRow(_("OpenAI API key"), self.openai_api_key_line_edit)
|
||||
layout.addRow("", self.test_openai_api_key_button)
|
||||
|
||||
self.settings = Settings()
|
||||
self.custom_openai_base_url = self.settings.value(
|
||||
key=Settings.Key.CUSTOM_OPENAI_BASE_URL, default_value=""
|
||||
)
|
||||
|
||||
self.custom_openai_base_url_line_edit = LineEdit(self.custom_openai_base_url, self)
|
||||
self.custom_openai_base_url_line_edit.textChanged.connect(
|
||||
self.on_custom_openai_base_url_changed
|
||||
)
|
||||
self.custom_openai_base_url_line_edit.setMinimumWidth(200)
|
||||
self.custom_openai_base_url_line_edit.setPlaceholderText("https://api.openai.com/v1")
|
||||
layout.addRow(_("OpenAI base url"), self.custom_openai_base_url_line_edit)
|
||||
|
||||
default_export_file_name = self.settings.get_default_export_file_template()
|
||||
|
||||
|
@ -126,6 +138,9 @@ class GeneralPreferencesWidget(QWidget):
|
|||
self.update_test_openai_api_key_button()
|
||||
self.openai_api_key_changed.emit(key)
|
||||
|
||||
def on_custom_openai_base_url_changed(self, text: str):
|
||||
self.settings.set_value(Settings.Key.CUSTOM_OPENAI_BASE_URL, text)
|
||||
|
||||
def on_recording_export_enable_changed(self, state: int):
|
||||
self.recording_export_enabled = state == 2
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ from PyQt6.QtCore import Qt
|
|||
from PyQt6.QtWidgets import QPushButton, QMessageBox, QLineEdit, QCheckBox
|
||||
|
||||
from buzz.locale import _
|
||||
from buzz.settings.settings import Settings
|
||||
from buzz.widgets.preferences_dialog.general_preferences_widget import (
|
||||
GeneralPreferencesWidget,
|
||||
)
|
||||
|
@ -86,3 +87,24 @@ class TestGeneralPreferencesWidget:
|
|||
assert widget.settings.value(
|
||||
key=widget.settings.Key.RECORDING_TRANSCRIBER_EXPORT_FOLDER,
|
||||
default_value='/home/user/documents') == '/path/to/export/folder'
|
||||
|
||||
def test_openai_base_url_preferences(self, qtbot, mocker):
|
||||
widget = GeneralPreferencesWidget()
|
||||
qtbot.add_widget(widget)
|
||||
|
||||
settings = Settings()
|
||||
|
||||
openai_base_url = settings.value(
|
||||
key=Settings.Key.CUSTOM_OPENAI_BASE_URL, default_value=""
|
||||
)
|
||||
|
||||
assert openai_base_url == ""
|
||||
assert widget.custom_openai_base_url_line_edit.text() == ""
|
||||
|
||||
widget.custom_openai_base_url_line_edit.setText("https://localhost:8000/v1")
|
||||
|
||||
updated_openai_base_url = settings.value(
|
||||
key=Settings.Key.CUSTOM_OPENAI_BASE_URL, default_value=""
|
||||
)
|
||||
|
||||
assert updated_openai_base_url == "https://localhost:8000/v1"
|
||||
|
|
Loading…
Reference in a new issue