TypeScript SDK

前提条件

项目
包名@joytoken/client-sdk-ts
Node.js18+
API KeyJOY_TOKEN_API_KEY
API Base URL环境 选择 JOY_TOKEN_API_BASE_URL
OpenAI Base URL环境 选择 JOY_TOKEN_OPENAI_BASE_URL

第 1 步:安装

$npm install @joytoken/client-sdk-ts

第 2 步:创建客户端

1import { JoyTokenClient } from "@joytoken/client-sdk-ts";
2
3const joytoken = new JoyTokenClient({
4 apiKey: process.env.JOY_TOKEN_API_KEY,
5 apiBaseUrl: process.env.JOY_TOKEN_API_BASE_URL,
6 openAIBaseUrl: process.env.JOY_TOKEN_OPENAI_BASE_URL,
7 timeoutMs: 60_000,
8});

第 3 步:聊天补全

1const completion = await joytoken.chat.completions.create({
2 model: "auto",
3 messages: [{ role: "user", content: "Reply with exactly: pong" }],
4});
5
6console.log(completion.choices[0]?.message?.content);

第 4 步:流式响应

1for await (const chunk of joytoken.chat.completions.stream({
2 model: "auto",
3 messages: [{ role: "user", content: "Write one short paragraph." }],
4})) {
5 process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
6}

第 5 步:模型列表

1const models = await joytoken.models.list();
2console.log(models.data.map((model) => model.id));

常见错误

错误处理方式
No fetch implementation available使用 Node.js 18+,或在 JoyTokenClient({ fetch }) 传入 fetch
401 Unauthorized检查 JOY_TOKEN_API_KEY
JoyTokenAPIError读取 statusrequestIdbody 定位请求