xinghuo-test
Version:
xinghuo
96 lines (86 loc) • 3.01 kB
text/typescript
import { ModelVersion, SparkClient, ChatMessage } from "../dist/spark";
import { IChatResponse } from "../dist/type";
describe("spark test", () => {
const AppId = "";
const APIKey = "";
const APISecret = "";
let client: SparkClient;
beforeAll(() => {
client = new SparkClient(AppId, APIKey, APISecret);
});
test("Use model V1.5 callback", async () => {
const model = ModelVersion.V1_5;
const messages = [ChatMessage.fromUser("中国第一个皇帝是谁?")];
let contents = "";
await client.chatAsync(model, messages, (value) => {
contents += value.text;
});
expect(contents).toContain("秦始皇");
});
test("Use callback", async () => {
const model = ModelVersion.V1_5;
const messages = [
ChatMessage.fromUser(
"系统提示:你叫张三,一名5岁男孩,你在金色摇篮幼儿园上学,你的妈妈叫李四,是一名工程师"
),
ChatMessage.fromUser("你好小朋友,我是周老师,你在哪上学?"),
];
let contents = "";
await client.chatAsync(model, messages, (value) => {
contents += value.text;
});
expect(contents).toContain("金色摇篮幼儿园");
});
test("Use model V2 stream", async () => {
const model = ModelVersion.V2;
const messages = [
ChatMessage.fromUser("1+1=?"),
ChatMessage.fromAssistant("1+1=3"),
ChatMessage.fromUser("不对啊,请再想想?"),
];
let contents = "";
const generator = client.chatAsStreamAsync(model, messages);
for await (const message of generator) {
contents += message.text;
}
expect(contents).toContain("2");
});
test("Use model V1.5 stream", async () => {
const model = ModelVersion.V1_5;
const messages = [
ChatMessage.fromUser(
"系统提示:你叫张三,一名5岁男孩,你在金色摇篮幼儿园上学,你的妈妈叫李四,是一名工程师"
),
ChatMessage.fromUser("你好小朋友,我是周老师,你在哪上学?"),
];
let contents = "";
const generator = await client.chatAsStreamAsync(model, messages);
for await (const message of generator) {
contents += message.text;
}
expect(contents).toContain("金色摇篮幼儿园");
});
test("Cancel chat", async () => {
const model = ModelVersion.V2;
const messages = [
ChatMessage.fromUser(
"系统提示:你叫张三,一名5岁男孩,你在金色摇篮幼儿园上学,你的妈妈叫李四,是一名工程师"
),
ChatMessage.fromUser("你好小朋友,我是周老师,你在哪上学?"),
];
let content: IChatResponse | null = null;
const abort = new AbortController();
const generator = await client.chatAsStreamAsync(
model,
messages,
undefined,
"gy",
abort
);
for await (const message of generator) {
content = message;
abort.abort();
}
expect(content?.uasge).toBe(null);
});
});