打通多模型并行对比接口与采纳结果。
冻结消息上下文后并行重放多个配置,并顺带挂上定价接口路由。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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",
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user