test_rerank.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import os
  2. import dashscope
  3. import pytest
  4. from core.model_runtime.entities.rerank_entities import RerankResult
  5. from core.model_runtime.errors.validate import CredentialsValidateFailedError
  6. from core.model_runtime.model_providers.tongyi.rerank.rerank import GTERerankModel
  7. def test_validate_credentials():
  8. model = GTERerankModel()
  9. with pytest.raises(CredentialsValidateFailedError):
  10. model.validate_credentials(model="get-rank", credentials={"dashscope_api_key": "invalid_key"})
  11. model.validate_credentials(
  12. model="get-rank", credentials={"dashscope_api_key": os.environ.get("TONGYI_DASHSCOPE_API_KEY")}
  13. )
  14. def test_invoke_model():
  15. model = GTERerankModel()
  16. result = model.invoke(
  17. model=dashscope.TextReRank.Models.gte_rerank,
  18. credentials={"dashscope_api_key": os.environ.get("TONGYI_DASHSCOPE_API_KEY")},
  19. query="什么是文本排序模型",
  20. docs=[
  21. "文本排序模型广泛用于搜索引擎和推荐系统中,它们根据文本相关性对候选文本进行排序",
  22. "量子计算是计算科学的一个前沿领域",
  23. "预训练语言模型的发展给文本排序模型带来了新的进展",
  24. ],
  25. score_threshold=0.7,
  26. )
  27. assert isinstance(result, RerankResult)
  28. assert len(result.docs) == 1
  29. assert result.docs[0].index == 0
  30. assert result.docs[0].score >= 0.7