test_speech2text.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import os
  2. import pytest
  3. from core.model_runtime.errors.validate import CredentialsValidateFailedError
  4. from core.model_runtime.model_providers.openai.speech2text.speech2text import OpenAISpeech2TextModel
  5. from tests.integration_tests.model_runtime.__mock.openai import setup_openai_mock
  6. @pytest.mark.parametrize("setup_openai_mock", [["speech2text"]], indirect=True)
  7. def test_validate_credentials(setup_openai_mock):
  8. model = OpenAISpeech2TextModel()
  9. with pytest.raises(CredentialsValidateFailedError):
  10. model.validate_credentials(model="whisper-1", credentials={"openai_api_key": "invalid_key"})
  11. model.validate_credentials(model="whisper-1", credentials={"openai_api_key": os.environ.get("OPENAI_API_KEY")})
  12. @pytest.mark.parametrize("setup_openai_mock", [["speech2text"]], indirect=True)
  13. def test_invoke_model(setup_openai_mock):
  14. model = OpenAISpeech2TextModel()
  15. # Get the directory of the current file
  16. current_dir = os.path.dirname(os.path.abspath(__file__))
  17. # Get assets directory
  18. assets_dir = os.path.join(os.path.dirname(current_dir), "assets")
  19. # Construct the path to the audio file
  20. audio_file_path = os.path.join(assets_dir, "audio.mp3")
  21. # Open the file and get the file object
  22. with open(audio_file_path, "rb") as audio_file:
  23. file = audio_file
  24. result = model.invoke(
  25. model="whisper-1",
  26. credentials={"openai_api_key": os.environ.get("OPENAI_API_KEY")},
  27. file=file,
  28. user="abc-123",
  29. )
  30. assert isinstance(result, str)
  31. assert result == "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"