test_text_embedding.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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.cohere.text_embedding.text_embedding import CohereTextEmbeddingModel
  6. def test_validate_credentials():
  7. model = CohereTextEmbeddingModel()
  8. with pytest.raises(CredentialsValidateFailedError):
  9. model.validate_credentials(
  10. model='embed-multilingual-v3.0',
  11. credentials={
  12. 'api_key': 'invalid_key'
  13. }
  14. )
  15. model.validate_credentials(
  16. model='embed-multilingual-v3.0',
  17. credentials={
  18. 'api_key': os.environ.get('COHERE_API_KEY')
  19. }
  20. )
  21. def test_invoke_model():
  22. model = CohereTextEmbeddingModel()
  23. result = model.invoke(
  24. model='embed-multilingual-v3.0',
  25. credentials={
  26. 'api_key': os.environ.get('COHERE_API_KEY')
  27. },
  28. texts=[
  29. "hello",
  30. "world",
  31. " ".join(["long_text"] * 100),
  32. " ".join(["another_long_text"] * 100)
  33. ],
  34. user="abc-123"
  35. )
  36. assert isinstance(result, TextEmbeddingResult)
  37. assert len(result.embeddings) == 4
  38. assert result.usage.total_tokens == 811
  39. def test_get_num_tokens():
  40. model = CohereTextEmbeddingModel()
  41. num_tokens = model.get_num_tokens(
  42. model='embed-multilingual-v3.0',
  43. credentials={
  44. 'api_key': os.environ.get('COHERE_API_KEY')
  45. },
  46. texts=[
  47. "hello",
  48. "world"
  49. ]
  50. )
  51. assert num_tokens == 3