类型定义
XAI-SDK 提供了完整的 TypeScript 类型定义,帮助开发者在使用 SDK 时获得更好的类型安全和开发体验。
类型分类
核心类型
定义了 XAI-SDK 中使用的核心类型和接口,包括:
- Message - 消息对象,用于表示对话中的单条消息
- ChatOptions - 聊天请求的配置选项
- ChatResponse - 聊天响应对象
- StreamChunk - 流式响应的数据块
- TokenUsage - Token 使用统计
- BatchChatRequest - 批量聊天请求项
- BatchChatResponse - 批量聊天响应项
事件类型
定义了 XAI-SDK 事件系统中使用的类型和接口,包括:
- Event - 基础事件接口
- EventMetadata - 事件元数据
- SDKEvent - SDK 事件接口
- RequestEvent - 请求事件接口
- ResponseEvent - 响应事件接口
- ErrorEvent - 错误事件接口
插件类型
定义了 XAI-SDK 插件系统中使用的类型和接口,包括:
- Plugin - 插件基础接口
- BasePlugin - 插件基类
- PluginConfig - 插件配置接口
- PluginHooks - 插件钩子接口
- PluginMiddleware - 插件中间件接口
- PluginStatus - 插件状态接口
工具类型
定义了 XAI-SDK 工具系统中使用的类型和接口,包括:
- Tool - 工具定义接口
- ToolParameters - 工具参数定义
- ToolExecutor - 工具执行器
- ToolResult - 工具执行结果
- ToolConfig - 工具配置接口
- ToolPermissions - 工具权限接口
使用示例
基础类型使用
typescript
import { Message, ChatOptions, ChatResponse } from 'xai-sdk'
// 创建消息
const message: Message = {
role: 'user',
content: 'Hello, AI!',
timestamp: new Date()
}
// 配置聊天选项
const options: ChatOptions = {
model: 'gpt-4',
temperature: 0.7,
maxTokens: 1000,
stream: true
}
事件类型使用
typescript
import { SDKEvent, EventMetadata } from 'xai-sdk'
// 监听 SDK 事件
sdk.on('sdk:initialized', (event: SDKEvent) => {
console.log('SDK initialized:', event.data)
})
插件类型使用
typescript
import { BasePlugin, PluginConfig } from 'xai-sdk'
class MyPlugin extends BasePlugin {
name = 'my-plugin'
version = '1.0.0'
description = 'My custom plugin'
protected async onInitialize(config?: any): Promise<void> {
// 插件初始化逻辑
}
}
工具类型使用
typescript
import { Tool, ToolParameters } from 'xai-sdk'
const myTool: Tool = {
name: 'my-tool',
description: 'My custom tool',
parameters: {
type: 'object',
properties: {
input: {
type: 'string',
description: 'Input text'
}
},
required: ['input']
},
execute: async (parameters) => {
// 工具执行逻辑
return { success: true, data: parameters.input }
}
}
类型导入
所有类型都可以从主包中导入:
typescript
import {
// 核心类型
Message,
ChatOptions,
ChatResponse,
StreamChunk,
TokenUsage,
// 事件类型
Event,
SDKEvent,
RequestEvent,
// 插件类型
Plugin,
BasePlugin,
PluginConfig,
// 工具类型
Tool,
ToolParameters,
ToolResult
} from 'xai-sdk'
类型扩展
如果需要扩展现有类型,可以使用 TypeScript 的模块扩展功能:
typescript
declare module 'xai-sdk' {
interface Message {
// 添加自定义属性
customField?: string
}
interface ChatOptions {
// 添加自定义选项
customOption?: boolean
}
}