Files
Moltbot/src/agents/zai.live.test.ts
2026-02-16 14:59:30 +00:00

41 lines
1.2 KiB
TypeScript

import { completeSimple, getModel } from "@mariozechner/pi-ai";
import { describe, expect, it } from "vitest";
import { isTruthyEnvValue } from "../infra/env.js";
const ZAI_KEY = process.env.ZAI_API_KEY ?? process.env.Z_AI_API_KEY ?? "";
const LIVE = isTruthyEnvValue(process.env.ZAI_LIVE_TEST) || isTruthyEnvValue(process.env.LIVE);
const describeLive = LIVE && ZAI_KEY ? describe : describe.skip;
async function expectModelReturnsAssistantText(modelId: "glm-4.7" | "glm-4.7-flashx") {
const model = getModel("zai", modelId as "glm-4.7");
const res = await completeSimple(
model,
{
messages: [
{
role: "user",
content: "Reply with the word ok.",
timestamp: Date.now(),
},
],
},
{ apiKey: ZAI_KEY, maxTokens: 64 },
);
const text = res.content
.filter((block) => block.type === "text")
.map((block) => block.text.trim())
.join(" ");
expect(text.length).toBeGreaterThan(0);
}
describeLive("zai live", () => {
it("returns assistant text", async () => {
await expectModelReturnsAssistantText("glm-4.7");
}, 20000);
it("glm-4.7-flashx returns assistant text", async () => {
await expectModelReturnsAssistantText("glm-4.7-flashx");
}, 20000);
});