UNPKG

xinghuo-test

Version:

xinghuo

96 lines (86 loc) 3.01 kB
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); }); });