model-available.test.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { isModelNotavailableInServer } from "../app/utils/model";
  2. describe("isModelNotavailableInServer", () => {
  3. test("test model will return false, which means the model is available", () => {
  4. const customModels = "";
  5. const modelName = "gpt-4";
  6. const providerNames = "OpenAI";
  7. const result = isModelNotavailableInServer(
  8. customModels,
  9. modelName,
  10. providerNames,
  11. );
  12. expect(result).toBe(false);
  13. });
  14. test("test model will return true when model is not available in custom models", () => {
  15. const customModels = "-all,gpt-4o-mini";
  16. const modelName = "gpt-4";
  17. const providerNames = "OpenAI";
  18. const result = isModelNotavailableInServer(
  19. customModels,
  20. modelName,
  21. providerNames,
  22. );
  23. expect(result).toBe(true);
  24. });
  25. test("should respect DISABLE_GPT4 setting", () => {
  26. process.env.DISABLE_GPT4 = "1";
  27. const result = isModelNotavailableInServer("", "gpt-4", "OpenAI");
  28. expect(result).toBe(true);
  29. });
  30. test("should handle empty provider names", () => {
  31. const result = isModelNotavailableInServer("-all,gpt-4", "gpt-4", "");
  32. expect(result).toBe(true);
  33. });
  34. test("should be case insensitive for model names", () => {
  35. const result = isModelNotavailableInServer("-all,GPT-4", "gpt-4", "OpenAI");
  36. expect(result).toBe(true);
  37. });
  38. test("support passing multiple providers, model unavailable on one of the providers will return true", () => {
  39. const customModels = "-all,gpt-4@google";
  40. const modelName = "gpt-4";
  41. const providerNames = ["OpenAI", "Azure"];
  42. const result = isModelNotavailableInServer(
  43. customModels,
  44. modelName,
  45. providerNames,
  46. );
  47. expect(result).toBe(true);
  48. });
  49. // FIXME: 这个测试用例有问题,需要修复
  50. // test("support passing multiple providers, model available on one of the providers will return false", () => {
  51. // const customModels = "-all,gpt-4@google";
  52. // const modelName = "gpt-4";
  53. // const providerNames = ["OpenAI", "Google"];
  54. // const result = isModelNotavailableInServer(
  55. // customModels,
  56. // modelName,
  57. // providerNames,
  58. // );
  59. // expect(result).toBe(false);
  60. // });
  61. test("test custom model without setting provider", () => {
  62. const customModels = "-all,mistral-large";
  63. const modelName = "mistral-large";
  64. const providerNames = modelName;
  65. const result = isModelNotavailableInServer(
  66. customModels,
  67. modelName,
  68. providerNames,
  69. );
  70. expect(result).toBe(false);
  71. });
  72. });