增加2.5模型调用
This commit is contained in:
1 parent
3f29ba716a
commit
be655b6569
32 files changed
+1075
-56
No files matched your search
@@ -0,0 +1,56 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { IMAGE_MODEL_OPTIONS, evolinkModelCapability, imageModelAfterHealth, imageModelFromJob, templateImageModel } from "@/lib/image-models";
|
||||
import type { GenerationJob } from "@/lib/types";
|
||||
|
||||
function imageJob(overrides: Partial<GenerationJob>): GenerationJob {
|
||||
return {
|
||||
id: "job-1",
|
||||
ownerId: "owner-1",
|
||||
capability: "image.generate",
|
||||
provider: "evolink",
|
||||
reqKey: "",
|
||||
status: "succeeded",
|
||||
inputAssetIds: [],
|
||||
inputUrls: [],
|
||||
outputAssetIds: [],
|
||||
requestPayload: {},
|
||||
createdAt: "2026-01-01T00:00:00.000Z",
|
||||
updatedAt: "2026-01-01T00:00:00.000Z",
|
||||
...overrides
|
||||
};
|
||||
}
|
||||
|
||||
describe("EvoLink image model selection", () => {
|
||||
it("uses the configured model when health loads and preserves a selection made while loading", () => {
|
||||
expect(imageModelAfterHealth(IMAGE_MODEL_OPTIONS, "gpt-image-2.5-flare", "gpt-image-2", false)).toBe("gpt-image-2.5-flare");
|
||||
expect(imageModelAfterHealth(IMAGE_MODEL_OPTIONS, "gpt-image-2.5-flare", "gpt-image-2.5-sunburst", true)).toBe("gpt-image-2.5-sunburst");
|
||||
expect(imageModelAfterHealth([{ id: "custom-image" }], "custom-image", "gpt-image-2", false)).toBe("custom-image");
|
||||
});
|
||||
|
||||
it("reads EvoLink defaults even when another image engine is primary", () => {
|
||||
const capability = evolinkModelCapability({
|
||||
engine: "jimeng",
|
||||
reqKey: "jimeng-model",
|
||||
evolink: { reqKey: "gpt-image-2.5-flare", models: [{ id: "gpt-image-2.5-flare", label: "Image 2.5 Flare" }] }
|
||||
});
|
||||
expect(capability?.reqKey).toBe("gpt-image-2.5-flare");
|
||||
expect(imageModelAfterHealth(capability!.models!, capability?.reqKey, "gpt-image-2", false)).toBe("gpt-image-2.5-flare");
|
||||
expect(evolinkModelCapability({ engine: "evolink", reqKey: "gpt-image-2.5-sunburst" })?.reqKey).toBe("gpt-image-2.5-sunburst");
|
||||
});
|
||||
|
||||
it("uses the configured runtime default for older templates without a saved model", () => {
|
||||
expect(templateImageModel(undefined, "gpt-image-2.5-flare")).toBe("gpt-image-2.5-flare");
|
||||
expect(templateImageModel("gpt-image-2.5-sunburst", "gpt-image-2.5-flare")).toBe("gpt-image-2.5-sunburst");
|
||||
});
|
||||
|
||||
it("shows the persisted Go model before request fallbacks", () => {
|
||||
expect(imageModelFromJob(imageJob({
|
||||
reqKey: "gpt-image-2.5-sunburst",
|
||||
requestPayload: { model: "gpt-image-2.5-flare", input: { model: "gpt-image-2" } }
|
||||
}))).toBe("gpt-image-2.5-sunburst");
|
||||
expect(imageModelFromJob(imageJob({ requestPayload: { model: "gpt-image-2.5-flare" } }))).toBe("gpt-image-2.5-flare");
|
||||
expect(imageModelFromJob(imageJob({ requestPayload: { input: { model: "gpt-image-2.5-flare" } } }))).toBe("gpt-image-2.5-flare");
|
||||
expect(imageModelFromJob(imageJob({}))).toBe("gpt-image-2");
|
||||
expect(imageModelFromJob(imageJob({ provider: "bailian", reqKey: "gpt-image-2.5-flare" }))).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user