test_text_embedding.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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.baichuan.text_embedding.text_embedding import BaichuanTextEmbeddingModel
  6. def test_validate_credentials():
  7. model = BaichuanTextEmbeddingModel()
  8. with pytest.raises(CredentialsValidateFailedError):
  9. model.validate_credentials(
  10. model='baichuan-text-embedding',
  11. credentials={
  12. 'api_key': 'invalid_key'
  13. }
  14. )
  15. model.validate_credentials(
  16. model='baichuan-text-embedding',
  17. credentials={
  18. 'api_key': os.environ.get('BAICHUAN_API_KEY')
  19. }
  20. )
  21. def test_invoke_model():
  22. model = BaichuanTextEmbeddingModel()
  23. result = model.invoke(
  24. model='baichuan-text-embedding',
  25. credentials={
  26. 'api_key': os.environ.get('BAICHUAN_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 = BaichuanTextEmbeddingModel()
  39. num_tokens = model.get_num_tokens(
  40. model='baichuan-text-embedding',
  41. credentials={
  42. 'api_key': os.environ.get('BAICHUAN_API_KEY'),
  43. },
  44. texts=[
  45. "hello",
  46. "world"
  47. ]
  48. )
  49. assert num_tokens == 2
  50. def test_max_chunks():
  51. model = BaichuanTextEmbeddingModel()
  52. result = model.invoke(
  53. model='baichuan-text-embedding',
  54. credentials={
  55. 'api_key': os.environ.get('BAICHUAN_API_KEY'),
  56. },
  57. texts=[
  58. "hello",
  59. "world",
  60. "hello",
  61. "world",
  62. "hello",
  63. "world",
  64. "hello",
  65. "world",
  66. "hello",
  67. "world",
  68. "hello",
  69. "world",
  70. "hello",
  71. "world",
  72. "hello",
  73. "world",
  74. "hello",
  75. "world",
  76. "hello",
  77. "world",
  78. "hello",
  79. "world",
  80. ]
  81. )
  82. assert isinstance(result, TextEmbeddingResult)
  83. assert len(result.embeddings) == 22