Skip to content

类型定义

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
  }
}

相关链接

Released under the MIT License.