|
import os
|
|
|
|
import pytest
|
|
|
|
from core.model_runtime.errors.validate import CredentialsValidateFailedError
|
|
from core.model_runtime.model_providers.openai.moderation.moderation import OpenAIModerationModel
|
|
from tests.integration_tests.model_runtime.__mock.openai import setup_openai_mock
|
|
|
|
|
|
@pytest.mark.parametrize('setup_openai_mock', [['moderation']], indirect=True)
|
|
def test_validate_credentials(setup_openai_mock):
|
|
model = OpenAIModerationModel()
|
|
|
|
with pytest.raises(CredentialsValidateFailedError):
|
|
model.validate_credentials(
|
|
model='text-moderation-stable',
|
|
credentials={
|
|
'openai_api_key': 'invalid_key'
|
|
}
|
|
)
|
|
|
|
model.validate_credentials(
|
|
model='text-moderation-stable',
|
|
credentials={
|
|
'openai_api_key': os.environ.get('OPENAI_API_KEY')
|
|
}
|
|
)
|
|
|
|
@pytest.mark.parametrize('setup_openai_mock', [['moderation']], indirect=True)
|
|
def test_invoke_model(setup_openai_mock):
|
|
model = OpenAIModerationModel()
|
|
|
|
result = model.invoke(
|
|
model='text-moderation-stable',
|
|
credentials={
|
|
'openai_api_key': os.environ.get('OPENAI_API_KEY')
|
|
},
|
|
text="hello",
|
|
user="abc-123"
|
|
)
|
|
|
|
assert isinstance(result, bool)
|
|
assert result is False
|
|
|
|
result = model.invoke(
|
|
model='text-moderation-stable',
|
|
credentials={
|
|
'openai_api_key': os.environ.get('OPENAI_API_KEY')
|
|
},
|
|
text="i will kill you",
|
|
user="abc-123"
|
|
)
|
|
|
|
assert isinstance(result, bool)
|
|
assert result is True
|
|
|