打通多模型并行对比接口与采纳结果。

冻结消息上下文后并行重放多个配置,并顺带挂上定价接口路由。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-14 01:14:33 +08:00
co-authored by Cursor
parent a6be5f7f62
commit 6bdca7ccf7
3 changed files with 342 additions and 1 deletions
+56
View File
@@ -0,0 +1,56 @@
import { describe, expect, it } from "vitest";
import { reconstructLlmMessages } from "../src/server/model-compare.js";
import { buildContextTrace } from "../src/types/context-trace.js";
describe("model-compare reconstructLlmMessages", () => {
it("restores plain roles", () => {
const trace = buildContextTrace({
caller: "test",
messages: [
{ role: "system", content: "sys" },
{ role: "user", content: "hi" },
],
model: "m1",
});
expect(reconstructLlmMessages(trace)).toEqual([
{ role: "system", content: "sys" },
{ role: "user", content: "hi" },
]);
});
it("restores tool_calls extras frozen as JSON content", () => {
const trace = buildContextTrace({
caller: "test",
messages: [
{
role: "assistant",
content: null,
tool_calls: [
{
id: "c1",
type: "function",
function: { name: "foo", arguments: "{}" },
},
],
},
{ role: "tool", content: "ok", tool_call_id: "c1" },
],
});
const msgs = reconstructLlmMessages(trace);
expect(msgs[0]).toMatchObject({
role: "assistant",
tool_calls: [
{
id: "c1",
type: "function",
function: { name: "foo", arguments: "{}" },
},
],
});
expect(msgs[1]).toEqual({
role: "tool",
content: "ok",
tool_call_id: "c1",
});
});
});