|
@@ -0,0 +1,30 @@
|
|
|
+from typing import IO, Optional
|
|
|
+
|
|
|
+from core.model_runtime.model_providers.openai_api_compatible.speech2text.speech2text import OAICompatSpeech2TextModel
|
|
|
+
|
|
|
+
|
|
|
+class GroqSpeech2TextModel(OAICompatSpeech2TextModel):
|
|
|
+ """
|
|
|
+ Model class for Groq Speech to text model.
|
|
|
+ """
|
|
|
+
|
|
|
+ def _invoke(self, model: str, credentials: dict, file: IO[bytes], user: Optional[str] = None) -> str:
|
|
|
+ """
|
|
|
+ Invoke speech2text model
|
|
|
+
|
|
|
+ :param model: model name
|
|
|
+ :param credentials: model credentials
|
|
|
+ :param file: audio file
|
|
|
+ :param user: unique user id
|
|
|
+ :return: text for given audio file
|
|
|
+ """
|
|
|
+ self._add_custom_parameters(credentials)
|
|
|
+ return super()._invoke(model, credentials, file)
|
|
|
+
|
|
|
+ def validate_credentials(self, model: str, credentials: dict) -> None:
|
|
|
+ self._add_custom_parameters(credentials)
|
|
|
+ return super().validate_credentials(model, credentials)
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def _add_custom_parameters(cls, credentials: dict) -> None:
|
|
|
+ credentials["endpoint_url"] = "https://api.groq.com/openai/v1"
|