test_text_embedding.py 1.5 KB

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