test_rerank.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import os
  2. import pytest
  3. from core.model_runtime.entities.rerank_entities import RerankResult
  4. from core.model_runtime.errors.validate import CredentialsValidateFailedError
  5. from core.model_runtime.model_providers.siliconflow.rerank.rerank import SiliconflowRerankModel
  6. def test_validate_credentials():
  7. model = SiliconflowRerankModel()
  8. with pytest.raises(CredentialsValidateFailedError):
  9. model.validate_credentials(
  10. model="BAAI/bge-reranker-v2-m3",
  11. credentials={
  12. "api_key": "invalid_key"
  13. },
  14. )
  15. model.validate_credentials(
  16. model="BAAI/bge-reranker-v2-m3",
  17. credentials={
  18. "api_key": os.environ.get("API_KEY"),
  19. },
  20. )
  21. def test_invoke_model():
  22. model = SiliconflowRerankModel()
  23. result = model.invoke(
  24. model='BAAI/bge-reranker-v2-m3',
  25. credentials={
  26. "api_key": os.environ.get("API_KEY"),
  27. },
  28. query="Who is Kasumi?",
  29. docs=[
  30. "Kasumi is a girl's name of Japanese origin meaning \"mist\".",
  31. "Her music is a kawaii bass, a mix of future bass, pop, and kawaii music ",
  32. "and she leads a team named PopiParty."
  33. ],
  34. score_threshold=0.8
  35. )
  36. assert isinstance(result, RerankResult)
  37. assert len(result.docs) == 1
  38. assert result.docs[0].index == 0
  39. assert result.docs[0].score >= 0.8