Underground-Digital/Workflow-Engine
0
1import os2 3import pytest4 5from core.model_runtime.entities.rerank_entities import RerankResult6from core.model_runtime.errors.validate import CredentialsValidateFailedError7from core.model_runtime.model_providers.xinference.rerank.rerank import XinferenceRerankModel8from tests.integration_tests.model_runtime.__mock.xinference import MOCK, setup_xinference_mock9 10 11@pytest.mark.parametrize("setup_xinference_mock", [["none"]], indirect=True)12def test_validate_credentials(setup_xinference_mock):13 model = XinferenceRerankModel()14 15 with pytest.raises(CredentialsValidateFailedError):16 model.validate_credentials(17 model="bge-reranker-base",18 credentials={"server_url": "awdawdaw", "model_uid": os.environ.get("XINFERENCE_RERANK_MODEL_UID")},19 )20 21 model.validate_credentials(22 model="bge-reranker-base",23 credentials={24 "server_url": os.environ.get("XINFERENCE_SERVER_URL"),25 "model_uid": os.environ.get("XINFERENCE_RERANK_MODEL_UID"),26 },27 )28 29 30@pytest.mark.parametrize("setup_xinference_mock", [["none"]], indirect=True)31def test_invoke_model(setup_xinference_mock):32 model = XinferenceRerankModel()33 34 result = model.invoke(35 model="bge-reranker-base",36 credentials={37 "server_url": os.environ.get("XINFERENCE_SERVER_URL"),38 "model_uid": os.environ.get("XINFERENCE_RERANK_MODEL_UID"),39 },40 query="Who is Kasumi?",41 docs=[42 'Kasumi is a girl\'s name of Japanese origin meaning "mist".',43 "Her music is a kawaii bass, a mix of future bass, pop, and kawaii music ",44 "and she leads a team named PopiParty.",45 ],46 score_threshold=0.8,47 )48 49 assert isinstance(result, RerankResult)50 assert len(result.docs) == 151 assert result.docs[0].index == 052 assert result.docs[0].score >= 0.853 