extractModelAndProvider.test.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { describe, it, expect } from "vitest";
  2. import { extractModelAndProvider } from "../../src/utils/extractModelAndProvider";
  3. describe("extractModelAndProvider", () => {
  4. it("should work", () => {
  5. expect(extractModelAndProvider("azure/ada")).toEqual({
  6. provider: "azure",
  7. model: "ada",
  8. separator: "/",
  9. });
  10. expect(
  11. extractModelAndProvider("azure/standard/1024-x-1024/dall-e-2"),
  12. ).toEqual({
  13. provider: "azure",
  14. model: "standard/1024-x-1024/dall-e-2",
  15. separator: "/",
  16. });
  17. expect(extractModelAndProvider("vertex_ai_beta/chat-bison")).toEqual({
  18. provider: "vertex_ai_beta",
  19. model: "chat-bison",
  20. separator: "/",
  21. });
  22. expect(extractModelAndProvider("cohere.command-r-v1:0")).toEqual({
  23. provider: "cohere",
  24. model: "command-r-v1:0",
  25. separator: ".",
  26. });
  27. expect(
  28. extractModelAndProvider(
  29. "cloudflare/@cf/mistral/mistral-7b-instruct-v0.1",
  30. ),
  31. ).toEqual({
  32. provider: "cloudflare",
  33. model: "@cf/mistral/mistral-7b-instruct-v0.1",
  34. separator: "/",
  35. });
  36. expect(extractModelAndProvider("together-ai-21.1b-41b")).toEqual({
  37. provider: "",
  38. model: "together-ai-21.1b-41b",
  39. separator: "",
  40. });
  41. });
  42. it("should add provider for popular models", () => {
  43. expect(extractModelAndProvider("gpt-4o-mini")).toEqual({
  44. provider: "openai",
  45. model: "gpt-4o-mini",
  46. separator: "/",
  47. });
  48. expect(extractModelAndProvider("gpt-4o")).toEqual({
  49. provider: "openai",
  50. model: "gpt-4o",
  51. separator: "/",
  52. });
  53. expect(extractModelAndProvider("claude-3-5-sonnet-20241022")).toEqual({
  54. provider: "anthropic",
  55. model: "claude-3-5-sonnet-20241022",
  56. separator: "/",
  57. });
  58. expect(extractModelAndProvider("claude-3-haiku-20240307")).toEqual({
  59. provider: "anthropic",
  60. model: "claude-3-haiku-20240307",
  61. separator: "/",
  62. });
  63. expect(extractModelAndProvider("claude-2.1")).toEqual({
  64. provider: "anthropic",
  65. model: "claude-2.1",
  66. separator: "/",
  67. });
  68. });
  69. });