Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

togetherai.test.ts 2.8 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  1. import {
  2. OpenAiChatCompletionProvider,
  3. OpenAiCompletionProvider,
  4. OpenAiEmbeddingProvider,
  5. } from '../../src/providers/openai';
  6. import { createTogetherAiProvider } from '../../src/providers/togetherai';
  7. import type { ProviderOptions, EnvOverrides } from '../../src/types';
  8. jest.mock('../../src/providers/openai');
  9. describe('createTogetherAiProvider', () => {
  10. beforeEach(() => {
  11. jest.clearAllMocks();
  12. });
  13. it('should create a chat completion provider when type is chat', () => {
  14. const provider = createTogetherAiProvider('togetherai:chat:model-name');
  15. expect(provider).toBeInstanceOf(OpenAiChatCompletionProvider);
  16. expect(OpenAiChatCompletionProvider).toHaveBeenCalledWith('model-name', expect.any(Object));
  17. });
  18. it('should create a completion provider when type is completion', () => {
  19. const provider = createTogetherAiProvider('togetherai:completion:model-name');
  20. expect(provider).toBeInstanceOf(OpenAiCompletionProvider);
  21. expect(OpenAiCompletionProvider).toHaveBeenCalledWith('model-name', expect.any(Object));
  22. });
  23. it('should create an embedding provider when type is embedding', () => {
  24. const provider = createTogetherAiProvider('togetherai:embedding:model-name');
  25. expect(provider).toBeInstanceOf(OpenAiEmbeddingProvider);
  26. expect(OpenAiEmbeddingProvider).toHaveBeenCalledWith('model-name', expect.any(Object));
  27. });
  28. it('should create an embedding provider when type is embeddings', () => {
  29. const provider = createTogetherAiProvider('togetherai:embeddings:model-name');
  30. expect(provider).toBeInstanceOf(OpenAiEmbeddingProvider);
  31. expect(OpenAiEmbeddingProvider).toHaveBeenCalledWith('model-name', expect.any(Object));
  32. });
  33. it('should default to chat completion provider when no type is specified', () => {
  34. const provider = createTogetherAiProvider('togetherai:model-name');
  35. expect(provider).toBeInstanceOf(OpenAiChatCompletionProvider);
  36. expect(OpenAiChatCompletionProvider).toHaveBeenCalledWith('model-name', expect.any(Object));
  37. });
  38. it('should pass correct configuration to the provider', () => {
  39. const options: {
  40. config?: ProviderOptions;
  41. id?: string;
  42. env?: EnvOverrides;
  43. } = {
  44. id: 'custom-id',
  45. };
  46. createTogetherAiProvider('togetherai:chat:model-name', options);
  47. expect(OpenAiChatCompletionProvider).toHaveBeenCalledWith(
  48. 'model-name',
  49. expect.objectContaining({
  50. config: {
  51. apiBaseUrl: 'https://api.together.xyz/v1',
  52. apiKeyEnvar: 'TOGETHER_API_KEY',
  53. },
  54. id: 'custom-id',
  55. }),
  56. );
  57. });
  58. it('should handle model names with colons', () => {
  59. createTogetherAiProvider('togetherai:chat:org:model:name');
  60. expect(OpenAiChatCompletionProvider).toHaveBeenCalledWith('org:model:name', expect.any(Object));
  61. });
  62. });
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...