temperature-constraints.test.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { describe, it, expect } from "vitest";
  2. import { resolveServicePreset, clampTemperature, getWritingTemperature } from "../llm/service-presets.js";
  3. describe("temperature constraints per service", () => {
  4. it("moonshot has range [0, 1] and writingTemperature 1.0", () => {
  5. const preset = resolveServicePreset("moonshot");
  6. expect(preset?.temperatureRange).toEqual([0, 1]);
  7. expect(preset?.writingTemperature).toBe(1.0);
  8. });
  9. it("deepseek has range [0, 2] and writingTemperature 1.5", () => {
  10. const preset = resolveServicePreset("deepseek");
  11. expect(preset?.temperatureRange).toEqual([0, 2]);
  12. expect(preset?.writingTemperature).toBe(1.5);
  13. });
  14. it("anthropic has range [0, 1] and writingTemperature 1.0", () => {
  15. const preset = resolveServicePreset("anthropic");
  16. expect(preset?.temperatureRange).toEqual([0, 1]);
  17. expect(preset?.writingTemperature).toBe(1.0);
  18. });
  19. it("openai has range [0, 2] and writingTemperature 1.0", () => {
  20. const preset = resolveServicePreset("openai");
  21. expect(preset?.temperatureRange).toEqual([0, 2]);
  22. expect(preset?.writingTemperature).toBe(1.0);
  23. });
  24. it("zhipu has range [0, 1]", () => {
  25. const preset = resolveServicePreset("zhipu");
  26. expect(preset?.temperatureRange).toEqual([0, 1]);
  27. });
  28. it("bailian has range [0, 2]", () => {
  29. const preset = resolveServicePreset("bailian");
  30. expect(preset?.temperatureRange).toEqual([0, 2]);
  31. });
  32. it("minimax has range [0, 2]", () => {
  33. const preset = resolveServicePreset("minimax");
  34. expect(preset?.temperatureRange).toEqual([0, 2]);
  35. });
  36. it("clampTemperature respects service range", () => {
  37. expect(clampTemperature("moonshot", 1.5)).toBe(1.0);
  38. expect(clampTemperature("moonshot", 0.7)).toBe(0.7);
  39. expect(clampTemperature("deepseek", 1.5)).toBe(1.5);
  40. expect(clampTemperature("deepseek", 2.5)).toBe(2.0);
  41. expect(clampTemperature("unknown-service", 1.5)).toBe(1.5);
  42. });
  43. it("getWritingTemperature returns service-specific value", () => {
  44. expect(getWritingTemperature("moonshot")).toBe(1.0);
  45. expect(getWritingTemperature("deepseek")).toBe(1.5);
  46. expect(getWritingTemperature("anthropic")).toBe(1.0);
  47. });
  48. });