test_embeddings.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import os
  2. import pytest
  3. from core.model_runtime.entities.text_embedding_entities import TextEmbeddingResult
  4. from core.model_runtime.errors.validate import CredentialsValidateFailedError
  5. from core.model_runtime.model_providers.xinference.text_embedding.text_embedding import XinferenceTextEmbeddingModel
  6. from tests.integration_tests.model_runtime.__mock.xinference import MOCK, setup_xinference_mock
  7. @pytest.mark.parametrize("setup_xinference_mock", [["none"]], indirect=True)
  8. def test_validate_credentials(setup_xinference_mock):
  9. model = XinferenceTextEmbeddingModel()
  10. with pytest.raises(CredentialsValidateFailedError):
  11. model.validate_credentials(
  12. model="bge-base-en",
  13. credentials={
  14. "server_url": os.environ.get("XINFERENCE_SERVER_URL"),
  15. "model_uid": "www " + os.environ.get("XINFERENCE_EMBEDDINGS_MODEL_UID"),
  16. },
  17. )
  18. model.validate_credentials(
  19. model="bge-base-en",
  20. credentials={
  21. "server_url": os.environ.get("XINFERENCE_SERVER_URL"),
  22. "model_uid": os.environ.get("XINFERENCE_EMBEDDINGS_MODEL_UID"),
  23. },
  24. )
  25. @pytest.mark.parametrize("setup_xinference_mock", [["none"]], indirect=True)
  26. def test_invoke_model(setup_xinference_mock):
  27. model = XinferenceTextEmbeddingModel()
  28. result = model.invoke(
  29. model="bge-base-en",
  30. credentials={
  31. "server_url": os.environ.get("XINFERENCE_SERVER_URL"),
  32. "model_uid": os.environ.get("XINFERENCE_EMBEDDINGS_MODEL_UID"),
  33. },
  34. texts=["hello", "world"],
  35. user="abc-123",
  36. )
  37. assert isinstance(result, TextEmbeddingResult)
  38. assert len(result.embeddings) == 2
  39. assert result.usage.total_tokens > 0
  40. def test_get_num_tokens():
  41. model = XinferenceTextEmbeddingModel()
  42. num_tokens = model.get_num_tokens(
  43. model="bge-base-en",
  44. credentials={
  45. "server_url": os.environ.get("XINFERENCE_SERVER_URL"),
  46. "model_uid": os.environ.get("XINFERENCE_EMBEDDINGS_MODEL_UID"),
  47. },
  48. texts=["hello", "world"],
  49. )
  50. assert num_tokens == 2