TypeScript API 参考

导入

1import {
2 JoyTokenAPIError,
3 JoyTokenClient,
4 type ChatCompletionRequest,
5 type ChatCompletionResponse,
6 type ChatCompletionChunk,
7 type ChatMessage,
8 type ChatTool,
9 type JoyTokenClientOptions,
10 type ModelListResponse,
11} from "@joytoken/client-sdk-ts";

JoyTokenClient

1new JoyTokenClient(options?: JoyTokenClientOptions)
选项类型说明
apiKeystringJoyToken API Key。默认读取 JOY_TOKEN_API_KEY
apiBaseUrlstring非 OpenAI 接口的基础 URL。默认 https://api-dev.joytokens.ai
openAIBaseUrlstring聊天补全基础 URL。默认 ${apiBaseUrl}/openai/v1
fetchtypeof fetch自定义 fetch 实现
defaultHeadersRecord<string, string>每个请求都会携带的请求头
timeoutMsnumber请求超时,单位毫秒

chat.completions.create

1client.chat.completions.create(request: ChatCompletionRequest): Promise<ChatCompletionResponse>

POST /openai/v1/chat/completions 发送非流式请求。

必填字段:

字段类型
modelstring
messagesChatMessage[]

常用可选字段包括 temperaturemax_tokenstop_pstoptoolstool_choicetiermetadata

chat.completions.stream

1client.chat.completions.stream(request): AsyncIterable<ChatCompletionChunk>

POST /openai/v1/chat/completions 发送 stream: true 的流式请求。

1for await (const chunk of client.chat.completions.stream(request)) {
2 // chunk.choices 是 assistant delta
3 // chunk.metadata 是 JoyToken metadata
4}

models.list

1client.models.list(): Promise<ModelListResponse>

调用 GET /api/v1/models 并返回:

1interface ModelListResponse {
2 object?: string;
3 data: ModelInfo[];
4}

JoyTokenAPIError

非 2xx 响应会抛出 JoyTokenAPIError

字段类型
statusnumber
requestId`string
responseHeadersHeaders
bodyunknown

核心类型

1type ChatRole = "system" | "user" | "assistant" | "tool";
2
3interface ChatMessage {
4 role: ChatRole;
5 content?: string | Array<Record<string, unknown>> | null;
6 name?: string;
7 tool_call_id?: string;
8 tool_calls?: ToolCall[];
9}
1interface ChatTool {
2 type: "function";
3 function: {
4 name: string;
5 description?: string;
6 parameters?: Record<string, unknown>;
7 };
8}