@artmate/chat
Version:
**开箱即用的AI组件库(基于 Vue3 + ElementPlus)**
33 lines (32 loc) • 1.24 kB
TypeScript
/**
* @link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#fields
*/
export type SSEFields = 'data' | 'event' | 'id' | 'retry';
/**
* @example
* const sseObject = {
* event: 'delta',
* data: '{ key: "world!" }',
* };
*/
export type SSEOutput = Partial<Record<SSEFields, any>>;
export interface ArtStreamOptions<Output> {
/**
* @description 可读的二进制数据流
* @link https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream
*/
readableStream: ReadableStream<Uint8Array>;
/**
* @description 支持可定制的transformStream来转换流
* @default sseTransformStream
* @link https://developer.mozilla.org/en-US/docs/Web/API/TransformStream
*/
transformStream?: TransformStream<string, Output>;
}
export type ArtReadableStream<R = SSEOutput> = ReadableStream<R> & AsyncGenerator<R>;
/**
* @description 默认情况下,将 Uint8Array 二进制流转换为 {@link SSEOutput}
* @warning "ArtStream" 仅支持 "utf-8" 编码。将来可能会有更多的编码支持。
*/
declare function ArtStream<Output = SSEOutput>(options: ArtStreamOptions<Output>): ArtReadableStream<Output>;
export default ArtStream;