test_text_embedding.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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.siliconflow.text_embedding.text_embedding import (
  6. SiliconflowTextEmbeddingModel,
  7. )
  8. def test_validate_credentials():
  9. model = SiliconflowTextEmbeddingModel()
  10. with pytest.raises(CredentialsValidateFailedError):
  11. model.validate_credentials(
  12. model="BAAI/bge-large-zh-v1.5",
  13. credentials={
  14. "api_key": "invalid_key"
  15. },
  16. )
  17. model.validate_credentials(
  18. model="BAAI/bge-large-zh-v1.5",
  19. credentials={
  20. "api_key": os.environ.get("API_KEY"),
  21. },
  22. )
  23. def test_invoke_model():
  24. model = SiliconflowTextEmbeddingModel()
  25. result = model.invoke(
  26. model="BAAI/bge-large-zh-v1.5",
  27. credentials={
  28. "api_key": os.environ.get("API_KEY"),
  29. },
  30. texts=[
  31. "hello",
  32. "world",
  33. ],
  34. user="abc-123",
  35. )
  36. assert isinstance(result, TextEmbeddingResult)
  37. assert len(result.embeddings) == 2
  38. assert result.usage.total_tokens == 6
  39. def test_get_num_tokens():
  40. model = SiliconflowTextEmbeddingModel()
  41. num_tokens = model.get_num_tokens(
  42. model="BAAI/bge-large-zh-v1.5",
  43. credentials={
  44. "api_key": os.environ.get("API_KEY"),
  45. },
  46. texts=["hello", "world"],
  47. )
  48. assert num_tokens == 2