UNPKG

aisapi

Version:

A JavaScript/TypeScript API library for multiple AI providers

246 lines 5.68 kB
/** * AisAPI 类型定义 */ /** * API返回的基础格式 */ export interface ApiResponse<T = any> { success: boolean; data?: T; error?: string; message?: string; } /** * 分页数据结构 */ export interface PaginatedData<T = any> { items: T[]; total: number; page: number; pageSize: number; totalPages: number; } /** * 分页查询参数 */ export interface PaginationParams { page?: number; pageSize?: number; sortBy?: string; sortOrder?: 'asc' | 'desc'; } /** * 所有AI服务的基础配置 */ export interface ProviderOptions { apiKey?: string; baseUrl?: string; timeout?: number; [key: string]: any; } /** * 文本生成参数 */ export interface TextGenerationParams { prompt: string; maxTokens?: number; temperature?: number; topP?: number; stream?: boolean; systemMessage?: string; model?: string; [key: string]: any; } /** * 文本生成结果 */ export interface TextGenerationResponse { text: string; usage?: { promptTokens: number; completionTokens: number; totalTokens: number; }; cacheInfo?: { hitTokens?: number; missTokens?: number; hitRate?: number; estimatedSavings?: number; }; rawResponse?: any; [key: string]: any; } /** * 图像生成参数 */ export interface ImageGenerationParams { prompt: string; n?: number; size?: string; model?: string; responseFormat?: string; user?: string; [key: string]: any; } /** * 图像生成结果 */ export interface ImageGenerationResponse { urls: string[]; rawResponse?: any; [key: string]: any; } /** * 所有AI服务需要实现的功能接口 */ export interface AiProvider { /** 服务名称 */ readonly name: string; /** 文本生成(核心功能) */ generateText(params: TextGenerationParams): Promise<TextGenerationResponse>; /** 图像生成(可选功能) */ generateImage?(params: ImageGenerationParams): Promise<ImageGenerationResponse>; /** JSON格式输出(可选功能) */ generateJSON?(params: TextGenerationParams): Promise<any>; /** 图像变体(可选功能) */ createImageVariation?(params: ImageVariationParams): Promise<ImageGenerationResponse>; /** 图像编辑(可选功能) */ editImage?(params: ImageEditParams): Promise<ImageGenerationResponse>; /** 语音转文字(可选功能) */ transcribeAudio?(params: AudioTranscriptionParams): Promise<AudioTranscriptionResponse>; /** 文字转语音(可选功能) */ textToSpeech?(params: TextToSpeechParams): Promise<TextToSpeechResponse>; /** 文本向量(可选功能) */ createEmbedding?(params: EmbeddingParams): Promise<EmbeddingResponse>; /** 获取模型列表(可选功能) */ listModels?(): Promise<ModelsResponse | any>; /** 流式对话(可选功能) */ createStreamingChatCompletion?(params: ChatCompletionParams): Promise<ReadableStream<any>>; } /** * OpenAI相关类型定义 */ export interface ChatMessage { role: 'system' | 'user' | 'assistant' | 'function' | 'tool'; content: string | null; name?: string; function_call?: any; tool_calls?: any[]; } export interface ChatCompletionParams { model: string; messages: ChatMessage[]; maxTokens?: number; temperature?: number; topP?: number; n?: number; stream?: boolean; stop?: string | string[]; presencePenalty?: number; frequencyPenalty?: number; logitBias?: Record<string, number>; user?: string; responseFormat?: { type: 'text' | 'json_object'; }; [key: string]: any; } export interface ChatCompletionResponse { id: string; object: string; created: number; model: string; choices: { index: number; message: ChatMessage; finishReason: string; }[]; usage: { promptTokens: number; completionTokens: number; totalTokens: number; }; } export interface AudioTranscriptionParams { file: any; model: string; language?: string; prompt?: string; responseFormat?: 'json' | 'text' | 'srt' | 'verbose_json' | 'vtt'; temperature?: number; } export interface AudioTranscriptionResponse { text: string; rawResponse?: any; [key: string]: any; } export interface TextToSpeechParams { input: string; model: string; voice: string; responseFormat?: string; speed?: number; } export interface TextToSpeechResponse { audioData: ArrayBuffer; format: string; } export interface EmbeddingParams { model: string; input: string | string[]; user?: string; } export interface EmbeddingResponse { data: { embedding: number[]; index: number; object: string; }[]; model: string; usage: { promptTokens: number; totalTokens: number; }; } /** * 图像编辑参数 */ export interface ImageEditParams { image: any; mask?: any; prompt: string; n?: number; size?: string; model?: string; user?: string; } /** * 图像变体参数 */ export interface ImageVariationParams { image: any; n?: number; size?: string; model?: string; user?: string; } /** * 模型信息 */ export interface ModelInfo { id: string; object: string; created: number; ownedBy: string; permission: any[]; root: string; parent: string | null; } /** * 模型列表结果 */ export interface ModelsResponse { object: string; data: ModelInfo[]; } //# sourceMappingURL=types.d.ts.map